Pernyataan Masalah:
Apa cara optimal untuk mendapatkan skema kolom dalam klausa pemilihan (nama kolom, tipe) kueri menggunakan Java?
Opsi
Salah satu opsinya adalah menjalankan kueri dan kemudian menggunakan ResultSetMetadata untuk mendapatkan nama kolom dan jenisnya, tetapi saya tidak yakin apakah ini akan optimal karena akan menjalankan seluruh kueri. Bahkan dengan klausa batas, ia masih dapat menjalankan seluruh kueri sebelum hasilnya dibatasi. Apakah akan ada perbedaan kinerja antara kueri dengan dan tanpa klausa batas?
Opsi lainnya adalah berdasarkan tautan yaitu memberikan yang salah kondisi ke kueri dan gunakan ResultSetMetaData.
Misalnya, pilih * dari A di mana 1=0;
Adakah cara lain yang lebih baik atau opsi 2 yang paling optimal dalam semua kasus? yaitu Saya mungkin memiliki kueri yang menggabungkan beberapa tabel, apakah opsi 2 akan masuk akal dalam kasus ini juga ketika saya menambahkan kondisi yang salah di akhir?
Catatan: Butuh solusi untuk DB2 dan SqlServer.
EDIT: Selain itu, apakah urutan pengambilan skema akan cocok dengan urutan kolom dalam data? yaitu Jika saya memilih * dari A, katakanlah saya mendapatkan 5 kolom. Apakah pesanan ini cocok dengan saat saya mendapatkan skema menggunakan ResultSetMetadata menggunakan kueri yang sama?
select *
di Java. Anda harus selalu menyiapkan pernyataan Anda dan secara jelas menentukan kolom pengembalian Anda. Dengan cara ini Anda bahkan tidak perlu memeriksa metadata. (sumber: blog.jooq.org/2013/08/12/) - person Stavr00   schedule 25.05.2016