Java: Wie kann ich eine SQL-Ausgabe in Liste o.ä. abspeichern, um mit dem Ergebnis "zu arbeiten"?
Hallo,
mir wurde gesagt, ich solle mein SQL-Ausgabe, welche ich über folgenden Code bekomme in bspw. einer Liste o.ä. speichern, um damit zu arbeiten. Da ich relativ neu in Java bin, kenne ich leider nur Listen und habe keine Ahnung, wie ich eine SQL-Tabellenausgabe in einer Liste speichern soll und was mit "ö.ä." gemeint ist.
Hier erstmal der Code:
String stmnt = "SELECT * FROM dbo.Results";
PreparedStatement pstmnt = c.getConnection().prepareStatement(stmnt);
ResultSet rs = pstmnt.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int column_count = rsmd.getColumnCount();
for (int i = 1; i < column_count + 1; i++) {
String spaltenname = rsmd.getColumnName(i);
System.out.print(spaltenname);
}
// Output column contents of column i (variable number of columns)
System.out.print("\n");
while (rs.next()) {
for (int i = 1; i < column_count + 1; i++) {
System.out.print(rs.getString(i) + "\t");
}
System.out.println("");
}
}
Beispielcode wäre super! Ich bin gerade einfach verwirrt.
LG
Niklas
1 Antwort
Um eine Tabelle in einer Liste einzuordnen, müsste jede Tabellenzeile entweder über ein Objekt abgebildet werden können (jede Spalte bekommt ein Feld)
class DataEntry {
/* ... */
}
// list:
List<DataEntry> data = new ArrayList<>();
oder ein Array (wenn der Datentyp jeder Spalte gleich ist):
List<String[]> data = new ArrayList<>();
Ich würde allerdings den ersten Weg bevorzugen, da man so die einzelnen Spalten logischen Bezeichnern zuordnen kann, statt nur einem Index wie 0, 1, usw..
Je Zeile erstellst du also ein Array/Objekt, fügst in dieses die Spaltenwerte ein und hängst es dann via add-Methode an die Liste.
(...) und was mit "ö.ä." gemeint ist.
Es gibt noch etliche andere Datenstrukturen, neben Listen. Maps, Stacks, Queues, etc..
Via Schleife.
Ich denke, es wäre besser, wenn du dich erst einmal mit Java-Grundlagen (mind. Kapitel 2-4) beschäftigst. Den obigen Code hast du offensichtlich nicht selbst geschrieben.
Danke! Ich habe 60 Spalten - wie kann ich das ganze Automatisieren, sodass ich nicht 60 array lists anlegen müsste? LG