条件在Spring JDBCTemplate中的条件

时间:2015-12-04 07:36:59

标签: spring-jdbc

我必须在 Spring JDBC Template 中包含或排除where条件,具体取决于参数中的值。 就像我们在 hibernate中使用' Conjunction' 那样检查searchParam是否有价值,然后只去其他明智地返回整个数据。

一种方法是编写多个if块,并在查询中附加字符串建议其他方式。

我正在使用namedParameterJdbcTemplate。

提前致谢。

1 个答案:

答案 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);