Rumah  >  Soal Jawab  >  teks badan

java - 对于 PreparedStatement ,executeQuery() 不能带有参数的错误

PHP中文网PHP中文网2741 hari yang lalu576

membalas semua(4)saya akan balas

  • PHP中文网

    PHP中文网2017-04-18 09:25:18

    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.

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:25:18

    Anda telah pun melepasi sql ke pst di atas. Mengapa anda perlu menghantarnya ke executQuery?

    balas
    0
  • 怪我咯

    怪我咯2017-04-18 09:25:18

    Psr.executeQuery(sql) anda, anda telah melepasi parameter untuk mendapatkan set hasil, tidak perlu melepasi parameter lagi,

    balas
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:25:18

    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

    balas
    0
  • Batalbalas