为避免sql注入,现在jdbctemplate的入参基本都使用设值的方式。当jdbctemplate对数组类型的参数支持不太好。
解决方法:使用NamedParameterJdbcTemplate
public List<UserPO> queryUserList(List<Integer> uIdList) {
StringBuilder sql = new StringBuilder();
sql.append(" select ");
sql.append(" a.uname, ");
sql.append(" a.age ");
sql.append(" from user a ");
sql.append(" where ");
sql.append(" a.uid in (:uIdList) ");
MapSqlParameterSource param = new MapSqlParameterSource();
param.addValue("uIdList",uIdList);
NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);
List<UserPO> data = namedParameterJdbcTemplate.query(sql.toString(), param, new BeanPropertyRowMapper(UserPO.class));
return data;
}
因篇幅问题不能全部显示,请点此查看更多更全内容