JDBC po prostu nazwie kolumny według tego, co zostało określone w zapytaniu - nie wie o nazwach tabel itp.
Masz dwie opcje:
Opcja 1: Nazwij kolumny inaczej w zapytaniu, np.
SELECT
a.columnName as columnNameA,
b.columnName as columnNameB,
...
from table1 a, table2 b where (WHATEVER)
następnie w kodzie java odwołaj się do aliasów kolumn:
resultSet.getString("columnNameA");
resultSet.getString("columnNameB");
Opcja 2: Zapoznaj się z kolumną pozycja w wywołaniu JDBC API:
resultSet.getString(1);
resultSet.getString(2);
Zwróć uwagę, że interfejs JDBC API korzysta z funkcji jeden indeksy - tzn. liczą się od 1
(nie od 0
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łamie twój kod (będziesz mieć dostęp do niewłaściwej kolumny, ale nie będziesz wiedział) , ale jeśli zmienią nazwy kolumn, otrzymasz przynajmniej wyjątek „brak takiej kolumny” w czasie wykonywania.