通过if条件判断,将sql语句进行拼接。并通过一个List,将置位符?数据添加到list中
主串sql
String sql = "select * from product where 1=1";
其他子串
sql += " and pname like ?";
public List<Products> selectProduct(Condition condition) throws SQLException {
//拼接sql串
String sql = "select * from product where 1=1";
List<String> list = new ArrayList<String>();
if(condition.getPid()!=null && !condition.getPid().trim().equals("")){
sql += " and pname like ?"; //模糊查询
list.add("%"+ condition.getPid().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());
}
@SuppressWarnings("deprecation")
List<Products> products = runner.query(sql, list.toArray(), new BeanListHandler<Products>(Products.class));
return products;
}