我遇到了一个错误,我无法弄清楚我的错误。我完成了我的研究,但没有找到适合我的问题的答案。
这是我的代码:
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {
String CN, CNo, MN, NT, SNo, VIP, T, D;
CN = TF1.getText();
CNo = TF2.getText();
MN = TF3.getText();
NT = TF4.getText();
SNo = TF5.getText();
VIP = TF6.getText();
T = TF7.getText();
D = TF8.getText();
try
{
Class.forName("java.sql.DriverManager");
Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/devika", "root", "rockgirl12");
Statement stmt = (Statement) con.createStatement();
String query = "INSERT INTO Maintenance VALUES ('"+CN+"',"+CNo+",'"+MN+"',"+NT+",'"+SNo+"','"+VIP+"','"+T+"','"+D+"');";
stmt.executeUpdate(query);
JOptionPane.showMessageDialog(this, "Record added succesfully!");
}
catch(Exception e)
{
JOptionPane.showMessageDialog(this, e.getMessage());
}
}
我在这里要做的是通过我在Java Netbeans中设计的表单向我的SQL数据库添加数据。我附上了我在这里创建的表格。 My Form
非常感谢帮助:)
答案 0 :(得分:1)
错误说的正是如此。列数和值中的字段不匹配。这种不指定列名的插入并不是最佳实践。你应该做
String query = "INSERT INTO Maintenance(col1, col2, col3, col4,..) VALUES ('"+CN+"',"+CNo+",'"+MN+"',"+NT+",'"+SNo+"','"+VIP+"','"+T+"','"+D+"');";
实际上,你也不应该做这种字符串连接。使用prepared statements要好得多。当前方法无法确保在保存之前正确转义数据。