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;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM