JavaFX删除tableview和sqlite中的数据行

问题描述 投票:0回答:1

我想在表格视图中删除一行,但也要在填充tableview的底层SQLite数据库

我在这里获得选定的行

 public void deleteDBRow() {
    if (tableV.getSelectionModel().getSelectedItem() != null) {
        Bew selBew = tableV.getSelectionModel().getSelectedItem();
        System.out.println(selBew.getName());

        }
     }

并且可以使用临时代码将其删除

DELETE FROM Table WHERE name = ""+selBew.getName()");

但是我也想删除sqlite数据库中的条目

[我不时在每一列中都包含相同文本的行-因此至关重要-我可以使用rowID删除sqlite中的所选行吗?

这里有人尝试在表格视图中获取rowid

ObservableList bewList = FXCollections.observableArrayList();

    try {
        String sql = "SELECT rowID, Name, Date, Action, Info FROM tab1";
        Connection conn = DriverManager.getConnection("jdbc:sqlite:TestB1.db");
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery(sql);
        while (rs.next()) {

            bewList.add(new Bew(rs.getInt("rowID"), rs.getString("name"), rs.getString("date"),
                    rs.getString("action"), rs.getString("Info")));

          System.out.println("rs.next : " + rs.getInt("rowID") +" - " + rs.getString("date") +"  " +
                    rs.getString("action") +"  " + rs.getString("Info"));
        }

    }catch (Exception e) {
        System.out.println("SQLiteDB.getData ---> Error RS");
        System.err.println("*E"+e.getClass().getName() + ": " + e.getMessage());
    }


    return bewList;


String sql = "CREATE TABLE IF NOT EXISTS tab1" +
                    "(rowID INT PRIMARY KEY," +
                    "NAME CHAR(50) NOT NULL ,"+
                   "DATE CHAR(15) ,"+
                    "ACTION CHAR(50) ,"+
                    "INFO CHAR(3));";

           conn.createStatement().executeUpdate(sql);

rowID ist始终为0-不知道为什么???

编辑:

控制器

ObservableList bewList = DB.getData();tableV.setItems(bewList);

sqlite javafx tableview row
1个回答
-1
投票

...已编辑...放在第一稿中

© www.soinside.com 2019 - 2024. All rights reserved.