我正在尝试将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
的结果?
答案 0 :(得分:5)
您的所有ID都相同(502332262),HashMap
不允许重复密钥。这就是您在HashMap
中只看到一个条目(包含您在Map
中放置的最后一个值)的原因。
如果要允许重复项,请考虑使用其他集合来保存数据。例如,您可以使用ArrayList<SomeClass>
,其中SomeClass
包含您从数据库中读取的两个属性。