嗨,有人可以告诉我我的代码有什么问题。它将包插入到我的arrayList中,但不会将其插入到我的DB中。每次用户按下GUI上的添加按钮时,下面发布的代码都会提前感谢!
//Add package
String time = new SimpleDateFormat("DD.MM.YYYY.HH.mm.ss").format(new java.util.Date());
String name = nameInputTF.getText();
String address = addressInputTF.getText();
String city = cityInput.getText();
String county = (String) countyCombo.getSelectedItem();
String contact = contactInput.getText();
String description = descriptionInput.getText();
double price = Double.parseDouble(priceInput.getText());
boolean prepaid = true || false;
id++;
//Adding packages to the list
packages.add(new Package(id, time, name, address, city, county, contact, description, price, prepaid));
//Method to display packages in the text field
displayList();
//Method to set all button visibility to false
buttonsFalse();
// Method that sets all text fields to blank
fieldsBlank();
try {
String sql = "INSERT INTO packages VALUES (?,?,?,?,?,?,?,?)";
statement = conn.prepareStatement(sql);
statement.setString(1, packIDInput.getText());
statement.setString(2, arrivedInput.getText());
statement.setString(3, nameInputTF.getText());
statement.setString(4, addressInputTF.getText());
statement.setString(5, contactInput.getText());
statement.setString(6, priceInput.getText());
statement.setString(7, countyCombo.getName());
statement.setString(8, cityInput.getText());
rs = statement.executeQuery();
} catch (SQLException ex) {
Logger.getLogger(A2ZTransit.class.getName()).log(Level.SEVERE, null, ex);
}
}
答案 0 :(得分:0)
可能是因为您使用fieldsBlank()
,之后在创建查询时尝试从字段获取数据,即使您刚刚清除了所有字段。您可以尝试使用您在开头声明的变量(例如time
,name
等。)
答案 1 :(得分:0)
我现在可以注意到的一些事情:
executeQuery
适用于select语句。您应该使用executeUpdate
。
您很有可能在尝试将{1}}通话中的一个/所有输入字段设置为空白之前将其设置为空白。最好先将所有值读入变量,就像你开始做的那样,然后在代码中使用这些变量。 e.g。
statement.setstring
顺便说一句,我在完成上述更改后在我的机器上运行了代码,并将其保存到数据库中。
以下完整源代码:
statement.setString(3, name);
statement.setString(4, address);
statement.setString(5, contact);