簡體   English   中英

Jdbc 返回空列表但 SQL 查詢成功獲取數據 [Spring]

[英]Jdbc returns empty list but SQL query succesfully gets data [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 都在那里,但我認為沒有必要顯示它們。

檢查您用於從應用程序連接數據庫的用戶憑據和控制台中的用戶憑據。 並檢查您的應用程序中的所有者架構、表所有者架構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM