错误查询从 jTextField 插入到表 sql
Posted
技术标签:
【中文标题】错误查询从 jTextField 插入到表 sql【英文标题】:Error query insert from jTextField to table sql 【发布时间】:2013-06-26 15:56:17 【问题描述】:我有问题我从 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 行的 '' 附近使用正确的语法
【问题讨论】:
你缺少一个右括号VALUES(...
)
WARN WARN WARN:你的代码容易被sql注入。 建议: 改用 PreparedStatement
我通常在 Mysql 工作台中开发我的查询,然后在任何源代码中实现它们。这样我就知道查询是正确的并给出了想要的结果。并且如上所述:使用准备好的语句!
【参考方案1】:
您在查询中的 VALUES() 上缺少一个结束括号。
stmt.executeUpdate("INSERT INTO user(id, nom, login, mdp, statut) VALUES ('','"+jTextField2.getText()+ "','" +jTextField4.getText()+"','"+jTextField3.getText()+"','"+jPasswordField1.getText()+"')");
【讨论】:
是的,我添加了它,但现在关于 id 的问题它给了我:java.sql.SQLException: Incorrect integer value: 'null' for column 'id' at row 1 那是因为你的mysql服务器处于严格模式,所以你不能在整数字段中输入非整数。我不熟悉严格模式,但是对于 id 字段,不要使用''
,而是使用不带任何引号的NULL
,或者0
。如果做不到这一点,请不要在您的列列表中指定id
,这是投注选项
啊,太好了,如果有人搜索,我会在那里留下评论
不,我没有在 VALUES() 中写列 id,因为它是自动递增的,所以不需要写,谢谢
使用 null 而不是 ''。然后它会自动增加。以上是关于错误查询从 jTextField 插入到表 sql的主要内容,如果未能解决你的问题,请参考以下文章
将一个表的查询结果插入到另一个表中(oracle、mysql、sql 、GP)