我需要明确关闭连接吗?

时间:2013-11-12 19:26:51

标签: java mongodb

我在我的应用程序中持有MongoClientDB的一个实例,每次我想执行某些操作时,我都会调用getCollection()
我想知道是否需要显式关闭连接,就像JDBC中的connection.close()一样。

要强调,我只有一个MongoClient个实例。我的问题不是关闭MongoClient,而是关闭我认为在我打电话getCollection()时打开的关系。

2 个答案:

答案 0 :(得分:21)

不,您不需要关闭与DB的连接 - 您唯一的连接是通过MongoClient并且如文档所述 - 它为您处理连接池。

您希望清理的唯一资源是cursor,完成后应该close()

答案 1 :(得分:3)

如果你有很多MongoClient,你应该关闭。

  

MongoClient实例实际上代表了一个连接池   数据库;你只需要MongoClient类的一个实例   即使有多个线程。

     

MongoClient.close()来清理资源

     

MongoClient.close() - 关闭底层连接器,而后者依次关闭   关闭所有打开的连接。一旦被调用,这个Mongo实例就没有了   更长时间使用。

更多:http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/