Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从jTextField向表sql插入查询时出错_Java_Swing_Jdbc_Jtextfield - Fatal编程技术网

Java 从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

我在添加来自4 JTextField的数据以将其插入表sql中时遇到问题 但是它给了我关于查询的错误

这是密码

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而不是“”。然后它将自动递增。