JdbcTemplate 中使用占位符进行 IN 查询
在使用 JdbcTemplate 中的占位符进行 IN 查询时,可以使用以下方式进行编写:
- 使用问号占位符:
String sql = 'SELECT * FROM table_name WHERE column_name IN (?)';
List<Object> params = Arrays.asList('value1', 'value2', 'value3');
jdbcTemplate.query(sql, params.toArray(), new RowMapper<YourObject>() {
// ...
});
- 使用 NamedParameterJdbcTemplate 和命名参数占位符:
String sql = 'SELECT * FROM table_name WHERE column_name IN (:values)';
Map<String, Object> params = new HashMap<>();
params.put('values', Arrays.asList('value1', 'value2', 'value3'));
namedParameterJdbcTemplate.query(sql, params, new RowMapper<YourObject>() {
// ...
});
注意:在使用问号占位符时,需要将参数值封装为 List 对象并使用 toArray()
方法转为数组传入;而使用命名参数占位符时,直接将参数值封装为 List 对象即可。

原文地址: http://www.cveoy.top/t/topic/qAjj 著作权归作者所有。请勿转载和采集!