• Java Sql IN 条件拼接工具类,SqlUtils工具类


    ================================

    ©Copyright 蕃薯耀 2020-01-07

    https://www.cnblogs.com/fanshuyao/

    import java.util.ArrayList;
    import java.util.List;
    
    import org.apache.commons.lang.StringUtils;
    
    public class SqlUtils {
    
        /**
         * 
         * @param params List<Object>,sql执行的?参数List 
         * @param sqlBuffer StringBuffer
         * @param column String,表字段,当column=user_name,生成如下:user_name in (?,?)
         * @param values Object[],问号(?)的数组值,
         */
        public static void setInSql(List<Object> params, StringBuffer sqlBuffer, String column, Object[] values) {
            sqlBuffer.append(" ").append("and").append(" ").append(column).append(" ").append("in (");
            for (Object obj : values) {
                if(obj != null){
                    sqlBuffer.append(" ").append("?,");
                    params.add(obj);
                }
            }
            sqlBuffer.delete(sqlBuffer.length() - 1, sqlBuffer.length());
            sqlBuffer.append(" ").append(")");
        }
        
        /**
         * 
         * @param params sql执行的?参数List List<Object>
         * @param sqlBuffer StringBuffer
         * @param column 表字段,当column=user_name,生成如下:user_name in (?,?)
         * @param valuesString String,以英文逗号(,)分隔的字符串
         */
        public static void setInSql(List<Object> params, StringBuffer sqlBuffer, String column, String valuesString) {
            String[] values = valuesString.split(",");
            setInSql(params, sqlBuffer, column, values);
        }
        
        
        /**
         * 字符串参数转成整型数组
         * @param valuesString
         * @return
         */
        public static Integer[] getIntegerValue(String valuesString){
            List<Integer> integerValues = new ArrayList<Integer>();
            if(!StringUtils.isBlank(valuesString)){
                if(valuesString.indexOf(",") > -1){
                    String[] values = valuesString.split(",");
                    for (String value : values) {
                        if(!StringUtils.isBlank(value)){
                            integerValues.add(Integer.valueOf(value.trim()));
                        }
                    }
                }else{
                    integerValues.add(Integer.valueOf(valuesString.trim()));
                }
                return integerValues.toArray(new Integer[integerValues.size()]);
            }
            return null;
        }
        
        /**
         * 
         * @param sqlBuffer StringBuffer
         * @param column String,表字段,当column=user_name,生成如下:user_id in (1, 2)
         * @param values Integer[],数组值
         */
        public static void getInSql(StringBuffer sqlBuffer, String column, Integer[] values) {
            if(values == null || values.length < 1){
                throw new RuntimeException("参数值不能为空");
            }
            sqlBuffer.append(" ").append("and").append(" ").append(column).append(" ").append("in (");
            for (Integer value : values) {
                if(value != null){
                    sqlBuffer.append(" ").append(value).append(",");
                }
            }
            sqlBuffer.delete(sqlBuffer.length() - 1, sqlBuffer.length());
            sqlBuffer.append(" ").append(")");
        }
        
        
        /**
         * 
         * @param sqlBuffer StringBuffer
         * @param column String,表字段,当column=user_name,生成如下:user_name in ('a','b')
         * @param values String[],数组值
         */
        public static void getInSql(StringBuffer sqlBuffer, String column, String[] values) {
            if(values == null || values.length < 1){
                throw new RuntimeException("参数值不能为空");
            }
            sqlBuffer.append(" ").append("and").append(" ").append(column).append(" ").append("in (");
            for (String value : values) {
                if(value != null){
                    sqlBuffer.append(" '").append(value).append("',");
                }
            }
            sqlBuffer.delete(sqlBuffer.length() - 1, sqlBuffer.length());
            sqlBuffer.append(" ").append(")");
        }
        
        
        public static void main(String[] args) {
            /*
            String[] values = "a".split(",");
            System.out.println(JsonUtils.toJson(values));
            
            String[] values2 = "a,b,c".split(",");
            System.out.println(JsonUtils.toJson(values2));
            */
            
            /*
            StringBuffer sqlBuffer = new StringBuffer("");
            getInSql(sqlBuffer, "id", new Integer[]{1,2,3});
            System.out.println(sqlBuffer.toString());
            getInSql(sqlBuffer, "name", new String[]{"a", "b", "cccc"});
            System.out.println(sqlBuffer.toString());
            */
            
            Integer[] values = getIntegerValue("1 ,2,4  ,5,,7");
            for (Integer integer : values) {
                System.out.println(integer);
            }
        }
        
    }

    (如果你觉得文章对你有帮助,欢迎捐赠,^_^,谢谢!) 

    ================================

    ©Copyright 蕃薯耀 2020-01-07

    https://www.cnblogs.com/fanshuyao/

  • 相关阅读:
    路由器设置无线网的方法
    numpy, pandas, matplotlib等常用库的学习手册
    文本乱码的解决办法
    漫画:SOA中怎样确定服务的粒度?
    漫画:大公司都在重复造轮子吗?
    演讲稿:新人培养之道
    漫画:全面理解java.lang.IllegalArgumentException及其可用性设计
    漫画:性能、可用性和锁
    漫画:Linux中/etc/resolv.conf文件和puppet工具解析
    《两地书》--Kubernetes(K8s)基础知识(docker容器技术)
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/12159766.html
Copyright © 2020-2023  润新知