finally块是否正确关闭数据库连接的位置?

时间:2011-11-15 07:59:39

标签: java jdbc database-connection connection-pooling

  

可能重复:
  Is java.sql.Connection thread safe?

我已经完成了一些教程 他们说通过finally块关闭数据库连接 但我心里有一个问题:

  

考虑两个线程正在主动读取一个线程的场景   连接和一个线程完成他的工作并关闭   连接。那另一个会发生什么呢?

第二个帖子能够完成他的任务吗?

如果我的问题无效,请告诉我,请告诉我最佳解决方案。

1 个答案:

答案 0 :(得分:5)

是的,finally块是关闭Connection和其他JDBC资源的正确方法。

你应该避免在线程之间共享这样的对象;虽然它们可能是线程安全的,但它们并不打算以这种方式使用。一个JDBC specification说,“实际上,我们希望大多数JDBC对象只能以单线程方式访问。”

如果您有多个线程使用相同的数据库,请创建一个连接池,并允许每个线程独占访问Connection及其子资源。