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

Jas*_*asa 1 java database-connection connection-pooling jdbc

可能重复:
java.sql.Connection线程安全吗?

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

想想两个线程正在主动读取一个连接并且一个线程完成其工作并关闭连接的场景.那么另一个会发生什么?

第二个线程能够完成他的任务吗?

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

eri*_*son 5

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

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

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