2016-03-29 9 views
-2

Ich versuche, die Ausgabe von ResultSet zu Java HashMap zu übergeben.ResultSet zu 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); 

Während der Ausgang1 zeigt alle Datensätze (aus der DB). Der put Befehl nimmt nur den letzten Wert aus dem ResultSet in

Output1:.

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

Output2:

{502332262=117E3640G025} 

Wie kann ich die put Befehl zu machen über die Ergebnisse der ResultSet iterieren ?

Antwort

4

Alle Ihre IDs sind identisch (502332262), und HashMap lässt keine doppelten Schlüssel zu. Aus diesem Grund sehen Sie nur einen Eintrag in HashMap (mit dem letzten Wert, den Sie in Map eingegeben haben).

Wenn Sie Duplikate zulassen möchten, sollten Sie eine andere Sammlung für die Daten verwenden. Sie können beispielsweise ArrayList<SomeClass> verwenden, wobei SomeClass die zwei Eigenschaften enthält, die Sie aus der Datenbank gelesen haben.