Java 在对绑定到数据库的JTable进行更改后更新数据库

Java 在对绑定到数据库的JTable进行更改后更新数据库,java,swing,jdbc,jtable,listener,Java,Swing,Jdbc,Jtable,Listener,我正在使用NetBeans进行一个JAVA项目 我将JTable与MysqlDB表绑定。我希望能够通过更改JTable的单元格对DB进行更改。我该怎么做?我试图测试动作监听器,但它不起作用 public void TableListener() { BookList.getModel().addTableModelListener(new TableModelListener() { //BookList is the name of the JTable.

我正在使用NetBeans进行一个JAVA项目

我将JTable与MysqlDB表绑定。我希望能够通过更改JTable的单元格对DB进行更改。我该怎么做?我试图测试动作监听器,但它不起作用

 public void TableListener()
    {
    BookList.getModel().addTableModelListener(new TableModelListener() {
//BookList is the name of the JTable.
                    @Override
                    public void tableChanged(TableModelEvent tme) {
                        TableModel tm = (TableModel)tme.getSource();
                        System.out.println(tm.getColumnCount()+" Hi");
                        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
                    }
                });
    }
我在JFrame类中创建了这个方法,并在main方法中调用它。它不应该更新数据库,但我只是想知道它是否工作<代码>tm.getColumnCount未被打印


如果使用侦听器是错误的,请告诉我正确的方法。

好的设计原则说,您应该使用单独的类(称为DAO或“数据访问对象”)来处理与数据库的通信。这有助于分离应用程序的关注点,并保持代码干净易懂

您可以使用类似于您正在使用的侦听器来调用适当的DAO方法来处理DB上的CRUD操作

至于为什么TableModelListener不能按预期工作,您以一种奇怪的方式设置了它,这可能是造成问题的原因。请尝试参考此页面:

注意,您正在TableListener类中定义一个匿名TableListener:
BookList.getModel().addTableModelListener(new TableModelListener(){…}
您可以这样做,但是编写代码示例所来自的TableListener没有意义


基本上,您的问题是您试图在侦听器类内部绑定和使用侦听器。侦听器类应该简单地定义侦听器的行为。然后您应该将侦听器添加到侦听器类外部的JTable中。我认为这将解决您的问题。

我有DAO类。请告诉我您创建侦听器的方式你指的是。