Apabila melaksanakan pertanyaan SQL dengan klausa IN menggunakan PreparedStatement JDBC, menetapkan nilai untuk berbilang parameter boleh menjadi mencabar.
Pengendalian Telah Ditentukan Parameter
Jika senarai parameter diketahui terlebih dahulu, gunakan pendekatan berikut:
Mengendalikan Parameter Tidak Diketahui
Jika senarai parameter tidak diketahui terlebih dahulu, gunakan langkah berikut:
Sebagai contoh, untuk menetapkan parameter untuk pertanyaan Pilih * daripada ujian di mana medan dalam (?) dengan berbilang nilai, anda boleh menggunakan kod berikut:
String query = String.format("select * from test where field in (%s)", values.stream() .map(v -> "?") .collect(Collectors.joining(", "))); PreparedStatement stmt = connection.prepareStatement(query); int index = 1; for (Object o : values) { stmt.setObject(index++, o); }
Pendekatan ini memastikan klausa IN boleh memuatkan sebarang bilangan parameter secara dinamik, membolehkan pelaksanaan pertanyaan yang fleksibel.
Atas ialah kandungan terperinci Bagaimana untuk Cekap Menggunakan PreparedStatement dengan Klausa IN untuk Berbilang Parameter dalam JDBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!