SQL JdbcTemplate的多个参数

时间:2013-11-27 18:20:59

标签: java sql parameter-passing jdbctemplate

我有像

这样的查询
`Select * from Table1 where xyz in (List of String to be Supplied).

在我的java代码中。我有一个dao对象,我在其中使用jdbc模板调用此sql。 该方法接受String列表,并且需要提供给此SQl。我有我的行映射器。

如何编写SQl以及如何传递变量列表?

我的SQL将在Teradata Db上运行。

1 个答案:

答案 0 :(得分:3)

使用NamedParameterJdbcTemplate,正如文档所说:

  

它还允许将值列表扩展为适当数量的占位符。

所以你需要

String sql = "select * from Table1 where xyz in :list"; 
// or String sql = "select * from Table1 where xyz in (:list)";
// I can't remember which one is right
Map parameters = new HashMap<String, Object>();
parameters.put("list", theListOfXyz);
List<Foo> result = template.query(sql, parameters, rowMapper);