java 动态生成SQL的实例讲解

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

代码如下:


/**
  * 动态生成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
0
投稿

猜你喜欢

  • Springboot2.0处理自定义异常并返回json

    2021-06-01 03:42:24
  • Java设计模式之java命令模式详解

    2023-11-13 16:00:36
  • 解决springboot启动失败的问题('hibernate.dialect' not set)

    2023-11-09 03:21:21
  • Spring常用注解汇总

    2022-12-19 16:26:03
  • DUCC配置平台实现一个动态化线程池示例代码

    2023-11-28 12:07:39
  • Android自定义View之组合控件实现类似电商app顶部栏

    2023-07-26 22:14:10
  • Java深入讲解instanceof关键字的使用

    2023-02-27 13:05:05
  • Java Mybatis框架Dao层的实现与映射文件以及核心配置文件详解分析

    2021-06-15 16:29:22
  • Spring Cloud Config 使用本地配置文件方式

    2021-06-03 03:17:53
  • Springboot如何获取上下文ApplicationContext

    2023-11-27 23:42:41
  • jvm调优的几种场景(小结)

    2023-04-11 18:37:04
  • Flutter图片与文件选择器使用实例

    2023-07-17 09:11:12
  • C#中32位浮点数Float(Real)一步步按位Bit进行分析

    2023-07-19 16:01:20
  • 利用Java计算某个日期是星期几

    2023-11-17 05:49:42
  • java微信公众号开发(搭建本地测试环境)

    2021-07-07 05:32:40
  • Java8深入学习之熟透Optional

    2023-08-24 21:27:54
  • Java Collections.shuffle()方法案例详解

    2023-11-24 15:53:16
  • Spring Boot使用Allatori代码混淆的方法

    2023-11-24 16:34:55
  • java实现微信扫码支付功能

    2023-11-09 18:38:08
  • Java实现显示指定类型的文件

    2021-10-26 11:30:37
  • asp之家 软件编程 m.aspxhome.com