【问题标题】:JdbcTemplate "queryForObject" and "query" is deprecated in Spring. What should it be replaced by?JdbcTemplate "queryForObject" 和 "query" 在 Spring 中已弃用。应该用什么代替?
【发布时间】:2020-12-15 06:27:17
【问题描述】:

查询对象,

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 中已弃用

【问题讨论】:

标签: java sql spring spring-boot jdbctemplate


【解决方案1】:

正如课程的javadocthe upgrade/migration guide 中所解释的,它解释说您应该使用varargs method

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

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

【讨论】:

    【解决方案2】:

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

    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

    【讨论】:

      猜你喜欢
      • 2013-03-17
      • 1970-01-01
      • 2019-10-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-10
      • 2016-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多