Oracle
 sql >> Datenbank >  >> RDS >> Oracle

JDBC-ResultSet-Get-Spalten mit Tabellen-Alias

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".