JdbcTemplate中的字符串元素IN子句

8
我正在使用NamedParameterJdbcTemplate 来处理where子句元素,其中一个元素似乎是List<String>JdbcTemplate会将其替换为?,?,?... (列表大小),但是对于使用List<String>的IN子句,它必须是“?”,“?”.... 是否有解决方法?
1个回答

10

还有一些类似的问题,可能会为您提供有用的答案:

如何有效地使用Spring的JDBCTemplate执行IN() SQL查询?

为了使这种类型的查询在我的端上起作用,我必须从普通的JDBCTemplate切换到NamedParameterJdbcTemplate

以下是一些示例代码:

String query = "select * from table where columnName in (:listOfValues)";
List<String> nameRecordIDs = new ArrayList<String>(); 
// ...
// add values to collection, then
// ...
Map namedParameters = Collections.singletonMap("listOfValues", nameRecordIDs);
namedparameterJdbcTemplate.query(query, namedParameters,new MyMapper());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接