java - 对于 PreparedStatement ,executeQuery() 不能带有参数的错误
PHP中文网
PHP中文网 2017-04-18 09:23:18
0
4
609
PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(4)
洪涛

Proses penggunaan PrepareStatement adalah seperti berikut:

  1. Gunakan instantiasi SQL pemegang tempat

  2. Panggil kaedah bindXX untuk melengkapkan pengikatan parameter

  3. 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 =

           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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan