【问题标题】:Multiple parameters to SQL JdbcTemplateSQL JdbcTemplate 的多个参数
【发布时间】:2013-11-27 18:20:58
【问题描述】:
我有类似的查询
`Select * from Table1 where xyz in (List of String to be Supplied).
在我的 java 代码中。我有一个 dao 对象,我在其中使用 jdbc 模板调用这个 sql。
该方法接受一个字符串列表,并且需要提供给这个 SQl。我有我的行映射器。
如何编写SQl以及如何传递变量列表?
我的 SQL 将在 Teradata 数据库上运行。
【问题讨论】:
标签:
java
sql
parameter-passing
jdbctemplate
【解决方案1】:
使用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);