我有像
这样的查询`Select * from Table1 where xyz in (List of String to be Supplied).
在我的java代码中。我有一个dao对象,我在其中使用jdbc模板调用此sql。 该方法接受String列表,并且需要提供给此SQl。我有我的行映射器。
如何编写SQl以及如何传递变量列表?
我的SQL将在Teradata Db上运行。
答案 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);