多条件查询
首先将前台得到的需要查询的数据进行封装
sql=”select * from 表名 where 1=1”
if(判断条件一){
}
If(判断条件二){
}
If(判断条件三){
}
例:
public List<Product> findProductListByCondition(Conditioncondition) throws SQLException {
QueryRunnerrunner = new QueryRunner(DataSourceUtils.getDataSource());
//定义一个存储实际参数的容器
List<String>list=new ArrayList<String>();
Stringsql = "select * from product where 1=1";
if(condition.getPname()!=null&&condition.getPname().trim().equals("")){
sql+="and pname like ? ";
list.add("%"+condition.getPname().trim()+"%");
}
if(condition.getIsHot()!=null&&condition.getIsHot().trim().equals("")){
sql+="and is_hot=? ";
list.add(condition.getIsHot().trim());
}
if(condition.getCid()!=null&&condition.getCid().trim().equals("")){
sql+="and cid=? ";
list.add("%"+condition.getCid().trim()+"%");
}
List<Product>productList = runner.query(sql,new BeanListHandler<Product>(Product.class),list.toArray());
return productList;
}
难点:sql拼接