使用JdbcPooledConnectionSource时,可以让Ormlite在将连接移交给用户之前检查连接,如下所示:
JdbcPooledConnectionSource connectionSource =
new JdbcPooledConnectionSource("jdbc:h2:mem:account");
connectionSource.setTestBeforeGet(true);
让Ormlite进行检查的性能成本是多少?为什么我不让Ormlite检查连接?
让Ormlite进行检查的性能成本是多少?
您可以查看的来源JdbcPooledConnectionSource
。在该testConnection(...)
方法中,它可以有效地执行以下操作:
connMetaData.connection.queryForLong(`SELECT 1`);
至于性能如何,将取决于许多因素。这是对数据库服务器执行RPC,但不应损坏服务器上的任何磁盘。因此,在现代系统上,我们谈论的可能是10毫秒-可能更少。
我认为评估此成本的最佳方法是先将其打开并测试您的应用程序,然后再关闭它,看看您是否注意到其中的区别。
为什么我不让Ormlite检查连接?
使用该设置的原因是为了防止池连接在您使用它时失败。我会说使用它是保守的。
通过这种JdbcPooledConnectionSource
方法,您可以每次都不用其他方法来验证连接,从而获得连接。例如,如果您调用setCheckConnectionsEveryMillis(...)
某个非0的值,它将分叉一个线程来频繁地测试连接。60000
将SELECT 1
在后台执行线程,这不会减慢您的应用程序的运行速度。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句