将目标参数更换 sql 占位符?

package com.xiangshuai;
public class SS {
     public static void main(String[] args) {
          String sql="insert into T_CCC_SSAJ(DEPT_SYS_DEPTID,CCC_YSJG,CCC_GDRQ,CCC_CS,CCC_SPCY1,CCC_SPCY2,CCC_YSFY,BM_SYS_YECCC,CCC_SCCCQ,CCC_SAJG,CCC_TXM,SYS_ZQNUM,CCC_LCCCQ,BM_CCC_AJLB,BM_SYS_SZH,BM_SYS_BGQX,BM_CCC_WORD,BM_SYS_STATE,ID,CCC_CBR,CCC_DSR,CCC_SPJG,CCC_DSRCWER,CCC_JASJ,SYS_QSRQ,CCC_LAAY,BM_SYS_ZKSTATE,CCC_XGAH,CCC_DSRER,CCC_SZHPCH,CCC_SPCX,CCC_SJY,CCC_JAFS,BM_SYS_SJLY,SYS_DEPTNAME,BM_CCC_AJLX_OLD,CCC_JS,BM_CCC_SPCY1,BM_CCC_SPCY2,BM_CCC_AJLX_NEW2,CCC_FHZSJG,BM_CCC_AJLX_NEW3,BM_CCC_AJLX_NEW1,CCC_JAAYZS,SYS_CREATEDATE,CCC_ESJG,BM_CCC_AJLX,CCC_PJSSL,CCC_ZXBD,BM_SYS_SJSTATE,CCC_DSRCWYI,CCC_YMLH,SYS_DELETEFLAG,BM_CCC_FA,CCC_SPZ,CCC_LBH,SYS_CCCCHIVENO,SYS_CCCSQE,CCC_BEIZHU,CCC_DSRYI)values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
          String obj="null, 终结本次执行, 2010-12-11 00:00:00.0, 3, 王某某, , , 2010, 2010-08-17 00:00:00.0, null, 2010-Z-04463, 53, 2010-08-17 00:00:00.0, 执行, 0, 永久, 执, 2, FO40DD28EB36254715AD1BD15BE814D2A1, 胡XX, 申请执行人:长沙市展印刷有限公司;被执行人:汤XX;, 终结本次执行, 被执行人, 2010-11-11 00:00:00.0, 2010-12-11 00:00:00.0, 承揽合同纠纷, 0, , S建新, 201804474, 普通执行, 胡XX, null, 2, , 执行诉讼卷宗, null, 执行员, , 执行实施类案件, , 首次执行案件, 执行类案件, 承揽合同纠纷, 2018-08-03, , 执行实施类案件, 0, null, 0, 申请执行人, , 0, C南法, , G5.1, (2010)北法执字第4463号, 04463, , 常州市展印刷有限公司";
          System.out.print(repaceSqlPre(sql, obj));
          
    }
     //更换 sql 占位符  regex 的 ? 是特殊字符,需写成 \\?,+也是特殊字符需写成\\+
     //将sql的占位符?全部替换成agrs的值
     /**
      * lqx
      * @param sql  原sql
      * @param args 替换占位符?的参数 
      * @return 替换后的sql
      */
    public static String repaceSqlPre (String sql,String args) {
         String[] objs = args.split(",");
         for(int i=0;i<objs.length;i++){
             sql=sql.replaceFirst("\\?", objs[i]); //更换sql字符串中出现的第一个?
         }
        return sql;
    }
}
 

猜你喜欢

转载自blog.csdn.net/xiangshuai198807/article/details/81431194
今日推荐