结果集到 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
包含您从数据库中读取的两个属性。
我正在尝试将 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
包含您从数据库中读取的两个属性。