ホームページ > データベース > mysql チュートリアル > Java の PreparedStatement が「'?' 付近の SQL 構文が正しくありません」エラーをスローするのはなぜですか?

Java の PreparedStatement が「'?' 付近の SQL 構文が正しくありません」エラーをスローするのはなぜですか?

Barbara Streisand
リリース: 2025-01-11 15:37:42
オリジナル
387 人が閲覧しました

Why is my PreparedStatement in Java throwing an

MySQL で PreparedStatement を正しく使用する

Java 開発者は、MySQL データベースと対話するときに、SQLException による PreparedStatement エラーに遭遇することがよくあります。 一般的なエラー メッセージは、疑問符 (「?」) の近くにある間違った SQL 構文を示しています。これは通常、不適切なステートメントの準備が原因で発生します。

具体的な原因の 1 つは、executeQuery() を String パラメータとともに使用していることです。これにより、パラメーター バインディングがバイパスされ、パラメーター化されたバージョンの代わりに生のクエリ文字列が実行されます。 解決策は、文字列引数をPreparedStatementせずに実行することです。

修正されたコードは次のようになります:

statement.executeQuery();
ログイン後にコピー

executeQuery() から String 引数を省略すると、setString() などのメソッド (surnamename など) を使用して設定されたパラメーターが、実行前に SQL クエリに正しく置換されます。これにより、プレースホルダーに関連する SQL 構文エラーが防止されます。

以上がJava の PreparedStatement が「'?' 付近の SQL 構文が正しくありません」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート