JDBC nominerà semplicemente le colonne in base a ciò che è specificato nella query:non conosce i nomi delle tabelle, ecc.
Hai due opzioni:
Opzione 1: Assegna un nome diverso alle colonne nella query, ad esempio
SELECT
a.columnName as columnNameA,
b.columnName as columnNameB,
...
from table1 a, table2 b where (WHATEVER)
quindi nel tuo codice java fai riferimento agli alias di colonna:
resultSet.getString("columnNameA");
resultSet.getString("columnNameB");
Opzione 2: Fare riferimento alla colonna posizione nella tua chiamata all'API JDBC:
resultSet.getString(1);
resultSet.getString(2);
Tieni presente che l'API JDBC utilizza one-based indici, ovvero contano da 1
(non da 0
come gli indici java), quindi usa 1
per la prima colonna, 2
per la seconda colonna, ecc
Raccomanderei l'opzione 1, perché è più sicuro fare riferimento a colonne con nome:qualcuno potrebbe cambiare l'ordine delle colonne nella query e interromperebbe silenziosamente il tuo codice (avresti accesso alla colonna sbagliata ma non lo sapresti) , ma se cambiano i nomi delle colonne, otterrai almeno un'eccezione "nessuna colonna" in fase di esecuzione.