我正在尝试设计一个Mongo Db连接类,我将MongoClient作为静态设置。
private static MongoClient client = null;
public static DB connectToMongo() throws Exception {
if (null != client) {
return client.getDB(DBNAME);
}
client = new MongoClient(HOST,PORT);
return client.getDB(DBNAME);
}
我的整个Web应用程序使用上面的方法连接到Mongo,如下所示:
db = MongoDBConnection.connectToMongo();
collection = db.getCollection("collectionName");
执行数据库操作后,我从不为MongoClient调用close连接。连接类总是返回相同的MongoClient实例,它永远不会关闭。我关闭的唯一内容是游标。
答案 0 :(得分:16)
每次查询数据库时,绝对不应关闭 MongoClient 。 MongoClient维护一个连接池,设置起来相对昂贵,因此您希望在Web应用程序的整个生命周期内重用MongoClient实例。
要指出的其他几点: