Rumah >pangkalan data >tutorial mysql >Mengapa Pernyataan Persediaan Saya Membuang Ralat Sintaks Berdekatan \'?\': Isu Java MySQL

Mengapa Pernyataan Persediaan Saya Membuang Ralat Sintaks Berdekatan \'?\': Isu Java MySQL

Susan Sarandon
Susan Sarandonasal
2024-11-19 17:32:03487semak imbas

Why Does My PreparedStatement Throw a Syntax Error Near

Ralat Sintaks Penyata Disediakan: '<' Dijangka

Menghadapi "ralat sintaks preparedStatement" semasa menggunakan Java PreparedStatements boleh mengecewakan. Jika anda menghadapi ralat:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?)' at line 1

dengan kod seperti:

    String selectSql1
        = "SELECT `value` FROM `sampling_numbers` WHERE `value` < (?)" ;
    ResultSet rs1 = con.select1(selectSql1,randNum);

ia adalah kerana anda tersilap memanggil Statement.executeQuery(String) dan bukannya PreparedStatement.executeQuery() . Begini cara untuk membetulkannya:

    this.stmt = con.prepareStatement(sql); // Prepares the Statement.
    stmt.setInt(1, randNum);               // Binds the parameter.
    // return this.stmt.executeQuery(sql); // calls Statement#executeQuery
    return this.stmt.executeQuery();       // calls your prepared PreparedStatement

Dengan menukar baris ini, anda akan melaksanakan PreparedStatement dengan betul dan mengelakkan "ralat sintaks preparedStatement."

Atas ialah kandungan terperinci Mengapa Pernyataan Persediaan Saya Membuang Ralat Sintaks Berdekatan \'?\': Isu Java MySQL. 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