可变参数是在JDK1.5之后出来的一个行特性,也是一个比较好用的东西
想起好多jfinal还有其他框架的查询方法就有好多用到了可变参数,自己也写了个这样的方法
public class Test { public static void main(String[] args) { String sql=test("select * from table where id=? and state=? and name like '%?%'",1,2,"laotan"); System.out.println(sql); }
public static String find(String str,Object... params){
/*
截取字符串报了一个新的异常,在这里记录一下
Exception in thread main java.util.regex.PatternSyntaxException:
由于 ? 、* 等有的字符在java中属于特殊字符串 所以截取的时候报上面的那个错误
解决办法 在特殊字符窜这里 加上[] 有的也可以用 /来转译
*/ String[] arr=str.split("[?]"); for(int i=0;i<params.length;i++){ System.out.println(params); arr+=params; } StringBuffer sql=new StringBuffer(); for(String s:arr) sql.append(s); return sql.toString(); }
}
打印结果 :select * from table where id=1 and state=2 and name like '%laotan%'
|