试图从数据库中删除行时发生JavaFX错误

试图从数据库中删除行时发生JavaFX错误,java,mysql,button,javafx,Java,Mysql,Button,Javafx,当我尝试删除一行时,会出现以下错误:java.sql.SQLException:在结果集开始之前。无法调用deleteRow() 我要做的是添加一个delete按钮,它从TableView中删除所选行。它可以从表中删除它。然而,它并没有删除数据库中的行,我一直在努力用不同的方法来解决如何做到这一点 删除按钮: Button removeButton1 = new Button("Remove"); removeButton1.setMaxWidth(150); removeBu

当我尝试删除一行时,会出现以下错误:java.sql.SQLException:在结果集开始之前。无法调用deleteRow()

我要做的是添加一个delete按钮,它从TableView中删除所选行。它可以从表中删除它。然而,它并没有删除数据库中的行,我一直在努力用不同的方法来解决如何做到这一点

删除按钮:

 Button removeButton1 = new Button("Remove");
    removeButton1.setMaxWidth(150);
    removeButton1.setOnAction(e -> {
        try {
            int selectedIndex = itemTable.getSelectionModel().getSelectedIndex();
            itemTable.setEditable(true);
            itemTable.getItems().remove(selectedIndex);
            inventoryData.removeItem();

        } catch (SQLException e1) {
            e1.printStackTrace();
        }
    });
删除项方法(错误):

问题(我想)是deleteRow()的问题,因为我没有表示要删除的行。。。然而,我对如何解决这个问题感到困惑。。。例如,使用TextField,我可以获得string/int值,它会在数据库中为我找到它。。。但是,当用户只单击一行时,我该怎么做呢?我试图查找以前关于stackoverflow的问题,但遗憾的是,我的困惑被排除了

提前谢谢

编辑

private final IntegerProperty itemId = new SimpleIntegerProperty(this,"itemId");

public IntegerProperty itemIdProperty(){
    return itemId;
}

public final int getItemId(){
    return itemIdProperty().get();
}

public final void setItemId(int itemId){
    itemIdProperty().set(itemId);
}
你能行

removeButton1.setOnAction(e -> {
    try {
        Item selectedItem = itemTable.getSelectionModel().getSelectedItem();
        itemTable.getItems().remove(selectedItem);
        inventoryData.removeItem(selectedItem.getItemId());

    } catch (SQLException e1) {
        e1.printStackTrace();
    }
}


(我假设JavaFX表的模型类是
,也就是说,您有一个
表视图
:根据需要更改第一个块中
selectedItem
的类型。)

您必须使用next()遍历结果集就我记忆所及,我尝试过这个,虽然没有给出错误,但数据库没有任何更改。除非我也做错了…?
SELECT
SQL语句从数据库表中选择实体。要从表中删除,请使用
delete
语句。你看,也许是“詹姆士”之类的?“从项目_id=?”的项目中删除。。。项目id是主键。。。但是我如何从用户选择行中获取该项的id呢?假设您将id设置为表示行中数据的类的属性,因此您可以从所选项中获取它。这个论坛上没有人能透视:我们不知道你是如何建立模型课的。这就解决了问题。干杯还有一个问题:你能推荐一些关于这方面的教程/链接吗?有很多:我只是在谷歌上搜索“SQL简介”。对于初学者来说,这是一个合理的起点。
removeButton1.setOnAction(e -> {
    try {
        Item selectedItem = itemTable.getSelectionModel().getSelectedItem();
        itemTable.getItems().remove(selectedItem);
        inventoryData.removeItem(selectedItem.getItemId());

    } catch (SQLException e1) {
        e1.printStackTrace();
    }
}
public void removeItem(int itemId) throws SQLException {
    PreparedStatement stmt = null;

    try {
        stmt = connection.prepareStatement("DELETE FROM Items where item_id = ?");
        stmt.setInt(1, itemId);
        stmt.execute();
    } catch (Exception e){
        e.printStackTrace();
    } finally {
        if(stmt != null){
            stmt.close();
        }
    }

}