最近项目用到PreparedStatement,根据输入条件查询数据,输入条件不为空,则参与查询,为空,则不参与查询。网上搜了,也是按照网上的方法,也不算原创,记录一下。
参考文章:https://blog.youkuaiyun.com/dream_broken/article/details/44681597/
代码如下:
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = FSJDBCUtil.getConnection();
StringBuffer sqlb = new StringBuffer("select * from table t where 1=1 ");
List<String> params = new ArrayList<String>();
if(StringUtil.isNotBlank(paramsA)){
sqlb.append(" and t.columA = ? ");
params.add(paramsA);
}
if(StringUtil.isNotBlank(paramsB)){
sqlb.append(" and t.columB like ? ");
params.add("%"+paramsB+"%");
}
ps = conn.prepareStatement(sqlb.toString());
int j=1;
for(String str:params){
ps.setString(j, str);
j++;
}
rs = ps.executeQuery();
} catch (Exception e) {
e.printStackTrace();
}finally{
FSJ