Spring Boot项目JdbcTemplate的queryForObject三参数方法已弃用如何修复
弃用方法修复方案
问题说明
Spring Boot 3+ 对应依赖的Spring Framework 6+版本中,queryForObject(java.lang.String, java.lang.Object[], java.lang.Class<T>)方法已被标记弃用,官方推荐使用可变参数传参的重载方法替代。
修复代码
你只需要修改getCountByEmail方法的调用逻辑即可,执行效果和原有逻辑完全一致,无需调整其他代码:
@Override public Integer getCountByEmail(String email) { // 调整参数顺序,将返回值类型放在第二位,SQL参数直接按顺序传入即可 return jdbcTemplate.queryForObject(SQL_COUNT_BY_EMAIL, Integer.class, email); }
补充:findById方法实现参考
你类中已定义了用户ID查询的SQL常量,可以直接用同个API完成用户查询实现:
@Override public User findById(Integer userId) { return jdbcTemplate.queryForObject(ID, (resultSet, rowNum) -> { User user = new User(); user.setUserId(resultSet.getInt("USER_ID")); user.setFirstName(resultSet.getString("FIRST_NAME")); user.setLastName(resultSet.getString("LAST_NAME")); user.setEmail(resultSet.getString("EMAIL")); user.setPassword(resultSet.getString("PASSWORD")); return user; }, userId); }
内容的提问来源于stack exchange,提问作者Lance0567
相关产品推荐
相关产品推荐

