zoukankan      html  css  js  c++  java
  • JAVA通过Map拼接SQL语句(Insert Update语句)

    package com.lynch.erp.core.util;
    
    import java.util.Map;
    
    import org.apache.commons.collections.MapUtils;
    import org.apache.commons.lang3.StringUtils;
    
    public class SQLUtils {
         
        /**
         * 通过Map拼接Insert SQL语句
         * 
         * @param tableName
         * @param dataMap
         * @return
         */
        public static String genSqlInsert(String tableName, Map<String, String> dataMap) {
            if(MapUtils.isEmpty(dataMap)) {
                return null;
            }
            
            //生成INSERT INTO table(field1,field2) 部分
            StringBuffer sbField = new StringBuffer();
            //生成VALUES('value1','value2') 部分
            StringBuffer sbValue = new StringBuffer();
            
            sbField.append("INSERT INTO " + tableName.toLowerCase() + "(");
            for(Map.Entry<String, String> entry : dataMap.entrySet()){
                String mapKey = entry.getKey();
                String mapValue = entry.getValue();
                if(StringUtils.equals(mapKey, CamelUnderlineUtil.PK)) {
                    continue;
                }
                
                sbField.append("`" + mapKey + "`,");
                sbValue.append("'" + mapValue + "',");
            }
            
            sbField = Util.deleteLastChar(sbField);
            sbValue = Util.deleteLastChar(sbValue);
            return sbField.toString() + ") VALUES(" + sbValue.toString() + ")";
        }
        
        /**
         * 通过Map拼接Update SQL语句
         * 
         * @param tableName
         * @param operation
         * @param dataMap
         * @return
         */
        public static String genSqlUpdate(String tableName, Map<String, String> dataMap) {
            if(MapUtils.isEmpty(dataMap)) {
                return null;
            }
            
            String idColumn = dataMap.get(CamelUnderlineUtil.PK);
            String idValue = dataMap.get(idColumn);
            
            StringBuffer sb = new StringBuffer();
            sb.append("UPDATE "+ tableName.toLowerCase() +" SET ");
            for(Map.Entry<String, String> entry : dataMap.entrySet()){
                String mapKey = entry.getKey();
                String mapValue = entry.getValue();
                if(StringUtils.equals(mapKey, CamelUnderlineUtil.PK)) {
                    continue;
                }
                if(StringUtils.equals(mapKey.toLowerCase(), idColumn)) {
                    continue;
                }
                sb.append("`" + mapKey + "`='" + mapValue + "',");
            }
            
            sb = Util.deleteLastChar(sb);
            
            return  String.format("%s where %s='%s'", sb.toString(), idColumn, idValue);
        }
    
    
    }
  • 相关阅读:
    Android在layout xml中使用include完成静态加载
    ImageSwitch图像切换控件
    合并石子大总结
    子矩阵(暴搜(全排列)+DP)
    回路(一笔画问题)
    道路重建(记忆化搜索+贪心)
    【NOIP2013 普及组】车站分级
    UML的基本关联
    Matlab画图-非常具体,非常全面
    面向对象程序设计与面向过程程序设计解析
  • 原文地址:https://www.cnblogs.com/linjiqin/p/13554591.html
Copyright © 2011-2022 走看看