JavaでSQLを実行したときに、次のようなエラーが出ることがあります。
java.sql.SQLSyntaxErrorException
この記事では、
- SQLSyntaxErrorException の意味
- よくある原因
- 解決方法
を初心者向けにわかりやすく解説します。
✅ 結論:SQLの書き方が間違っている
SQLSyntaxErrorException は、
SQLの文法が間違っているとき
に発生するエラーです。
Javaの問題というより、SQL文そのもののミスが原因であることが多いです。
よくあるエラー例
String sql = "SELEC * FROM users";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
このSQLでは、SELECT が SELEC になっています。
このようなスペルミスがあると、SQLSyntaxErrorException が発生します。
よくある原因①:SQLのスペルミス
よくある例:
SELECT→SELECFROM→FORMWHERE→WHRE
SQLのキーワードを間違えると、DBがSQLを正しく読めません。
よくある原因②:テーブル名・カラム名が違う
String sql = "SELECT namee FROM users";
namee というカラムが存在しない場合も、エラーになります。
確認すること
- テーブル名は正しいか
- カラム名は正しいか
- 大文字小文字の扱いは問題ないか
よくある原因③:シングルクォーテーション忘れ
String sql = "SELECT * FROM users WHERE name = Taro";
文字列の値には、通常シングルクォーテーションが必要です。
正しい例
String sql = "SELECT * FROM users WHERE name = 'Taro'";
よくある原因④:SQL文をつなげたときの空白不足
String sql = "SELECT * FROM users" +
"WHERE id = 1";
この場合、実際には
SELECT * FROM usersWHERE id = 1
となってしまい、SQLが壊れます。
正しい書き方
String sql = "SELECT * FROM users " +
"WHERE id = 1";
文字列連結するときは、空白が必要かも確認しましょう。
原因を見つけるコツ
SQLSyntaxErrorException が出たら、次を確認すると見つけやすいです。
- 実際に実行しているSQL文を表示する
- SQLをDBツールで直接実行してみる
- スペルミスがないか確認する
- テーブル名・カラム名が合っているか確認する
まとめ
- SQLSyntaxErrorException は SQL文のミスで起こる
- JavaよりもSQLの内容を確認するのが大事
- スペルミス、カラム名、空白不足は特によくある
このエラーが出たら、
実行しているSQL文をそのまま見直す
これを最初にやるのがおすすめです。

コメント