JDBC kommer helt enkelt att namnge kolumnerna efter vad som anges i frågan - den känner inte till tabellnamn etc.
Du har två alternativ:
Alternativ 1: Namnge kolumnerna annorlunda i frågan, dvs
SELECT
a.columnName as columnNameA,
b.columnName as columnNameB,
...
from table1 a, table2 b where (WHATEVER)
hänvisa sedan till kolumnaliasen i din java-kod:
resultSet.getString("columnNameA");
resultSet.getString("columnNameB");
Alternativ 2: Se kolumnen position i ditt anrop till JDBC API:
resultSet.getString(1);
resultSet.getString(2);
Observera att JDBC API använder en-baserad index - dvs de räknas från 1
(inte från 0
som java-index), så använd 1
för den första kolumnen, 2
för den andra kolumnen osv
Jag skulle rekommendera alternativ 1, eftersom det är säkrare att referera till namngivna kolumner:Någon kan ändra ordningen på kolumnerna i frågan och det skulle tyst bryta din kod (du skulle komma åt fel kolumn men skulle inte veta det) , men om de ändrar kolumnnamnen kommer du åtminstone att få ett "ingen sådan kolumn"-undantag vid körning.