gpt4 book ai didi

java - JDBC ResultSet 数据到 HashMap

转载 作者:行者123 更新时间:2023-11-29 06:27:56 24 4
gpt4 key购买 nike

我无法将 ResultSet 中的数据设置到 HashMap。

我的查询返回 4 条记录,但 HashMap 只保存最后 2 条记录。但是,在循环中我能够打印 4 条记录数据。谁能帮忙?

这是我的代码:

workOrderMap=new HashMap<String, Integer>();

Statement statement = serviceconnection.createStatement();
ResultSet rs = statement.executeQuery("SELECT OPERATION,WORKORDERID FROM History WHERE OPERATION='CREATE'OR OPERATION='UPDATE'");
workOrderMap=new HashMap<String, Integer>();

while (rs.next()) {
workOrderMap.put(rs.getString("OPERATION"), rs.getInt("WORKORDERID"));
System.out.println(rs.getString("OPERATION")); // loops 4 times
}

System.out.println("List of Workorder id's" + workOrderMap.size()); // prints 2

最佳答案

rs.getString("OPERATION") 只返回 2 个不同的值.

这不足为奇,考虑到您的 WHERE子句只允许有 2 个值:

WHERE OPERATION='CREATE' OR OPERATION='UPDATE'

Map 中, 键是唯一的,所以调用 put()使用相同键值将覆盖之前的值。


将行集转换为 POJO 时,我更喜欢创建 List<Map<String, Object>> - 列表的每个元素都是一行,关联映射中的每个条目都是列名及其值。


仅供引用,您的 WHERE从句可以更优雅地写成:

WHERE OPERATION IN ('CREATE', 'UPDATE')

关于java - JDBC ResultSet 数据到 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29787012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com