我是否需要明确关闭连接?

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

为了强调,我只有一个MongoClient实例。 我的问题不是关闭MongoClient而是关闭我认为在我调用getCollection()时打开的连接。

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

您想要清理的唯一资源是一个光标 ,当您完成它时应该关闭() 。

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

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

MongoClient.close()来清理资源

MongoClient.close() – 关闭底层连接器,后者又关闭所有打开的连接。 一旦被调用,就不能再使用这个Mongo实例了。

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