Oracle
 sql >> база данни >  >> RDS >> Oracle

JDBC ResultSet получава колони с псевдоним на таблица

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: Вижте колоната позиция във вашето обаждане до JDBC API:

resultSet.getString(1);
resultSet.getString(2);

Имайте предвид, че JDBC API използва едно-базиран индекси - т.е. те се броят от 1 (не от 0 като java индекси), така че използвайте 1 за първата колона, 2 за втората колона и т.н.


Бих препоръчал вариант 1, защото е по-безопасно да се позовавате на именувани колони:някой може да промени реда на колоните в заявката и това ще разбие тихо кода ви (ще осъществите достъп до грешната колона, но няма да знаете) , но ако променят имената на колоните, поне ще получите изключение „няма такава колона“ по време на изпълнение.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използвайте tnsnames.ora в Oracle SQL Developer

  2. TRANSLATE(… ИЗПОЛЗВАНЕ) Функция в Oracle

  3. Клауза на Oracle SQL Where за намиране на записи за дата, по-стари от 30 дни

  4. Функция JSON_QUERY() в Oracle

  5. Как да избегнем грешки при мутиране на таблицата