# ResultSet in HashMap



## enit87 (12. Aug 2009)

Hallo,
ich möchte gerne aus einer Datenbank Werte in einer Hashmap speichern. Dazu muss ich sagen, ich brauche immer nur eine Zeile, deswegen bietet sich HashMap ja an.
Allerdings kann es gut sein, dass in der Datenbank manche Spalten nicht gefüllt sind, die möchte ich dann einfach nicht mit in die HashMap aufnehmen, sondern einfach über springen.
Habe schon ewig viel rumprobiert und irgendwie klappts nicht, z.B. mit folgendem Code:

ResultSetMetaData rsmd = rs.getMetaData();
				int columnCount = rsmd.getColumnCount();
				map = new HashMap();

				if(rs.next()){
					for (int i = 0; i < columnCount; i++) {
						String key = rsmd.getColumnLabel(i+1);
						System.out.println(key);
						String val = rs.getString(key);
						System.out.println(val);
						if(!(val.equals("null"))){
							map.put(key, val);
						}
					}
				}

Kann mir jemand helfen?
Wenn ich die letzte If-Abfrage ausklammere und mir dann die Werte von val ausgeben lasse, gibt er ganz normal "null" aus, sobald ich sie wieder mit rein nehme, hängt er beim ersten null-Wert.


----------



## Schandro (12. Aug 2009)

if(val != null){


----------



## ARadauer (12. Aug 2009)

```
if(val!=null){
map.put(key, val);
}
```

in vall steht nicht "null" drin, sondern val ist wahrscheinlich null..


----------



## enit87 (12. Aug 2009)

Hm auch schon probiert, funktioniert nicht


----------



## Schandro (12. Aug 2009)

geh mal selber mim Debugger rein oder poste mal die komplette Fehlermeldung


----------



## enit87 (12. Aug 2009)

Also er speichert jetzt alles in die HashMap, allerdings wenn ich mir die Werte in der Map ausgeben lasse, sehe ich, dass er auch null gespeichert hat.
Habe schon probiert:
val !=null und val.equals("null")

aber bei beiden Varianten speichert er null in der Map.

Also er wirft keine Fehlermeldung.


----------



## SlaterB (12. Aug 2009)

10 Dinge einzufügen und sich am Ende über das Ergebnis zu wundern ist wenig intelligent,

prüfe doch während der Eingabe, z.B. per Log

System.out.println("füge nun ein key = .., val = ..");
System.out.println("Inhalt der Map ist nun: "); // Schleife mit Ausgabe, oder nur boolean true/ false ausgeben, ob Map null enthält


----------



## enit87 (12. Aug 2009)

Also wenn ich während der Eingabe immer schön ausgeben lasse, was er einträgt, dann gibt er mit keine null aus, allerdings wenn ich mir danach nochmal den kompletten Eintrag der Map ausgeben lasse schon.


----------



## SlaterB (12. Aug 2009)

über zauberhafte Objektveränderungen kann man schlecht spekulieren, poste deinen jetzigen Code und die zugehörigen Ausgaben,


für später evtl. noch ein Schritt weiter:
ersetze das ResultSet durch ein String[10][2] mit Testdaten und poste ein komplett lauffähiges Testprogramm


----------

