java 动态生成SQL的实例讲解

 更新时间:2017年07月19日 10:28:59   投稿:jingxian  
下面小编就为大家带来一篇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;
 }

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

相关文章

  • Java通过工厂、Map容器创建对象的方法

    Java通过工厂、Map容器创建对象的方法

    这篇文章主要介绍了Java通过工厂、Map容器创建对象的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 详解高性能缓存Caffeine原理及实战

    详解高性能缓存Caffeine原理及实战

    Caffeine是基于Java 8开发的,提供了近乎最佳命中率的高性能本地缓存组件,Spring5开始不再支持Guava Cache,改为使用Caffeine。Caffeine提供的内存缓存使用参考Google guava的API
    2021-06-06
  • 详细分析Java并发集合LinkedBlockingQueue的用法

    详细分析Java并发集合LinkedBlockingQueue的用法

    这篇文章主要介绍了详细分析Java并发集合LinkedBlockingQueue的用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • SpringBoot+docker环境变量配置详解

    SpringBoot+docker环境变量配置详解

    这篇文章主要介绍了SpringBoot+docker环境变量配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Java数据结构BFS广搜法解决迷宫问题

    Java数据结构BFS广搜法解决迷宫问题

    广搜BFS的基本思想是: 首先访问初始点v并将其标志为已经访问。接着通过邻接关系将邻接点入队。然后每访问过一个顶点则出队。按照顺序,访问每一个顶点的所有未被访问过的顶点直到所有的顶点均被访问过。广度优先遍历类似与层次遍历
    2022-04-04
  • RabbitMQ 如何解决消息幂等性的问题

    RabbitMQ 如何解决消息幂等性的问题

    这篇文章主要介绍了RabbitMQ 如何解决消息幂等性的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Mybatis MappedStatement类核心原理详解

    Mybatis MappedStatement类核心原理详解

    这篇文章主要介绍了Mybatis MappedStatement类,mybatis的mapper文件最终会被解析器,解析成MappedStatement,其中insert|update|delete|select每一个标签分别对应一个MappedStatement
    2022-11-11
  • Java在Linux下 不能处理图形的解决办法 分享

    Java在Linux下 不能处理图形的解决办法 分享

    Java在Linux下 不能处理图形的解决办法 分享,需要的朋友可以参考一下
    2013-06-06
  • javaweb前端向后端传值的几种方式总结(附代码)

    javaweb前端向后端传值的几种方式总结(附代码)

    javaweb是java开发中的一个方向,下面这篇文章主要给大家介绍了关于javaweb前端向后端传值的几种方式的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • Java实现压缩图片大小

    Java实现压缩图片大小

    这篇文章主要为大家详细介绍了Java实现压缩图片大小,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04

最新评论