如何关闭JDBCConnectionPool的本地字段

时间:2014-01-11 14:22:52

标签: java jdbc

我的对象中有一个类型为JdbcConnectionPool(h2.jdbcx.JdbcConnectionPool)的本地字段。由于Java缺少.net中的IDisposable接口,如何在对象实例永远不再使用时确保关闭连接池?

 import java.sql.*;
 import org.h2.jdbcx.JdbcConnectionPool;
 public class Test {

 private JdbcConnectionPool cp= null;

 private void setupConnectionPool() {
  JdbcConnectionPool cp = JdbcConnectionPool.create(
             "jdbc:h2:~/test", "sa", "sa");
 }

// when to call cp.dispose(); ??

 }

1 个答案:

答案 0 :(得分:0)

我认为你需要一个ShutdwonHook

final Thread mainThread = Thread.currentThread();
Runtime.getRuntime().addShutdownHook(new Thread() {
    public void run() {

        //close
        mainThread.join();
    }
});

或者如果您使用的是Swing,您可能对使用WindowListener感兴趣。