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


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


预先感谢您的支持。

最佳答案

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

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

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

关于java - BoneCP:getConnection方法是线程安全的还是必须处理?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7966093/

10-09 13:37