JDBC будет просто называть столбцы тем, что указано в запросе - он не знает об именах таблиц и т. Д.
У вас есть два варианта:
Вариант 1: Имена столбцов в запросе по-разному, например
SELECT
a.columnName as columnNameA,
b.columnName as columnNameB,
...
from table1 a, table2 b where (WHATEVER)
тогда в вашем java-коде обратитесь к столбцу псевдонимов:
resultSet.getString("columnNameA");
resultSet.getString("columnNameB");
Вариант 2: См. Столбец position в вашем вызове JDBC API:
resultSet.getString(1);
resultSet.getString(2);
Обратите внимание, что JDBC API использует основанные на одном индексе - т.е. они считаются с 1
(а не с 0
, как java-индексы), поэтому используйте 1
для первого столбца, 2
для второго столбца и т. д.
Я бы порекомендовал вариант 1, потому что безопаснее ссылаться на именованные столбцы: кто-то может изменить порядок столбцов в запросе, и он молча нарушит ваш код (вы будете обращаться к неправильному столбцу, но не будете знать), но если они измените имена столбцов, вы по крайней мере получите исключение «нет такого столбца» во время выполнения.