结果集到 HashMap

ResultSet to HashMap

我正在尝试将 ResultSet 的输出传递给 Java HashMap

Map<Integer, String> sIDpNumberHashMap = new HashMap<Integer, String>();

while (DBresult.next()) {
    int sID = DBresult.getInt("slrid");         
    String pNumber = DBresult.getString("pNumber");
    sIDpNumberHashMap.put(sID , pNumber );
    System.out.println("Output1"+ sID + "\t" + pNumber + "\n");
}
System.out.println("Output2" + "\n" + sIDpNumberHashMap);

当 Output1 显示所有记录时(来自数据库)。 put命令只取ResultSet中的最后一个值。

输出 1:

 502332262  101E2571G103
 502332262  101E2571G103
 502332262  116E3139P001
 502332262  117E3640G025
 502332262  314B7159G003
 502332262  117E3640G025

输出2:

{502332262=117E3640G025}

如何使 put 命令遍历 ResultSet 的结果?

您的所有 ID 都相同 (502332262),并且 HashMap 不允许重复键。这就是您在 HashMap 中只看到一个条目的原因(包含您在 Map 中输入的最后一个值)。

如果要允许重复,请考虑使用不同的集合来保存数据。例如,您可以使用 ArrayList<SomeClass>,其中 SomeClass 包含您从数据库中读取的两个属性。