2

私が知る限り、私は現在 ActiveJDBC に取り組んでいます。これは非常に素晴らしく便利なフレームワークです。しかし、開いている接続を現在のスレッドに接続するため、JDBC 接続の管理に問題があります。つまり、プログラムの初期化時に接続を開くと、すべて正常に動作します。しかし、後で JFrame をインスタンス化し、たとえば ActionListener でデータベースとの間でデータの読み取り/書き込みを試みると、ディスパッチ スレッドに接続されていないため、エラーが発生します。

この問題を解決するには?各スレッドに 1 つの接続を接続するのではなく、(Base.connection() を介して) 常にアクセスできる接続を 1 つだけにしたい..

前もって感謝します

4

1 に答える 1

3

この方法でアクション リスナーを実装することをお勧めします。

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

于 2015-01-08T22:30:35.210 に答える