JDBC benennt die Spalten einfach nach den Angaben in der Abfrage - es kennt keine Tabellennamen usw.
Sie haben zwei Möglichkeiten:
Möglichkeit 1: Benennen Sie die Spalten in der Abfrage anders, dh
SELECT
a.columnName as columnNameA,
b.columnName as columnNameB,
...
from table1 a, table2 b where (WHATEVER)
beziehen Sie sich dann in Ihrem Java-Code auf die Spaltenaliase:
resultSet.getString("columnNameA");
resultSet.getString("columnNameB");
Möglichkeit 2: Siehe Spalte Position in Ihrem Aufruf an die JDBC-API:
resultSet.getString(1);
resultSet.getString(2);
Beachten Sie, dass die JDBC-API Eins-basiert verwendet Indizes - dh sie zählen ab 1
(nicht von 0
wie Java-Indizes), verwenden Sie also 1
für die erste Spalte 2
für die zweite Spalte usw.
Ich würde Option 1 empfehlen, da es sicherer ist, auf benannte Spalten zu verweisen:Jemand könnte die Reihenfolge der Spalten in der Abfrage ändern und es würde Ihren Code stillschweigend beschädigen (Sie würden auf die falsche Spalte zugreifen, würden es aber nicht wissen). , aber wenn sie die Spaltennamen ändern, erhalten Sie zur Laufzeit zumindest eine Ausnahme "keine solche Spalte".