之前我大意了。直接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 paramMap = new HashMap();
paramMap.put("batch_no", batchNos);
NamedParameterJdbcTemplate jdbc = new NamedParameterJdbcTemplate(jdbcTemplate);
List ls = jdbc.query(sql,paramMap);
这样即可解决。