在使用 BoneCP 连接池时,我遇到了以下困惑,想听听一些建议:
- BoneCP的
getConnection
方法是线程安全的吗?当有许多线程要求并行连接时,使用它的最佳方法是什么? connection.close()
每次使用连接后都需要调用吗?- 如果需要调用
connection.close()
,它真的会断开与数据库的连接还是只是将连接发送到池?
提前感谢您的支持。
在使用 BoneCP 连接池时,我遇到了以下困惑,想听听一些建议:
getConnection
方法是线程安全的吗?当有许多线程要求并行连接时,使用它的最佳方法是什么?connection.close()
每次使用连接后都需要调用吗?connection.close()
,它真的会断开与数据库的连接还是只是将连接发送到池?提前感谢您的支持。
getConnection()
BoneCP是线程安全的;所以你不必自己做任何事情。是的,如果您完成了连接,您需要调用connection.close()
(这不是特定于 BoneCP,而是适用于任何 JDBC 连接)。
与所有连接池一样,调用connection.close()
会将连接返回到连接池,或者在某些情况下还会关闭物理连接(但实际上:这是您不应该关心的实现细节)。
通常,连接池维护一个与数据库的物理连接池。当您调用getConnection()
时,连接池会查找可用的物理连接并将其包装在逻辑连接中。返回此逻辑连接。当您close()
进行逻辑连接时,连接池知道物理连接再次可用以供重用。