首页 > 解决方案 > Jdbc 返回空列表但 SQL 查询成功获取数据 [Spring]

问题描述

我正在尝试执行此查询:

@Override
public UserInfo get(Long id) {
    String sql = "SELECT * FROM users WHERE id = ? ";
    List<UserInfo> list = jdbcTemplate.query(sql,new UserInfoMapper(),id);
    return list.get(0);
}

但是 jdbc 返回空列表,并且在返回行出现异常。但是如果尝试直接通过控制台执行,它会返回: Query, Answer

使用 id 1 执行查询并返回正确的 anwser;但是在方法中它返回了这个

我找不到任何相同的问题,所以这可能是我对某些事情的疏忽。但我看不到任何可能导致这种情况的问题。提前致谢;

更新 1 将代码更改为

@Override
public UserInfo get(Long id) {
    String sql = "SELECT * FROM users WHERE id = ? ";
    List<UserInfo> list = jdbcTemplate.query(sql, new Object[] {id},new UserInfoMapper());
    return list.get(0);
}

结果相同:结果 更新 2

@Override
public UserInfo mapRow(ResultSet resultSet, int i) throws SQLException {
    UserInfo info = new UserInfo();
    info.setId(resultSet.getLong("id"));
    info.setFirstname(resultSet.getString("firstname"));
    info.setMiddlename(resultSet.getString("middlename"));
    info.setLastname(resultSet.getString("lastname"));
    info.setUsername(resultSet.getString("username"));
    info.setPassword(resultSet.getString("password"));
    info.setEmail(resultSet.getString("email"));
    info.setMobilephone(resultSet.getString("mobilephone"));
    info.setPosition(resultSet.getString("position"));
    return info;
}
public class UserInfo {
    private Long id;
    private String firstname;
    private String middlename;
    private String lastname;
    private String username;
    private String password;
    private String email;
    private String mobilephone;
    private String position;

    public UserInfo() {
    }
}

每个字段的 getter 和 setter 都在那里,但我认为没有必要显示它们。

标签: javamysqlspringjdbctemplate

解决方案


推荐阅读