JDBC będzie po prostu wymienić kolumny, przez co jest określone w zapytaniu - nie wiedzieć o nazwach tabel itp
Masz dwie opcje:
Wariant 1: Nazwa kolumny różnie w zapytaniu, tj
SELECT
a.columnName as columnNameA,
b.columnName as columnNameB,
...
from table1 a, table2 b where (WHATEVER)
następnie w kodzie java odnoszą się do aliasów kolumn:
resultSet.getString("columnNameA");
resultSet.getString("columnNameB");
Opcja 2: Patrz kolumnie pozycję w wywołaniu API JDBC:
resultSet.getString(1);
resultSet.getString(2);
nocie, że API JDBC używa jeden opartych indeksów - czyli liczą od 1
(nie od 0
podobnie jak indeksy java), więc użyj 1
dla pierwszej kolumny, 2
dla drugiej kolumny, itd.
Polecam opcję 1, ponieważ bezpieczniej jest odwoływać się do nazwanych kolumn: Ktoś może zmienić kolejność kolumn w zapytaniu i po cichu złamałby kod (miałby dostęp do niewłaściwej kolumny, ale nie wiedziałby), ale jeśli zmienią nazwy kolumn, przynajmniej otrzymasz wyjątek "brak takiej kolumny" w środowisku wykonawczym.
Okay wygląda jak będę musiał zapomnieć o ładnym * i nazwy wszystkiego i korzystać z dodatkowego mapowanie. –