java sql in变量_Java Sql IN 条件拼接工具类,SqlUtils工具类

这是一个Java类,包含多个静态方法,用于构建SQL语句中的`IN`条件子句。方法接受参数列表、SQL缓冲区、表字段和值数组,能够处理整型数组和以逗号分隔的字符串值。类中还包括一个将字符串转换为整型数组的方法。这些方法适用于动态构建SQL查询,特别是在处理多个可能的值时。
摘要由CSDN通过智能技术生成

importjava.util.ArrayList;importjava.util.List;importorg.apache.commons.lang.StringUtils;public classSqlUtils {/***

*@paramparams List,sql执行的?参数List

*@paramsqlBuffer StringBuffer

*@paramcolumn String,表字段,当column=user_name,生成如下:user_name in (?,?)

*@paramvalues Object[],问号(?)的数组值,*/

public static void setInSql(Listparams, 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(")");

}/***

*@paramparams sql执行的?参数List List

*@paramsqlBuffer StringBuffer

*@paramcolumn 表字段,当column=user_name,生成如下:user_name in (?,?)

*@paramvaluesString String,以英文逗号(,)分隔的字符串*/

public static void setInSql(Listparams, StringBuffer sqlBuffer, String column, String valuesString) {

String[] values= valuesString.split(",");

setInSql(params, sqlBuffer, column, values);

}/*** 字符串参数转成整型数组

*@paramvaluesString

*@return

*/

public staticInteger[] getIntegerValue(String valuesString){

List integerValues = new ArrayList();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(newInteger[integerValues.size()]);

}return null;

}/***

*@paramsqlBuffer StringBuffer

*@paramcolumn String,表字段,当column=user_name,生成如下:user_id in (1, 2)

*@paramvalues Integer[],数组值*/

public static voidgetInSql(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(")");

}/***

*@paramsqlBuffer StringBuffer

*@paramcolumn String,表字段,当column=user_name,生成如下:user_name in ('a','b')

*@paramvalues String[],数组值*/

public static voidgetInSql(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 voidmain(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);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值