为了避免我的项目中的 SQL 注入攻击,我正在尝试使用参数化查询方式访问数据库。现在我知道如何处理如下相同的情况(使用 Spring JdbcTemplate):
String sql = "SELECT * FROM T_USER WHERE USERNAME = ? AND PASSWORD = ?"
jdbcTemplate.query(sql,
new UserRowMapper(),
new Object[]{"%admin%", "%password%"});
上面的代码运行没有问题,但我不知道如何处理“IN”的情况,以下是我的情况,它工作失败:
String sql =
"SELECT * FROM T_USER WHERE USERNAME = ? AND PASSWORD = ? AND CLASS_ID IN (?)"
jdbcTemplate.query(sql,
new UserRowMapper(),
new Object[]{"%admin%", "%password%", "1,2,3"});
有人给我指导吗?非常感谢。