简体   繁体   中英

SQL Syntax Error in Java

I am developing an application with java on netbeans/windows 7. I was trying to insert data to database with PreparedStatement using SQL. So this is my code;

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);
    }

}  

But I got an error like this;

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "?" at line 1, column 27.

Name of my table is records and it has three coloumns named; name, surname and number. As I can understand from the println lines, there is a problem with that line;

pst = conn.prepareStatement(SQL_INSERT);

or maybe I created SQL_INSERT string and SQL code wrong. I couldn't figure out what is the problem exactly.

You're missing a space in

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

When you do the concatenation, it produces "INSERT INTO recordsVALUES(?,?,?)"

Change it to

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM