JDBC zal de kolommen gewoon een naam geven op basis van wat is gespecificeerd in de query - het weet niets van tabelnamen enz.
Je hebt twee opties:
Optie 1: Geef de kolommen een andere naam in de zoekopdracht, bijv.
SELECT
a.columnName as columnNameA,
b.columnName as columnNameB,
...
from table1 a, table2 b where (WHATEVER)
verwijs dan in uw java-code naar de kolom aliassen:
resultSet.getString("columnNameA");
resultSet.getString("columnNameB");
Optie 2: Raadpleeg de kolom positie in uw aanroep naar de JDBC API:
resultSet.getString(1);
resultSet.getString(2);
Merk op dat de JDBC API one-based . gebruikt indexen - dwz ze tellen vanaf 1
(niet van 0
zoals java-indexen), dus gebruik 1
voor de eerste kolom, 2
voor de tweede kolom, enz.
Ik zou optie 1 aanbevelen, omdat het veiliger is om naar benoemde kolommen te verwijzen:iemand kan de volgorde van de kolommen in de zoekopdracht wijzigen en het zou je code in stilte breken (je zou de verkeerde kolom openen, maar zou het niet weten) , maar als ze de kolomnamen wijzigen, krijgt u tijdens runtime op zijn minst een "no such column"-uitzondering.