xiaoniao

          將ActionForm拼合成一條插入和更新語句

          package chs.jhsyss.form;

          import java.lang.reflect.InvocationTargetException;
          import java.lang.reflect.Method;

          import java.util.Date;

          public class Waper {

           public Waper(){
           }
           /**
            * 本方法用于將FORM對象組裝成一條INSERT語句
            * @param obj ActionForm 以及其子對象
            * @param formPath  ActionForm 以及其子對象的包路徑和名稱
            * @param tableName  所要操作的數(shù)據(jù)表
            * @return 返回相應(yīng)的INSERT語句
            */
           public String insert(Object obj,String formPath,String tableName){
            long start  = new Date().getTime();
            String sqlToVar = "insert into "+tableName+"(";
            String sqlToValues = " ) values(";
            Class $fj = null;
            try {
             $fj = Class.forName(formPath);//example "chs.jhsyss.form.FJhsyss"
            } catch (ClassNotFoundException e1) {
             // TODO Auto-generated catch block
             e1.printStackTrace();
            }
            Class clazz = obj.getClass();
            Method[] method = clazz.getDeclaredMethods();
            for(int i=0;i<method.length;i++){
             String methodName = method[i].getName();
             if(methodName.indexOf("get")<0){
              continue;// 除去非get方法
             }else{
             try {
              Method m = $fj.getMethod(methodName, null);//根據(jù)指定的方法名取得相應(yīng)方法
              String $methodName = methodName.toLowerCase().substring(3,methodName.length());//裁剪getXXX方

          法取得相應(yīng)變量名稱
              try {
               String result = (String) m.invoke(obj, null);//調(diào)用方法,前一個(gè)參數(shù)代表傳進(jìn)來的FORM對

          象,后一個(gè)為傳遞給方法的參數(shù);返回結(jié)果為原來方法相應(yīng)的返回值
               sqlToVar+=$methodName+",";
               sqlToValues+="'"+result+"',";
               
              } catch (IllegalArgumentException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
              } catch (IllegalAccessException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
              } catch (InvocationTargetException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
              }
             } catch (SecurityException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
             } catch (NoSuchMethodException e) {
              // TODO Auto-generated catch block
              e.printStackTrace();
             }
             }
            }
            sqlToVar=sqlToVar.substring(0,sqlToVar.length()-1);
            sqlToValues=sqlToValues.substring(0,sqlToValues.length()-1)+")";
            long end = new Date().getTime();
            System.out.println("插入操作花費(fèi)總時(shí)間->"+(end-start)+"<-ms");
            System.out.println(sqlToVar+sqlToValues);
            return sqlToVar+sqlToValues;
            
           }
           public String update(Object obj,String formPath,String xh,String tableName){
            long start = new Date().getTime();
            String sqlToVar = "update "+tableName+" set ";
            Class $clazz = null;
            try{
             $clazz = Class.forName(formPath);
            }catch(ClassNotFoundException e){
             e.printStackTrace();
            }
            Class clazz = obj.getClass();
            Method[] method = clazz.getDeclaredMethods();
            for(int i = 0;i<method.length;i++){
             String methodName = method[i].getName();
             if(methodName.indexOf("get")<0){
              continue;// 除去非get方法
             }else{
              try {
               Method m = $clazz.getMethod(methodName, null);
               String $methodName = methodName.toLowerCase().substring(3,methodName.length());//裁剪

          getXXX方法取得相應(yīng)變量名稱
               String result = (String) m.invoke(obj, null);
               sqlToVar+=$methodName+"='"+result+"',";
               
               
              } catch (SecurityException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
              } catch (NoSuchMethodException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
              }//根據(jù)指定的方法名取得相應(yīng)方法
              catch (IllegalArgumentException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
              } catch (IllegalAccessException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
              } catch (InvocationTargetException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
              }
             }
            }
            sqlToVar=sqlToVar.substring(0,sqlToVar.length()-1)+" where xh="+xh;
            long end = new Date().getTime();
            System.out.println("更性操作花費(fèi)總時(shí)間->"+(end-start)+"<-ms");
            System.out.println("SQL->"+sqlToVar);
            return sqlToVar;
           }
           public static void main(String[] args){
            FJhsyss fj = new FJhsyss();
            fj.setBcrq("20050202");
            fj.setDwfzr("fafa");
            fj.setGnjygr("fafa");
            fj.setGnjyls("2000");
            fj.setXh("seq_hqjc_jhsyss,");
            String seq = "seq_hqjc_jhsyss.nextval";
            String path = "chs.jhsyss.form.FJhsyss"; 
            Waper r = new Waper();
            r.insert(fj,path,"MYTABLE");
            r.update(fj, path, "1", "mytable");
           }
          }

          posted on 2007-07-04 18:13 小鳥 閱讀(251) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2007年7月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 桓仁| 眉山市| 南华县| 胶州市| 垦利县| 镇沅| 盖州市| 和硕县| 襄垣县| 朝阳县| 新乡市| 澄迈县| 金秀| 武定县| 西贡区| 弥渡县| 张掖市| 察雅县| 任丘市| 呼和浩特市| 重庆市| 淅川县| 灵川县| 寿宁县| 五寨县| 宕昌县| 天台县| 元谋县| 大田县| 正宁县| 锡林浩特市| 岫岩| 原阳县| 西安市| 镇江市| 曲阜市| 潞西市| 澎湖县| 荣成市| 钟山县| 津市市|