如何将数据从TableView保存到数据库?

时间:2019-12-03 09:11:52

标签: java sql javafx

我无法将数据编辑保存到表视图单元格中。当我编辑这些数据时,我按Enter键,但数据未保存在我的数据库中。我不知道该怎么做。 那是我的代码

public String getValueAt(TableView<Note> table, int column, int row){
        return table.getColumns().get(column).getCellObservableValue(row).getValue().toString();
    }


    @FXML
    void updateData(ActionEvent event) throws ClassNotFoundException, SQLException {

        String sql = "UPDATE NOTES set note = '"+getValueAt(tableView,2,0)+"', coef = '"+getValueAt(tableView,3,0)+"', total = '"+getValueAt(tableView,4,0)+"', appreciation = '"+getValueAt(tableView,5,0)+"' where noteMatri = '"+getValueAt(tableView,0,0)+"';" ;

        Connection con = FirstConnection.Connect();
        Statement pst = con.createStatement();

        String e =  getValueAt(tableView,0,0);
        System.out.println(e);
        String f = getValueAt(tableView,1,0);
        System.out.println(f);
        String a = getValueAt(tableView,2,0);
        System.out.println(a);
        String b = getValueAt(tableView,3,0);
        System.out.println(b);
        String c = getValueAt(tableView,4,0);
        System.out.println(c);
        String d = getValueAt(tableView,5,0);
        System.out.println(d);

        int i = pst.executeUpdate(sql);
        if(i == 1){
            Alert alert = new Alert(AlertType.INFORMATION);
            alert.setTitle("Mise � jour effectu�e");
            alert.setHeaderText("Enregistrement d'�l�ments");
            alert.showAndWait();
        }

    }

该行已成功受到影响,但是当我查看数据库时,数据未更新。请帮助我找回我做错的事情。

1 个答案:

答案 0 :(得分:0)

摘自文档:https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TableView.html

  

单元格处于编辑状态后,您最可能感兴趣的下一件事是如何提交或取消正在进行的编辑。作为电池工厂提供者,这是您的责任。您的单元实现将根据用户输入(例如,当用户按下键盘上的Enter或ESC键时)知道编辑何时结束。发生这种情况时,您有责任适当地调用Cell.commitEdit(Object)或Cell.cancelEdit()。

如@jarlh所问,“您要提交吗?”