JdbcTemplate "queryForObject" 和 "query" 在 Spring 中被弃用。应该用什么代替?

JdbcTemplate "queryForObject" and "query" is deprecated in Spring. What should it be replaced by?

查询对象,

Student student = return jdbcTemplate.queryForObject("select * from student_id = ?", new Object[] { studentId }, studentRowMapper);

查询,

List<Student> students = return jdbcTemplate.query("select * from class_room_id = ?", new Object[] { classRoomId }, studentRowMapper);

jdbcTemplate.queryForObjectjdbcTemplate.query 在 spring boot 2 中被弃用。4.X 以上

javadoc of the class as well as in the upgrade/migration guide it explains that you should use the varargs method 中所述。

jdbcTemplate.queryForObject("select * from student_id = ?", studentRowMapper, studentId);

List<Student> students = return jdbcTemplate.query("select * from class_room_id = ?", studentRowMapper, classRoomId);

您只需更改数组对象[ ] 和映射器的顺序即可。当前版本支持此语法。所以你的代码将是:

Student student = return jdbcTemplate.queryForObject("select * from student_id = ?", 
studentRowMapper, new Object[] { studentId });

List<Student> students = return jdbcTemplate.query("select * from class_room_id = ?", 
studentRowMapper, new Object[] { classRoomId });

您可以查看此方法的文档here