Я разрабатываю приложение с java на netbeans/windows 7. Я пытался вставить данные в базу данных с помощью PreparedStatement с помощью SQL. Так что это мой код;Ошибка синтаксиса SQL в Java
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: Syntax error: Encountered "?" at line 1, column 27.
Название моей таблицы - это записи, и у нее есть три coloumns named; имя, фамилия и номер. Как я понимаю из строк println, есть проблема с этой линией;
pst = conn.prepareStatement(SQL_INSERT);
или, возможно, я создал строку SQL_INSERT и код SQL неправильно. Я не мог понять, в чем проблема.
Ошибка ошибка синтаксиса SQL, а не Синтаксическая ошибка Java. Ничего плохого в Дерби, но дайте HSQLDB взгляд, если вам нравится ... скоро это будет в ver. 2.3.0. – scottb