我已经完成了一些教程 他们说通过finally块关闭数据库连接 但我心里有一个问题:
考虑两个线程正在主动读取一个线程的场景 连接和一个线程完成他的工作并关闭 连接。那另一个会发生什么呢?
第二个帖子能够完成他的任务吗?
如果我的问题无效,请告诉我,请告诉我最佳解决方案。
答案 0 :(得分:5)
是的,finally
块是关闭Connection
和其他JDBC资源的正确方法。
你应该避免在线程之间共享这样的对象;虽然它们可能是线程安全的,但它们并不打算以这种方式使用。一个JDBC specification说,“实际上,我们希望大多数JDBC对象只能以单线程方式访问。”
如果您有多个线程使用相同的数据库,请创建一个连接池,并允许每个线程独占访问Connection
及其子资源。