JDBC jednoduše pojmenuje sloupce podle toho, co je uvedeno v dotazu - nezná názvy tabulek atd.
Máte dvě možnosti:
Možnost 1: Sloupce v dotazu pojmenujte jinak, tj
SELECT
a.columnName as columnNameA,
b.columnName as columnNameB,
...
from table1 a, table2 b where (WHATEVER)
pak ve svém kódu java přejděte do sloupce aliasy:
resultSet.getString("columnNameA");
resultSet.getString("columnNameB");
Možnost 2: Viz sloupec pozice ve vašem volání rozhraní JDBC API:
resultSet.getString(1);
resultSet.getString(2);
Všimněte si, že rozhraní JDBC API používá založené na jednom indexy - tj. počítají od 1
(ne z 0
jako java indexy), takže použijte 1
pro první sloupec 2
pro druhý sloupec atd
Doporučuji možnost 1, protože je bezpečnější odkazovat na pojmenované sloupce:Někdo může změnit pořadí sloupců v dotazu a tiše by to narušilo váš kód (přistupovali byste ke špatnému sloupci, ale nevěděli byste to) , ale pokud změní názvy sloupců, dostanete za běhu alespoň výjimku „žádný takový sloupec“.