软件编程
位置:首页>> 软件编程>> java编程>> java 动态生成SQL的实例讲解

java 动态生成SQL的实例讲解

作者:jingxian  发布时间:2021-05-25 18:26:06 

标签:java,动态生成,sql

代码如下:


/**
  * 动态生成SQ及SQL参数L
  * @param ve 接收到的消息的CHGLIST
  * @param paramList MQ消息中的SQL参数
  * @param t 泛型对象
  * @param table 数据表
  * @param list 可执行SQL语句集合
  * @return
  */
public <T> String updateSqlAndParamList(Vector<String> ve,List<String> paramList,T t,String table,List<String> list){
 String strSql="";//MQ消息SQl
 String upSql="";//可执行SQL
 try {
  //组装SQL语句
  strSql = "update "+table+" set ";
  upSql="update "+table+" set ";
  for(int i = 0; i < ve.size(); i++){
   String str = "";
   String upStr="";
   String key = ve.get(i);
   String fileName="get"+key.toUpperCase();
   String value=(String)t.getClass().getMethod(fileName).invoke(t);
   paramList.add(i,value);
   if(i == ve.size()-1){
    str = key+" = ?";
    upStr=key+"='"+value+"'";
   }else{
    str = key+" = ? ,";
    upStr=key+"='"+value+"',";
   }
   strSql+=str;
   upSql += upStr;
  }
  strSql +=" where Id = ? ";
  upSql+=" where id='"+(String) t.getClass().getMethod("getID").invoke(t)+"'";
  list.add(upSql);
  paramList.add(ve.size(),(String) t.getClass().getMethod("getID").invoke(t));
 } catch (Exception e) {
  logger.info("组装UPDATE SQL失败!失败详情---"+e);
 }
 return strSql;
}
0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com