Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melewati Parameter dengan Selamat kepada Penyata Disediakan JDBC?

Bagaimana untuk Melewati Parameter dengan Selamat kepada Penyata Disediakan JDBC?

Patricia Arquette
Patricia Arquetteasal
2024-11-25 00:31:10600semak imbas

How to Safely Pass Parameters to a JDBC PreparedStatement?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn