欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java 动态生成SQL的实例讲解

程序员文章站 2023-01-07 14:30:14
代码如下: /** * 动态生成sq及sql参数l * @param ve 接收到的消息的chglist * @param paramli...

代码如下:

/**
   * 动态生成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;
 }

以上这篇java 动态生成sql的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。