我一直在构建一个测试应用程序,该应用程序可以使用直到最近还没有UI的数据库。我现在加一个。问题是,JFrame是在另一个线程中启动的,我需要我的数据库连接在该线程关闭时关闭(当UI关闭时,我应该说)。我该怎么做?
此外,如果应用程序崩溃或强行关闭,应用程序的数据库连接(在本例中为嵌入式数据库)会发生什么?我听说未闭合的连接导致资源泄漏。如果发生这种情况,我还能做些什么来清理?
答案 0 :(得分:4)
您可以向运行时系统添加shutdown hook。这是一个在关闭虚拟机时将被触发的线程。在该线程中,您可以关闭所有数据库连接和其他关键资源。
答案 1 :(得分:3)
除了您的评论之外:您无法确保自己有足够的时间来清理连接。可能您的应用程序被您的系统或其他任何东西杀死。因此:尝试尽快清理您的连接 一旦丢失连接对象,只能由DBMS删除未使用的连接。