sql >> Databasteknik >  >> RDS >> Oracle

JDBC ResultSet får kolumner med tabellalias

JDBC kommer helt enkelt att namnge kolumnerna efter vad som anges i frågan - den känner inte till tabellnamn etc.

Du har två alternativ:

Alternativ 1: Namnge kolumnerna annorlunda i frågan, dvs

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

hänvisa sedan till kolumnaliasen i din java-kod:

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


Alternativ 2: Se kolumnen position i ditt anrop till JDBC API:

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

Observera att JDBC API använder en-baserad index - dvs de räknas från 1 (inte från 0 som java-index), så använd 1 för den första kolumnen, 2 för den andra kolumnen osv


Jag skulle rekommendera alternativ 1, eftersom det är säkrare att referera till namngivna kolumner:Någon kan ändra ordningen på kolumnerna i frågan och det skulle tyst bryta din kod (du skulle komma åt fel kolumn men skulle inte veta det) , men om de ändrar kolumnnamnen kommer du åtminstone att få ett "ingen sådan kolumn"-undantag vid körning.



  1. Hur man får aktuellt Auto_Increment-sekvensnummer för MySQL / MariaDB-tabell

  2. Varför ger denna SQL-kod fel 1066 (Inte unik tabell/alias:'användare')?

  3. Använder Geekbench 3.2 för att testa stora databasservrar

  4. Återställer raderad "root"-användare och lösenord för MySQL