一. 转换成in
在数据库操作的时候,参数通常不仅仅是普通的值,还有一种 in 的形式。 如查询员工编号是 1,3,6,7 的人。 可以写成 user_id in (‘1’,‘3’,‘6’,‘7’) 这样的形式。 而传入的参数值 一般是 1,3,6,7 。 需要进行相应的转换。 即 1,3,6,7 与 (‘1’,‘3’,‘6’,‘7’) 之间的转换。
二. 替换方法replaceAll()
仔细观察,可以发现 (‘1’,‘3’,‘6’,‘7’) ,可以看成 (’ ,1’,‘3’,‘6’,‘7 ,与’) 的形式。 也就是将, 替换成了’,’ 的形式。
可以利用方法:
protected String toInParam(String str){ //如果为空时,进行处理一下。 if(str==null||"".equals(str)){ return "('')"; } // 前引号 替换成后引号+','+前引号的形式 后引号 return "('"+str.replaceAll(",", "','")+"')"; }
三.数组转换成in 参数
有的时候,传入的不是字符串,而是一个数组。 需要先将数组转换成字符串,用,进行分隔。 然后再利用上面的toInParam() 方法进行处理即可。
public String toString(int []arr){ StringBuilder sb=new StringBuilder(); for(int i=0;i<arr.length;i++){ if(i==arr.length-1){ sb.append(arr[i]); }else{ sb.append(arr[i]+","); } } return sb.toString(); }
四. 程序代码
@Test public void testB(){ System.out.println("in形式为:"+toInParam("1,2,3,4,5")); } protected String toInParam(String str){ if(str==null||"".equals(str)){ return "('')"; } return "('"+str.replaceAll(",", "','")+"')"; }
谢谢!!!