通过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;
}
本文介绍了一种使用Java动态拼接SQL查询语句的方法,并通过List收集参数来实现预编译参数化查询,有效避免了SQL注入风险。文章详细展示了如何根据不同的查询条件动态构造SQL语句。

541

被折叠的 条评论
为什么被折叠?



