JDBC hanya akan memberi nama kolom dengan apa yang ditentukan dalam kueri - ia tidak tahu tentang nama tabel, dll.
Anda memiliki dua opsi:
Opsi 1: Beri nama kolom secara berbeda dalam kueri, yaitu
SELECT
a.columnName as columnNameA,
b.columnName as columnNameB,
...
from table1 a, table2 b where (WHATEVER)
kemudian dalam kode java Anda merujuk ke alias kolom:
resultSet.getString("columnNameA");
resultSet.getString("columnNameB");
Opsi 2: Lihat kolom posisi dalam panggilan Anda ke JDBC API:
resultSet.getString(1);
resultSet.getString(2);
Perhatikan bahwa JDBC API menggunakan berbasis satu indeks - yaitu mereka menghitung dari 1
(bukan dari 0
seperti indeks java), jadi gunakan 1
untuk kolom pertama, 2
untuk kolom kedua, dll
Saya akan merekomendasikan opsi 1, karena lebih aman untuk merujuk ke kolom bernama:Seseorang dapat mengubah urutan kolom dalam kueri dan itu akan secara diam-diam memecahkan kode Anda (Anda akan mengakses kolom yang salah tetapi tidak akan tahu) , tetapi jika mereka mengubah nama kolom, Anda setidaknya akan mendapatkan pengecualian "tidak ada kolom seperti itu" saat runtime.