ホームページ >データベース >mysql チュートリアル >Java の PreparedStatement が「'?' 付近の SQL 構文が正しくありません」エラーをスローするのはなぜですか?
MySQL で PreparedStatement を正しく使用する
Java 開発者は、MySQL データベースと対話するときに、SQLException
による PreparedStatement
エラーに遭遇することがよくあります。 一般的なエラー メッセージは、疑問符 (「?」) の近くにある間違った SQL 構文を示しています。これは通常、不適切なステートメントの準備が原因で発生します。
具体的な原因の 1 つは、executeQuery()
を String パラメータとともに使用していることです。これにより、パラメーター バインディングがバイパスされ、パラメーター化されたバージョンの代わりに生のクエリ文字列が実行されます。 解決策は、文字列引数をPreparedStatement
せずにを実行することです。
修正されたコードは次のようになります:
<code class="language-java">statement.executeQuery();</code>
executeQuery()
から String 引数を省略すると、setString()
などのメソッド (surname
と name
など) を使用して設定されたパラメーターが、実行前に SQL クエリに正しく置換されます。これにより、プレースホルダーに関連する SQL 構文エラーが防止されます。
以上がJava の PreparedStatement が「'?' 付近の SQL 構文が正しくありません」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。