Java 在对绑定到数据库的JTable进行更改后更新数据库
我正在使用NetBeans进行一个JAVA项目 我将JTable与MysqlDB表绑定。我希望能够通过更改JTable的单元格对DB进行更改。我该怎么做?我试图测试动作监听器,但它不起作用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.
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类。请告诉我您创建侦听器的方式你指的是。