2

在使用 BoneCP 连接池时,我遇到了以下困惑,想听听一些建议:

  • BoneCP的getConnection方法是线程安全的吗?当有许多线程要求并行连接时,使用它的最佳方法是什么?
  • connection.close()每次使用连接后都需要调用吗?
  • 如果需要调用connection.close(),它真的会断开与数据库的连接还是只是将连接发送到池?

提前感谢您的支持。

4

1 回答 1

9

getConnection()BoneCP是线程安全的;所以你不必自己做任何事情。是的,如果您完成了连接,您需要调用connection.close()(这不是特定于 BoneCP,而是适用于任何 JDBC 连接)。

与所有连接池一样,调用connection.close()会将连接返回到连接池,或者在某些情况下还会关闭物理连接(但实际上:这是您不应该关心的实现细节)。

通常,连接池维护一个与数据库的物理连接池。当您调用getConnection()时,连接池会查找可用的物理连接并将其包装在逻辑连接中。返回此逻辑连接。当您close()进行逻辑连接时,连接池知道物理连接再次可用以供重用。

于 2011-11-01T12:11:06.437 回答