Resultset in Collection einlesen

Hallo,
gibt es vorgefertigte Bibliotheken, wie man ein Resultset in eine Collection einlesen kann etc?
In welche Collection sollte man ein Resultset am besten einlesen?
Vector aus Vectoren oder lieber doch in eine Liste??
Danke,
Fabian

Hallo,
wenn, dann sowas wie eine Liste von Maps. Resultsets beschreiben Ansammlungen von Zeilen, eine Zeile läßt sich als Abbildung Spaltenname/-index -> Wert auffassen. Evtl. verstehe ich Deine Frage aber auch falsch.

Gruss
Enno

Hallo,

ich denke am günstigsten geht das mit einer ArrayList.
Du definierst dir eine ArrayList:

ArrayList resultArrayList = new ArrayList(100);

Nehmen wir mal an, dein ResultSet beinhaltet beispielsweise verschiedene Alben, d.h. Objekte der Klasse Album, dann kannst du das ResultSet folgendermaßen in eine ArrayList übernehmen:

while(resultset.next()){
Album album = new Album(resultset.getString(„1.Spaltenname“), resultset.getString("2.Spaltenname),…);
resultArrayList.add(album);
}

Das Ganze noch in einen try-catch-Block packen und schon ist das ResultSet in eine ArrayList eingelesen.
Voraussetzung ist natürlich noch das eine Klasse (für die Objekte im ResultSet) wie hier z.B. die Klasse Album mit entsprechenden Konstruktor existiert.

Gruss
cinu

In welche Collection sollte man ein Resultset am besten
einlesen?

Das kommt drauf an, was du danach damit vor hast. Wenn du keinerlei Ahnung hast wieviel Elemente es werden und du sie danach nur wieder alle abarbeiten willst (Iterator), dann bietet sich ne LinkedList ganz gut an. ArrayList ist aber ein guter Kompromiss für alle Fälle, benutze ich für sowas selbst meistens.

Einlesen würde ich so machen wie im vorigen Post beschrieben, direkt für jeden Datensatz ein entsprechendes Business Object erzeugen.

Als Rückgabewert würde ich das Interface List angeben und auch nur auf dieses außen programmieren, dann kannst du innen implementieren wie du willst. Vector implementiert auch List.

Grüße
Bruno

Ergänzung
Wenn es innerhalb der Liste keine eigenen Objekte sein soll sondern was allgemeingültiges würde ich eine Hashtable nehmen (sofern du nen Zugriff über den Spaltennamen brauchst). Evtl. kannst du auch doppelt indizieren über ein Array und eine Hashtable für den Zugriff über Index und Spaltenname.

Grüße
Bruno