从java GUI插入数据库

时间:2017-10-15 18:36:05

标签: java mysql jdbc

嗨,有人可以告诉我我的代码有什么问题。它将包插入到我的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);
    }


}                                       

2 个答案:

答案 0 :(得分:0)

可能是因为您使用fieldsBlank(),之后在创建查询时尝试从字段获取数据,即使您刚刚清除了所有字段。您可以尝试使用您在开头声明的变量(例如timename等。)

答案 1 :(得分:0)

我现在可以注意到的一些事情:

  1. executeQuery适用于select语句。您应该使用executeUpdate

  2. 您很有可能在尝试将{1}}通话中的一个/所有输入字段设置为空白之前将其设置为空白。最好先将所有值读入变量,就像你开始做的那样,然后在代码中使用这些变量。 e.g。

    statement.setstring
  3. 顺便说一句,我在完成上述更改后在我的机器上运行了代码,并将其保存到数据库中。

    以下完整源代码:

    statement.setString(3, name); 
    
    statement.setString(4, address); 
    
    statement.setString(5, contact);