我使用NamedParameterJdbcTemplate for Clause元素,其中一个似乎是List< String>. JdbcTemplate替换它们?,?,?…(列表大小)但是对于带有List< String>的IN子句.它一定要是 ‘?’,’?’….
有没有解决的办法?
解决方法
还有一些其他类似的问题,可能会为您提供有用的答案:
How to execute IN() SQL queries with Spring’s JDBCTemplate effectivly?
为了使这种查询方式在我的最终工作,我必须从普通的旧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());