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