Problem mit ResultSet

ceene

Erfahrenes Mitglied
Hallo ihr lieben

Ich habe ein Problem mit nem ResultSet. Ich habe mir ein Array gemacht in dem ich einige Ergebnisse aus SQL-Selects speichere. Das mache ich indem ich die ResultSets in einer ArrayList speicher.
Code:
rsIn = new ArrayList<ResultSet>();
......
......
con = ds.getConnection();
stm = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
stm.execute(sql);
rsIn.add(stm.getResultSet());

Lese ich nun die einzelnen ResultSets aus, so behandelt er das letzte Element als wenn nichts drin stehen würde, aber es stehen drei Datensätze drin, das ist sicher.
Code:
try { 
	for(int j = 0; j <= anzTabellen; j++)
	{
		try	{
			while(rsIn.get(j).next())
			{											
				try
				{//Liste bestücken
				         getKundeListe.add(new PersonAnzeige(rsIn.get(j).getString(1), rsIn.get(j).getString(2), 
										rsIn.get(j).getString(3), rsIn.get(j).getString(4), 
								rsIn.get(j).getString(16), "", "", rsIn.get(j).getString(6)));}
				catch(Exception e2)
				{//Liste bestücken
					getKundeListe.add(new PersonAnzeige(rsIn.get(j).getString(1), rsIn.get(j).getString(2), 
										rsIn.get(j).getString(3), rsIn.get(j).getString(4), 
										rsIn.get(j).getString(16), "", "", rsIn.get(j).getString(6)));}
					check = 1;
				}
			}
			catch(Exception e1)
			{}
		}
	}  
	catch (Exception e) 
	{
		facesMessages.add(e.getMessage());
	}

Woran kann es liegen?
 
Zuletzt bearbeitet:
Aber warum ist es unschöner Code? Ob ich nun eine Objekt-Variable in einer List speicher und auswerte oder eine ResultSet-Variable sollte doch egal sein.

Ist doch nichts anderes als wenn ich int-Werte in eine Liste speicher und auswerte.
 
Ein ResultSet hält die Verbindung zur Datenbank offen. Wann willst du diese Verbindung schließen? Wann willst du das Statement schließen? Und die Connection?

Glaub mir, ich sag das nicht einfach so, ich will dich nur vor den typischen Problemen mit Datenbanken bewahren.
 
Ach so danke. Das ein ResultSet die Verbindung offen hält wusste ich nicht. Dann ist es natürlich besser das Ergebniss auszuwerten.
 

Neue Beiträge

Zurück