Oracle
 sql >> Baza danych >  >> RDS >> Oracle

JDBC ResultSet otrzymuje kolumny z aliasem tabeli

JDBC po prostu nazwie kolumny według tego, co zostało określone w zapytaniu - nie wie o nazwach tabel itp.

Masz dwie opcje:

Opcja 1: Nazwij kolumny inaczej w zapytaniu, np.

SELECT
    a.columnName as columnNameA,
    b.columnName as columnNameB,
    ...
from table1 a, table2 b where (WHATEVER)

następnie w kodzie java odwołaj się do aliasów kolumn:

resultSet.getString("columnNameA");
resultSet.getString("columnNameB");


Opcja 2: Zapoznaj się z kolumną pozycja w wywołaniu JDBC API:

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

Zwróć uwagę, że interfejs JDBC API korzysta z funkcji jeden indeksy - tzn. liczą się od 1 (nie od 0 jak indeksy Java), więc użyj 1 dla pierwszej kolumny 2 dla drugiej kolumny itd.


Polecam opcję 1, ponieważ bezpieczniej jest odwoływać się do nazwanych kolumn:ktoś może zmienić kolejność kolumn w zapytaniu i po cichu złamie twój kod (będziesz mieć dostęp do niewłaściwej kolumny, ale nie będziesz wiedział) , ale jeśli zmienią nazwy kolumn, otrzymasz przynajmniej wyjątek „brak takiej kolumny” w czasie wykonywania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uruchomić 2 zapytania jednocześnie w Oracle SQL Developer?

  2. Jaka jest różnica między odczytem niepowtarzalnym a odczytem fantomowym?

  3. 2 sposoby zwracania wierszy zawierających tylko znaki alfanumeryczne w Oracle

  4. Odwróć ciąg słowo po słowie za pomocą SQL

  5. Jak utworzyć tabelę tymczasową w bazie danych Oracle?