netbeans/windows 7 で Java を使用してアプリケーションを開発しています。SQL を使用して PreparedStatement でデータベースにデータを挿入しようとしていました。これが私のコードです。
private void addInfoActionPerformed(java.awt.event.ActionEvent evt) {
Connection conn;
PreparedStatement pst;
String url = "jdbc:derby://localhost:1527/records";
String SQL_INSERT = "INSERT INTO records"+
"VALUES(?,?,?)";
String name, surname, number;
try {
conn = DriverManager.getConnection(url, "system", "app");
System.out.println("connected to db");
pst = conn.prepareStatement(SQL_INSERT);
name = nameField.getText();
surname = surnameField.getText();
number = numberField.getText();
System.out.println("got data from textfields");
pst.setString(1, name);
pst.setString(2, surname);
pst.setString(3, number);
System.out.println("variables set");
pst.executeUpdate();
System.out.println("sql command executed");
pst.close();
conn.close();
} catch (SQLException ex) {
Logger.getLogger(addition.class.getName()).log(Level.SEVERE, null, ex);
}
}
しかし、次のようなエラーが発生しました。
java.sql.SQLSyntaxErrorException: 構文エラー: "?" が発生しました 1 行目、27 列目。
私のテーブルの名前は records で、名前が付けられた 3 つの列があります。名前、姓、番号。println 行からわかるように、その行には問題があります。
pst = conn.prepareStatement(SQL_INSERT);
または、SQL_INSERT 文字列と SQL コードを間違って作成した可能性があります。何が問題なのか正確にはわかりませんでした。