⽤StringBuffer类拼接SQL语句
  在开发的时候难免遇见先判断参数然后写SQL语句的情况。如果⽤if...会⾮常⿇烦。推荐使⽤StringBuffer。
⾸先创建StringBuffer对象
StringBuffer buffer = new StringBuffer();
或者StringBuffer buffer = new StringBuffer ("XXXXXXXXXXXXXXXXXXXXXX");
下⾯⽤实例来说明。
假如在DAO层有⼀个⽅法:
public List getList(String param1,String param2,String param3,String param4){
    //条件是在参数不为空的条件下才将其列⼊查询条件
//StringBuffer buffer = new StringBuffer("select * from table1 where");
    //你是不是会这样写
//if(param1!=null){buffer.append("param1 = "+param1)}
//if(param2!=null){buffer.append("and param2 = "+param1)}
//if(param3!=null){buffer.append("and param3 = "+param1)}
//if(param4!=null){buffer.append("and param4 = "+param1)}
//但是这样就存在⼀个问题,如果param1==null,⽽param2!=空
//那么你拼的sql语句就成了select * from table1 where and param2 = param2。在where后多了⼀个and,肯定会报SQL语句的异常。          //问题貌似⽆法解决。如果where后⾯已经存在⼀个逻辑判断,那么其余的判断前就可以使⽤and了,关键在此。
StringBuffer buffer = new StringBuffer("select * from table1 where 1=1");//神奇的“1=1”
sql server拼接字符串函数
//1=1永远都是true,
if(param1!=null){buffer.append("and param1 = "+param1)}
if(param2!=null){buffer.append("and param2 = "+param1)}
if(param3!=null){buffer.append("and param3 = "+param1)}
if(param4!=null){buffer.append("and param4 = "+param1)}
//即使所有条件都是null也不会报错。
//String str = String();//得到SQL字符串。
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。