关于sql拼接的知识点 where1=1
阅读原文时间:2023年07月09日阅读:1

String sql="select * from tab_route where 1 = 1 ";

这样不会报错,而且可以根据情况,再去拼接sql

可以使用if(){}else{}

可以查询到所有数据

如果这样select * from tab_route where ;

就会报错

public int findTotalCount(int cid,String rname) {
//String sql="select count(*) from tab_route where cid=?";// cid就是每个旅游类别的标记比如 cid=1 代表休闲类那么多有休闲都会被查询出来
String sql="select count(*) from tab_route where 1 = 1 ";
StringBuilder sb=new StringBuilder(sql);
List params=new ArrayList();//所有条件
//判断参数是否有值
if (cid !=0){//没有参数那么拼接的就是"select count(*) from tab_route where 1 = 1 "
sb.append(" and cid = ? ");//添加?对应的值
params.add(cid);
}if (rname !=null && rname.length()>0){
sb.append(" and rname like ? ");
params.add("%"+rname+"%");
}
sql = sb.toString();
System.out.println(sql);
return template.queryForObject(sql,Integer.class,params.toArray());//返回一个整数
}

int cid,String rname 如果这俩参数都不传那么执行的就是

"select count(*) from tab_route where 1 = 1 "//查询全部