【问题标题】:ResultSet to HashMap结果集到 HashMap
【发布时间】:2016-03-29 10:10:54
【问题描述】:

我正在尝试将 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 的结果?

【问题讨论】:

    标签: java jdbc hashmap resultset


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 2016-06-02
      • 2010-12-31
      • 1970-01-01
      相关资源
      最近更新 更多