【发布时间】: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 工作台中开发我的查询,然后在任何源代码中实现它们。这样我就知道查询是正确的并给出了想要的结果。并且如上所述:使用准备好的语句!
标签: java swing jdbc jtextfield