JDBC vil blot navngive kolonnerne efter det, der er angivet i forespørgslen - den kender ikke til tabelnavne osv.
Du har to muligheder:
Mulighed 1: Navngiv kolonnerne anderledes i forespørgslen, dvs.
SELECT
a.columnName as columnNameA,
b.columnName as columnNameB,
...
from table1 a, table2 b where (WHATEVER)
så referer i din java-kode til kolonnealiasserne:
resultSet.getString("columnNameA");
resultSet.getString("columnNameB");
Mulighed 2: Se kolonnen position i dit opkald til JDBC API:
resultSet.getString(1);
resultSet.getString(2);
Bemærk, at JDBC API bruger en-baseret indekser - dvs. de tæller fra 1
(ikke fra 0
ligesom java-indekser), så brug 1
for den første kolonne, 2
for anden kolonne osv.
Jeg vil anbefale mulighed 1, fordi det er mere sikkert at henvise til navngivne kolonner:Nogen ændrer muligvis rækkefølgen af kolonnerne i forespørgslen, og det vil lydløst bryde din kode (du ville have adgang til den forkerte kolonne, men ville ikke vide det) , men hvis de ændrer kolonnenavnene, vil du i det mindste få en "no such column"-undtagelse ved kørsel.