Kelas PreparedStatement digunakan untuk menyediakan pernyataan sql. Contohnya: `ResultSet rs = null; PreparedStatement loginStatement =
sqlDAO.sqlConnection().prepareStatement("SELECT username,password FROM user_table WHERE username = ? AND password = ?");
loginStatement.setString(1, username);
loginStatement.setString(2, password);
rs = loginStatement.executeQuery();`
? Mewakili ruang letak, kita boleh menggunakan kaedah seperti setString(int, String) untuk menetapkan nilai untuk ruang letak. Parameter int ialah nombor pemegang tempat (perhatikan bahawa ia tidak bermula dari 0, ia adalah nombor matematik Parameter kedua menunjukkan bahawa kita akan menggantikan pemegang tempat yang sepadan (?) dengan nilai. Melakukan ini akan menghalang pangkalan data kami daripada disuntik sql. Perlu diingat bahawa kata kunci pernyataan SQL tidak boleh digantikan oleh pemegang tempat , kerana pemegang tempat secara automatik akan membalut String yang kami tentukan dalam petikan tunggal, menyebabkan pernyataan SQL gagal dilaksanakan. Lihat kod telefon bimbit
Proses penggunaan PrepareStatement adalah seperti berikut:
Gunakan instantiasi SQL pemegang tempat
Panggil kaedah bindXX untuk melengkapkan pengikatan parameter
Panggil kaedah executeUpdate atau executeQuery Tiada parameter dihantar di sini kerana parameter diproses dalam langkah 1 dan 2.
Anda telah pun melepasi sql ke pst di atas. Mengapa anda perlu menghantarnya ke executQuery?
Psr.executeQuery(sql) anda, anda telah melepasi parameter untuk mendapatkan set hasil, tidak perlu melepasi parameter lagi,
Kelas PreparedStatement digunakan untuk menyediakan pernyataan sql.
Contohnya:
`ResultSet rs = null;
PreparedStatement loginStatement =
? Mewakili ruang letak, kita boleh menggunakan kaedah seperti setString(int, String) untuk menetapkan nilai untuk ruang letak. Parameter int ialah nombor pemegang tempat (perhatikan bahawa ia tidak bermula dari 0, ia adalah nombor matematik Parameter kedua menunjukkan bahawa kita akan menggantikan pemegang tempat yang sepadan (?) dengan nilai. Melakukan ini akan menghalang pangkalan data kami daripada disuntik sql. Perlu diingat bahawa kata kunci pernyataan SQL tidak boleh digantikan oleh pemegang tempat , kerana pemegang tempat secara automatik akan membalut String yang kami tentukan dalam petikan tunggal, menyebabkan pernyataan SQL gagal dilaksanakan. Lihat kod telefon bimbit