使用 ActiveJDBC 进行连接管理

Connection management with ActiveJDBC

我目前正在接触 ActiveJDBC,据我所知,这是一个非常好用的框架。但是我对它的 JDBC-Connection 管理有一些问题,因为它将一个打开的连接附加到当前线程。这意味着,如果我在程序初始化时打开连接,一切正常;但是如果我之后实例化一个 JFrame 并在 ActionListener 中尝试 reading/wrtiting 数据 from/to 数据库,它将产生一个错误,因为没有连接到调度线程。

如何解决这个问题?我宁愿只有一个连接,我可以一直访问(通过 Base.connection()),而不是将一个连接附加到每个线程..

提前致谢

我建议您以这种方式实现动作侦听器:

public class AJListenerAdapter implements ActionListener{
  public void actionPerformed(ActionEvent e){
     Base.open(...);
     doPerform(ActionEvent e);
     Base.close(...);
  }

  protected abstract doPerform(ActionEvent e);
}

然后将此适配器子类化并实现 doPerform() 方法。

此外,您可能希望使用池中的连接。这是一个例子 https://github.com/javalite/activejdbc/blob/master/activejdbc/src/test/java/org/javalite/activejdbc/C3P0PoolTest.java