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);
        }
    
    
    }
  • 相关阅读:
    【SpringMVC 从 0 开始】SpringMVC RESTFul 实战案例
    【SpringMVC 从 0 开始】SpringMVC RESTFul 实战案例
    【SpringMVC 从 0 开始】RESTFul 介绍
    【SpringMVC 从 0 开始】SpringMVC 的视图
    【SpringMVC 从 0 开始】域对象共享数据
    【SpringMVC 从 0 开始】SpringMVC 中获取请求参数
    angular-cdk 探索
    angular 自定义表单/*ngFor增删不更新
    小白都能跑通的3D地图demo
    腾讯地图:输入关键字选取地点
  • 原文地址:https://www.cnblogs.com/linjiqin/p/13554591.html
Copyright © 2011-2022 走看看