ResultSet到HashMap

时间:2016-03-29 10:10:55

标签: java jdbc hashmap resultset

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

1 个答案:

答案 0 :(得分:5)

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

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