簡體   English   中英

Java中的查詢功能,從單個列返回所有值的列表

[英]Query function in Java, return a list of all values from single column

我正在嘗試編寫一個函數,該函數為特定用戶返回表中的所有old_password值。 但是,我不知道如何正確格式化它。

public List<String> fetchPasswordHistory(int userId) {
        String query = "SELECT NEW_PASSWORD FROM PASSWORD_HISTORY WHERE USER_ID = ?";
        List<String> strLst  = jdbcTemplate.query(query,new RowMapper<String>() {
            @Override
            public String mapRow(ResultSet rs, int rowNum) throws SQLException {
                return rs.getString(3);
            }
        }, userId);

        if ( strLst.isEmpty() ) {
            return null;
        }
        else {
            return strLst;
        }
    }

這將給出表中的前3個字符串。 我希望它返回此查詢生成的每個值。 然后,我將用戶的暫掛新密碼與數據庫中的所有舊密碼進行比較,以便用戶不再重復輸入密碼。

另外,如果查詢什么也不返回,它將中斷。 有什么幫助嗎?

根據我的經驗,此查詢應該失敗,因為在mapRow方法中,您正在詢問當前行的第3列。 但是在“選擇”語句中,您僅獲得一列。 因此,您應該編寫rs.getString(1)(它不是從零開始的,所以1將返回第一列的值)。

而且,據我所知,您實際上並未將結果限制為3行。 您將獲得查詢的所有行。 mapRow將針對每一行執行,您將提取密碼列表。

暫無
暫無

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

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