sql常用封装

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tianguodk/article/details/85230612
/**
 * 拼装SQL工具方法
 * 一般用于SQL中的in关键字后
 * 本方法可以对字符串数组进行拼装,拼装为类似('1','2''3')的字符串(不包含括号)并返回。
 * @param stringList    字符串数组
 * @return  拼装后的字符串
 */
public static String assemblySqlInString(List<String> stringList){
    String result = "";

    Integer stringListSize = 0;
    if(stringList != null && stringList.size() > 0){
        stringListSize = stringList.size();
    }else{
        return null;
    }

    if(stringList != null){
        for(int i = 0; i < stringListSize; i++){
            result = result + "'" + stringList.get(i) + "'";

            if(i != stringList.size() - 1){
                result += ",";
            }
        }
    }else{
        return null;
    }
    return result;
}
/**
 * 此方法用于把表中的NO字段进行切分拼接,直到拼接完成为止。
 * 如string = "001001001",则结果为:'001','001001','001001001'
 * @param string 需要切分的字符串
 * @param step 步进,如上面的例子,步进为3.
 * @return 切分拼装后的string
 */
public String assemblySqlInString(String string, Integer step){

    String resultString = "";

    if(StringUtil.validateString(string)){
        Integer stringLength = string.length();
        Integer cycles = 0;

        /* 根据步进计算需要循环多少次 */
        if(step != 0){
            cycles = stringLength / step;
        }else{
            return null;
        }

        /*
            每次循环首先把字符串进行拼接
            再把字符串通过步进进行切割
            循环
        */
        for(int i = 0; i < cycles; i++){
            resultString = resultString + "'" + string + "'";

            if(i != cycles - 1){
                resultString += ",";
            }

            string = string.substring(0, stringLength - step);
            stringLength = string.length();
        }
    }

    return resultString;
}

猜你喜欢

转载自blog.csdn.net/tianguodk/article/details/85230612