JdbcTemplate.queryforList() returns 值但 map.get returns 为空

JdbcTemplate.queryforList() returns value but map.get returns null

这是我遇到的一个非常奇怪的场景,我一直无法找出原因。

这是我的代码。

public CreditCard getCardByNumber(String creditCardNumber) {
        CreditCard cc = new CreditCard();
        String sql = "Select * from credit_card where card_number=?";
        List<Map<String, Object>> rows = jdbcTemp.queryForList(sql, new Object[] { creditCardNumber });

        for (Map<String, Object> row : rows) {
            for (Entry<String, Object> check : row.entrySet()) {
                System.out.println(check.getKey());
                System.out.println(row.get(check.getKey()));
                System.out.println(check.getValue());
            }
        }
        return cc;
    }

以上代码打印如下:

card_id
null
1
customer_id
null
1
card_number
null
0699510593447478
cvv
null
231
card_date
null
07/22
card_status
null
Approved
credit_limit
null
8500

当我打印地图时,它会打印 {card_id=1, customer_id=1, card_number=0699510593447478, cvv=231, card_date=07/22, card_status=Approved, credit_limit=8500}

我试过row.get(key),它总是returns null,我不知道为什么,但是当我使用entrySet打印值时,它得到了值。

发生这种情况是因为我使用了不同的 Spring JDBC 版本和 Spring 版本。刚刚将 Spring JDBC 更改为 Spring 版本,它就像一个魅力。