PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ResultSet -> Object[][]


nul
10-01-2005, 18:34
Hallo Jungs, und wieder einmal ist es so weit, ich brauch eure hilfe! :o
Und zwar geht es um eine Typkonvertierung, folgender Code ist zu diskutieren:
private Object[][] getData(ResultSet rs, String[] columnLabel) throws SQLException {
this.list = new ArrayList();
this.row = 0;

while ( rs.next() ) {
Object[] obj = new Object[this.column];
this.row++;
// obj[this.row-1] = rs.getArray(this.row); ?? Feature not implemented
for ( int counter = 0; counter < this.column; counter++ ) {
obj[counter] = rs.getObject(columnLabel[counter]);
}
list.add(obj);
}
return (Object[][])list.toArray();
}
Ich versuche hier ein ResultSet in ein Object[][] umzuwandeln. Das ResultSet ist korrekt, das Auslesen der Spaltennamen funktioniert auch einwandfrei. Wenn ich nun die einzelnen Spalten in ein Array schaufle, das dann in eine Arraylist und zuletzt versuche das alles in ein Object[][] umzuwandeln, dann funktioniert das nicht!
Der fehler liegt einzig in der Typkonvertierung!

Brauche Hilfe!

ceisserer
27-01-2005, 12:39
Jo, das ist schon klar.

Eine ArrayList kann dir immer nur eindimensionale Arrays zurückgeben, es ist ja eine Liste und keine Matrix.

lg Clemens

peschmae
27-01-2005, 16:37
Ja, aber zumindest in C(++) ist ja ein Array von Arrays auch ein zweidimensionales Array (bzw. ein langes eindimensionales).

Die Frage hier ist dann halt einfach ob bei Java die Arrays auch in einer bestimmten Anordnung im Speicher liegen und ob die Arrays im Speicher auch nur aus dem Arrayinhalt bestehen oder ob da noch Zusatzinfos dabei gespeichert werden - Sachen die ich so nicht sicher weiss. Ist wohl etwas von dem was da den Strich durch die Rechnung macht...

Dann musst du halt selber ein passend grosses Array machen und dann über die ArrayLists iterieren und dabei das 2d-Array ausfüllen...

MfG Peschmä

ceisserer
28-01-2005, 07:59
Hmm, in Java ist jedes Array eine Referenzliste im Heap.

Ein Mehrdimensionales Array ist nix anderes als lauter Eindimensionale Arrays, wobei:
[ist ein Array-Array][Ist auch ein Array-Array][ist ein Array des eigentlichen typs]

also bis in der letzten Ebene sind die Arrays Arrays von Arrays....

hmm, ist relativ schlecht erklärt :-(

Weil dabei jedes Arrays ein eigenes Objekt ist, gibts keine garantierte Anordnung, die Dinger gammeln irgendwo im Heap herum, werden sogar verschoben wenn ein Sweep gemacht wird...

was solls, thats life ;-)

lg Clemens

Nuke
28-01-2005, 22:35
Geht es darum, einen ResultSet in einem JTable anzuzeigen?

Wenn ja, dann geht das auch mit der Klasse TableModel. Das sind dann nur 5 Zeilen, um die Daten für die Tabelle zu bekommen.