前提・実現したいこと
初めて質問させていただきます。拙いところがありますが、よろしくお願いいたします。
現在、Javaを勉強していて、自分で入力した3つの値から三角形の種類を判定するプログラムを作成しています。その際、判定結果と日付と3辺の値をデータベースに登録して、新たに同じ数字が入力されたら、データベース内を検索し日付を更新、違う数字の場合新規登録をしようとしています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
前述の登録の中で、sql文を書き、それを実行させるための文を書いたところ、シンタックスエラーが出ました。ところが、そのシンタックスエラーが出た文字は私はsql文では入れていないため、困惑しています。
調べた結果、やはり該当のsql文が間違っているのではと思ったのですが、どこが間違っているのかもわかりません。
エラーメッセージ org.postgresql.util.PSQLException: ERROR: syntax error at or near "Aug" 位置: 52 at org.postgresql.jdbc@42.2.22/org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2552) at org.postgresql.jdbc@42.2.22/org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2284) at org.postgresql.jdbc@42.2.22/org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:322) at org.postgresql.jdbc@42.2.22/org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:481) at org.postgresql.jdbc@42.2.22/org.postgresql.jdbc.PgStatement.execute(PgStatement.java:401) at org.postgresql.jdbc@42.2.22/org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:322) at org.postgresql.jdbc@42.2.22/org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:308) at org.postgresql.jdbc@42.2.22/org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:284) at org.postgresql.jdbc@42.2.22/org.postgresql.jdbc.PgStatement.executeUpdate(PgStatement.java:258) at enshu8.mondai8_DB.search(mondai8_DB.java:91)
該当のソースコード
Java ソースコード
ArrayList<String> list2 = new ArrayList<>();
Date date = new Date();
list2.add("INSERT INTO Triangle (x,y,z,date)values (" + list.get(0) + "," + list.get(1) + "," + list.get(2) + "," + date + ");");
try {
for (String sql3 : list2) {
stmt.executeUpdate(sql3);
}
conn.commit();
} catch (Exception e) {
conn.rollback();
e.printStackTrace();
}
}
試したこと
最後から2行目のe.printStackTrace();を無くすと、エラーが消えますが、登録自体もできなくなります。
補足情報(FW/ツールのバージョンなど)
データベース:postgres
回答1件
あなたの回答
tips
プレビュー