springJdbcTemplate 执行 sql中包含in的用法

spring java 文章 2020-10-13 11:33 0 76 全屏看文

之前我大意了。直接SQL与语句里写的

select * from xxx where batch_no in (?);

然后java代码里直接用的

 jdbcTemplate.query(sql, new Object[] {batchNos});

后来发现这样执行不会报错,但是绝对不是我想要的答案。

再翻阅网络资料后找到解决方案,需要使用NamedParameterJdbcTemplate封装下才行。

sql改为:

select * from xxx where batch_no in (:batch_no);


java代码改为:

Map<String, Object> paramMap = new HashMap<String, Object>();
paramMap.put("batch_no", batchNos);
NamedParameterJdbcTemplate jdbc = new NamedParameterJdbcTemplate(jdbcTemplate);
List ls =  jdbc.query(sql,paramMap);

这样即可解决。

-EOF-