2013-06-11 2 views
1

Я разрабатываю приложение с 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 неправильно. Я не мог понять, в чем проблема.

+0

Ошибка ошибка синтаксиса SQL, а не Синтаксическая ошибка Java. Ничего плохого в Дерби, но дайте HSQLDB взгляд, если вам нравится ... скоро это будет в ver. 2.3.0. – scottb

ответ

7

Вы не нашли места в

String SQL_INSERT = "INSERT INTO records"+ 
      "VALUES(?,?,?)"; 

Когда вы конкатенация, он производит "INSERT INTO recordsVALUES(?,?,?)"

Изменить его

String SQL_INSERT = "INSERT INTO records"+ 
      " VALUES(?,?,?)"; 
+0

+1. хороший улов!! – Lokesh

+0

Да, это сработало, спасибо вам большое. Глупый я. –

Смежные вопросы