之前我大意了。直接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);
这样即可解决。