Java 从jTextField向表sql插入查询时出错
我在添加来自4 JTextField的数据以将其插入表sql中时遇到问题 但是它给了我关于查询的错误 这是密码Java 从jTextField向表sql插入查询时出错,java,swing,jdbc,jtextfield,Java,Swing,Jdbc,Jtextfield,我在添加来自4 JTextField的数据以将其插入表sql中时遇到问题 但是它给了我关于查询的错误 这是密码 try { Class.forName("com.mysql.jdbc.Driver").newInstance(); String connectionUrl = "jdbc:mysql://localhost:3306/admin"; String connectionUser = "root"; String connectionPassword
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
String connectionUrl = "jdbc:mysql://localhost:3306/admin";
String connectionUser = "root";
String connectionPassword = "123456";
conn = DriverManager.getConnection(connectionUrl, connectionUser, connectionPassword);
stmt = conn.createStatement();
stmt.executeUpdate("INSERT INTO user(id, nom, login, mdp, statut) VALUES ('','"+jTextField2.getText()+ "','" +jTextField4.getText()+"','"+jTextField3.getText()+"','"+jPasswordField1.getText()+"'");
}catch (ClassNotFoundException ex) {
Logger.getLogger(frame.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(frame.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(frame.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
Logger.getLogger(frame.class.getName()).log(Level.SEVERE, null, ex);
}
这就是错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取第1行“”附近要使用的正确语法
查询中的值()缺少一个结束括号
stmt.executeUpdate("INSERT INTO user(id, nom, login, mdp, statut) VALUES ('','"+jTextField2.getText()+ "','" +jTextField4.getText()+"','"+jTextField3.getText()+"','"+jPasswordField1.getText()+"')");
缺少一个右括号
值(…
WARN:您的代码易于sql注入。建议:使用PreparedStatement代替headi通常在Mysql workbench中开发查询,然后在任何源代码中实现它们。这样我就知道查询是正确的,并给出了所需的结果。如上所述:使用PreparedStatement!是的,我添加了它,但现在关于id的问题它告诉我:java.sql.SQLException:不正确的整数值:第1行的列“id”为“null”,这是因为您的mysql服务器处于严格模式,因此您不能在整数字段中输入非整数。我不熟悉严格模式,但不是对id字段使用'
,而是使用不带任何引号的null
,或者0
。如果失败,请不要在列列表中指定id
,这是下注选项。太好了,如果有人搜索,我会在那里留下注释。不,我不在VALUES()中写入列id,因为它是自动递增的,所以不需要写入。谢谢使用null而不是“”。然后它将自动递增。