Java SQL Spaltennamen ausgeben?
Hallo,
ich bekomme es bisher nur hin, dass der Inhalt der Spalten oder die namen die ich in das Select statement eingebe ausgegeben werden. Wenn ich allerdings SELECT * FROM ... eingebe werden als Spaltennamen * angegeben und nicht die richtigen Spalten. Derzeit ziehe ich mir mit split alles zwischen dem SELECT und dem FROM in eine Liste und lasse diese via for Each ausgeben.
Wie kann ich es direkt mit Java SQL machen, dass sie angegebenen Spalten ausgegeben werden?
LG
Niklas
Am besten mit kurzem Beispiel Code.. :)
warum gibst du nicht im select die Spaltennamen an? Ich mache normal immer 'SELECT table.col1, table.col2 FROM table ...' dann weißt du auch dass du das richtige ausliest ...
Weil wenn ich eine Tabelle mit 100 Spalten habe und alle ausgeben möchte, ich lieber * schreibe als die einzelnen namen
2 Antworten
Also normalerweise müsstest Du in Java ja ein Resultset erhalten, welches zu jeder Zeile in der Tabelle die Werte für jede Spalte enthält. Normalerweise enthält dieses Resultset auch eine Auflistung der Spalten mit ihren Namen.
PS:
Ein schneller Blick in die Doku zeigt mir, dass die Klasse "ResultSet" eine Funktion hat, mit der man "ResultSetMetaData" abrufen kann. Dort kann man sehen, wieviele und welche Spalten es gibt.
Möglicherweise hilft Dir das folgende Code-Beispiel:
ResultSet resultSet = stmt.executeQuery("SELECT * FROM ...");
ResultSetMetaData metaData = resultSet.getMetaData();
int anzahlSpalten = metaData.getColumnCount();
for (int i = 1; i <= anzahlSpalten; i++ )
{
String name = metaData.getColumnName(i);
System.out.println(String.format("Name der %d. Spalte: %s", i, name));
}