You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:54:06