使用JdbcTemplate.query(String sql, RowMapper<T> rowMapper, Object... args)
,您可以为?
占位符传递可变数量的值作为最后一个参数:
public List<User> findById(int userId)
{
return getJdbcTemplate().query(
"SELECT * FROM users WHERE user_id=?",
new UserRowMapper(),
userId
);
}
或类似的东西:
public List<User> findByManyParams(int param1, int param2, String param3)
{
return getJdbcTemplate().query(
"SELECT * FROM users WHERE foo=? AND bar=? AND foobar=?",
new UserRowMapper(),
param1,
param2,
param3
);
}
query()
实际上,该方法已多次重载,因此通常可以找到至少一种在任何给定情况下都能满足您需要的口味。