在使用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/