我必须在 Spring JDBC Template 中包含或排除where条件,具体取决于参数中的值。 就像我们在 hibernate中使用' Conjunction' 那样检查searchParam是否有价值,然后只去其他明智地返回整个数据。
一种方法是编写多个if块,并在查询中附加字符串建议其他方式。
我正在使用namedParameterJdbcTemplate。
提前致谢。
答案 0 :(得分:0)
Spring JDBC Template不支持dynamic where子句,你必须编写多个if块。像这样:
NamedParameterJdbcTemplate template;
MapSqlParameterSource parms = new MapSqlParameterSource();
String query = "SELECT * FROM TABLE WHERE COLUMN1='X'";
if(column2 != null){
query += " and column2 = :column2 " ;
parms.addValue("column2 ", column2 );
}
if(column3 != null){
query += " and column3 = :column3 ";
parms.addValue("column3 ", column3 );
}
List li = template.queryForList(query, parms);