Anda tidak dapat mengikat Daftar ke satu parameter dalam pernyataan yang disiapkan.
Hasilkan SQL dengan penanda parameter untuk setiap elemen dalam daftar, misalnya:
SELECT NAME FROM ITEM WHERE ID IN (?, ?, ?, ?)
Meskipun Anda akan membuat pernyataan baru untuk setiap kueri, saya tetap menyarankan menggunakan PreparedStatement
. Jika daftar Anda berisi String
contoh, Anda akan mendapatkan pelolosan yang diperlukan untuk melindungi dari injeksi SQL.
Tetapi meskipun itu adalah tipe yang aman, seperti Integer
objek, beberapa driver atau middleware dapat menyimpan PreparedStatements
, dan kembalikan instance yang di-cache jika formulir yang sama diminta. Tentu saja, beberapa pengujian akan diperlukan. Jika ukuran daftar Anda sangat bervariasi, Anda akan memiliki banyak pernyataan yang berbeda, dan cache yang diimplementasikan dengan buruk mungkin tidak siap untuk menangani begitu banyak.