我的对象中有一个类型为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(); ??
}
答案 0 :(得分:0)
我认为你需要一个ShutdwonHook
final Thread mainThread = Thread.currentThread();
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
//close
mainThread.join();
}
});
或者如果您使用的是Swing,您可能对使用WindowListener感兴趣。