spring
一般大家习惯的用法如下: public List<Map<String, Object>> queryByFundid(int fundId) { String sql = "SELECT * FROM t_freeze_detail WHERE fund_id = ? AND flag = ? AND freeze_state = ?"; return jt.queryForList(sql, new Object[]{fundId, Const.FLAG_NORMAL, FreezeDetailBean.FREEZE_STATUS_FROZEN}); } 通过问号的顺序,在jt(JdbcTemplate).queryForList后将参数对号入座。避免程序被注入。 但是当我们使用in的时候,这种方法就不好用了,相信你想过,用List匹配问号。你会发现出现这种的SQL: select * from user where id in ([1,2]) 1 执行报错。 下面是正确的用法: 参考资料: https://codedump.io/share/wiR37rEpCp2X/1/how-to-pass-list-parameter-in-in-clause-using-jdbctemplate http://www.technicalkeeda.com/spring