Java 如何处理JDBI中的长/永久打开句柄?

Java 如何处理JDBI中的长/永久打开句柄?,java,sql,jdbi,Java,Sql,Jdbi,JDBI库文档概述了句柄和SQL对象的各种用法,但它似乎缺少一个我无法想象的特定于我当前代码的用例: 我想打开与数据库的连接,然后将该连接保持打开状态,直到应用程序运行时结束(以天为单位) 我不想在需要时重新打开连接而导致性能损失,因此我不想手动调用withHandle/withExtension或使用onDemand功能 我可以简单地打开一个句柄并将其存储(我不担心资源泄漏的可能性,因为句柄将存储在CDI管理的单例中),但是如果数据库或与它的连接消失了会发生什么 我想,在某个时刻,我需要处理在

JDBI
库文档概述了句柄和SQL对象的各种用法,但它似乎缺少一个我无法想象的特定于我当前代码的用例:

我想打开与数据库的连接,然后将该连接保持打开状态,直到应用程序运行时结束(以天为单位)

我不想在需要时重新打开连接而导致性能损失,因此我不想手动调用
withHandle
/
withExtension
或使用
onDemand
功能

我可以简单地打开一个句柄并将其存储(我不担心资源泄漏的可能性,因为句柄将存储在CDI管理的
单例中),但是如果数据库或与它的连接消失了会发生什么


我想,在某个时刻,我需要处理在数据库断开连接后刷新句柄的问题,因为这种事情最终肯定会发生,并且不需要重新启动我的应用程序,但是处理这个问题的合适点在哪里?

您已经在使用连接池了吗?可以为您管理打开的连接。我将Hikari与jdbi结合使用。我从池中获取jdbi句柄。它还允许我配置池连接的最小数量等,包括为我创建新连接(如果出于任何(可恢复的)原因删除了一些连接)。你已经在使用连接池了吗?可以为您管理打开的连接。我将Hikari与jdbi结合使用。我从池中获取jdbi句柄。它还允许我配置池连接的最小数量等,包括为我创建新连接(如果出于任何(可恢复的)原因删除了一些连接)。