使用Spring DAO的NamedParameterJDBCTemplate,如何编写多列IN语句?

时间:2015-05-18 02:39:48

标签: sql spring jdbctemplate multiple-columns

如何使用NamedParameterJDBTemplate来检索如下所示的SQL查询?

SELECT * FROM TABLE_1 
WHERE
    (COLUMN_1, COLUMN2) IN
    ((Val1, val2), (Val3, Val4));

单列IN语句很容易在Spring DAO中编码;但是无法找到多列IN的解决方案。

1 个答案:

答案 0 :(得分:2)

通过这种方式添加参数,您可以在IN中添加多个值:

NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);
MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("column1", Arrays.asList("Val1", "val2"));
parameters.addValue("column2", Arrays.asList("Val3", "Val4"));
namedParameterJdbcTemplate.query("select * from TABLE_1 where (COLUMN_1, COLUMN2) in (:column1,:column2)",parameters,new Mapper());

请看这个tuts