Melalukan Parameter ke JDBC PreparedStatement
Mencipta kelas pengesahan untuk program Java selalunya melibatkan pertanyaan pangkalan data. Kod berikut cuba memilih baris tertentu daripada jadual menggunakan PreparedStatement dengan parameter:
public class Validation { // ... public Validation(String userID) { try { // ... statement = con.prepareStatement( "SELECT * from employee WHERE userID = " + "''" + userID); // ... } catch (Exception ex) { // ... } } // ... }
Walau bagaimanapun, kod ini mungkin tidak berfungsi kerana pernyataan SQL tidak diformat dengan betul.
Penyelesaian:
Untuk menghantar parameter dengan betul kepada PreparedStatement, gunakan kaedah setString():
statement = con.prepareStatement("SELECT * from employee WHERE userID = ?"); statement.setString(1, userID);
Kaedah ini menetapkan nilai parameter pertama (?) kepada ID pengguna yang ditentukan. Ia memastikan bahawa pernyataan diformat dengan betul dan menghalang suntikan SQL, kelemahan keselamatan yang berlaku apabila kod SQL berniat jahat disuntik ke dalam pertanyaan.
Untuk mendapatkan maklumat lanjut tentang menggunakan PreparedStatements, rujuk Tutorial Java.
Atas ialah kandungan terperinci Bagaimana untuk Melewati Parameter dengan Selamat kepada Penyata Disediakan JDBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!