PreparedStatement 構文エラー: '<'予想される
Java PreparedStatement の使用中に「preparedStatement 構文エラー」が発生するとイライラすることがあります。エラーが発生した場合:
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
のようなコード:
String selectSql1 = "SELECT `value` FROM `sampling_numbers` WHERE `value` < (?)" ; ResultSet rs1 = con.select1(selectSql1,randNum);
。PreparedStatement.executeQuery() ではなく Statement.executeQuery(String) を誤って呼び出しているためです。 。これを修正する方法は次のとおりです:
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
この行を変更すると、PreparedStatement が正しく実行され、「preparedStatement 構文エラー」が回避されます。
以上がPreparedStatement が「?」近くの構文エラーをスローするのはなぜですか: Java MySQL の問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。