BoneCP:getConnection方法是线程安全的还是我们必须处理它?

Sud*_*san 2 java connection-pooling thread-safety bonecp

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

  • getConnectionBoneCP 的方法是线程安全的吗?当有许多线程要求并行连接时,最好的方法是什么?
  • connection.close()每次使用连接后是否需要呼叫?
  • 如果需要调用connection.close(),它是否真的断开与DB的连接或只是将连接发送到池?

在此先感谢您的支持.

Mar*_*eel 9

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

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

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