设为首页 加入收藏

TOP

java 动态生成SQL
2017-10-13 10:34:10 】 浏览:2982
Tags: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;
    }

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇详解equals()方法和hashCode()方法 下一篇消息化服务自实现设计

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目