zoukankan      html  css  js  c++  java
  • 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;
        }
  • 相关阅读:
    MAX导致数据库超时
    mysql查询效率提高技巧
    微信回调报文解析, 获取请求体内容
    炖汤秘方
    首字母小写
    List分页
    HttpServletRequest通过InputStream获取参数
    github命令行
    mysql死锁
    分布式锁-redis
  • 原文地址:https://www.cnblogs.com/x-jingxin/p/7193013.html
Copyright © 2011-2022 走看看