前提・実現したいこと
Javaを使用してPostgreSQLのDBの更新を行いたいのですが、エラーになってしまいます。
発生している問題・エラーメッセージ
org.postgresql.util.PSQLException: ERROR: ","またはその近辺で構文エラー
該当のソースコード
java
1conn = DriverManager.getConnection(url, user, password); 2 3 conn.setAutoCommit(false); 4 5 stmt = conn.createStatement(); 6 7 SampleController sr = new SampleController(); 8 9 //INSERT文の実行 10 String sql = "INSERT INTO public.jdbc_test(id, name, birthday, sex, gakureki, type) VALUES (?,?,?,?,?,?);"; 11 12 PreparedStatement pStmt = conn.prepareStatement(sql); 13 System.out.println("a"); 14 pStmt.setInt(1,Integer.parseInt(sr.getId())); 15 pStmt.setCharacterStream(2,new java.io.StringReader(sr.getName())); 16 pStmt.setDate(3,java.sql.Date.valueOf(sr.getBirthday().replace("/", "-"))); 17 pStmt.setCharacterStream(4,new java.io.StringReader(sr.getSex())); 18 pStmt.setCharacterStream(5,new java.io.StringReader(sr.getGakureki())); 19 pStmt.setCharacterStream(6,new java.io.StringReader(sr.getType())); 20 21 stmt.executeUpdate(sql); 22 23 conn.commit(); 24 Alert dialog = new Alert(AlertType.INFORMATION); 25 dialog.setContentText("登録が完了しました。"); 26 dialog.showAndWait(); 27
FXMLから取得した値(String型)をとりあえず、インサートしてみたいと思い無理やり型変換しながら作成してみたのですがエラーになってしまいます。どこが悪いのかいまいち分かりません。
Postgresqlのインサートを行うテーブル情報は下記に記載します。
Column | Type | Collation | Nullable | Default ----------+-------------------+-----------+----------+--------- id | integer | | not null | name | character varying | | | birthday | date | | | sex | character varying | | | gakureki | character varying | | | type | character varying | | | Indexes: "jdbc_test_pkey" PRIMARY KEY, btree (id)
試したこと
?の部分に変数や、値を直接入力した場合は正常に書き込みを行うことが出来ます。
補足情報(FW/ツールのバージョンなど)
Java 11,PostgreSQL 10.5
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/12 07:01
2021/03/12 07:04
2021/03/12 07:10