准备好的陈述有问题

Mah*_*ine 0 java mysql prepared-statement

我有这个代码:

 Date start = new Date(Integer.parseInt(jTextField4.getText()), Integer.parseInt(jTextField16.getText()), Integer.parseInt(jTextField17.getText()));  
        Date end = new Date(Integer.parseInt(jTextField5.getText()), Integer.parseInt(jTextField18.getText()), Integer.parseInt(jTextField19.getText()));
        statement = connection.createStatement();
        preparedStatement1 = connection.prepareStatement("insert into sportmangg(customer_code,"
             + "sportman_code, start, finish, salary,amount,box salary,private salary, food salary, "
             + "other salary, bime salary, number) "
             + "values (? ,?, ? , ?, ?, ?, ?, ?, ?, ?, ?, ?");
      preparedStatement1.setString(1,jTextField15.getText());
     preparedStatement1.setString(2, jTextField1.getText());
     preparedStatement1.setDate(3, start);
     preparedStatement1.setDate(4, end);
     preparedStatement1.setInt(5, Integer.parseInt(jTextField6.getText()) );
     preparedStatement1.setInt(6,Integer.parseInt(jTextField14.getText()) );
     preparedStatement1.setInt(7, Integer.parseInt(jTextField7.getText()));
     preparedStatement1.setInt(8, Integer.parseInt(jTextField8.getText()));
     preparedStatement1.setInt(9, Integer.parseInt(jTextField9.getText()));
     preparedStatement1.setInt(10, Integer.parseInt(jTextField11.getText()));
     preparedStatement1.setInt(11, Integer.parseInt(jTextField10.getText()));
     preparedStatement1.setInt(12, Integer.parseInt(jTextField20.getText()));
     preparedStatement1.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

但它有这个错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'salary,private salary, food salary, other salary, bime salary, number) values ('' at line 1
Run Code Online (Sandbox Code Playgroud)

问题是什么?

Chr*_*nch 11

你真的不应该在字段名称中有空格.尝试用``围绕它

  • 或者只是用下划线替换空格_并忘记` (2认同)