1.Mongo对象
内部实现了一个连接池。Mongo对象是线程安全的,因此可以只创建一个,在多线程环境下安全使用。因此,我们可以用将Mongo变量作为一个Singleton类的成员变量,从而保证只创建一个连接池。Mongo.close方法将关闭当前所有活跃的连接。所以要在web工程被从Tomcat或者GlassFish容器中注销的时候确保调用close方法。
2.DB对象
DB对象可以通过Mongo.get方法获得,代表了和数据库的一个连接。默认情况下,当执行完数据库的查询或者更新操作后,连接将自动回到连接池中。不需要我们手动调用代码放回池中。至于如何实现,我猜测是update,query,save方法内部有finally块,那里面有还连接到池中的代码。
3.手动还连接入池
DB对象也允许在一个连接上执行多个操作,比如下面的代码:
DB db...;
db.requestStart();
code....
db.requestDone();
requestStart 会让自动还连接入池失效,因此必须确保requestDone一定能够被调用。这里应该用finally块会更严密一些。
4.示例代码,下面的类实现了Lazy loading的Singleton模式,里面的成员变量Mongo mongo因此只会实例化一次。注意连接池大小和重连设置。
package com.freebird.helper;
import com.mongodb.Mongo;
import com.mongodb.MongoOptions;
import com.mongodb.DB;
/**
* Describe class DBManager here.
* example:
* 初始化:DBManager.getInstance().init("74.208.78.5",27017,200);
* 之后,每次通过下面的代码获取数据库对象
* DBManager.getInstance().getDB();
* Created: Sat Dec 17 10:45:24 2011
*
* @author <a href="mailto:chenshu@chunshu">chenshu</a>
* @version 1.0
*/
public class DBManager {
public static final String DB_NAME = "kaimei";
public static final String MESSAGE_COLLECTION = "email";
public static DBManager getInstance(){
return InnerHolder.INSTANCE;
}
/**
* Creates a new <code>DBManager</code> instance.
*
*/
private DBManager() {
}
private static class InnerHolder{
static final DBManager INSTANCE = new DBManager();
}
public DB getDB(){
return mongo.getDB(DB_NAME);
}
private Mongo mongo;
public void init(final String ip, int port, int poolSize) throws java.net.UnknownHostException {
System.setProperty("MONGO.POOLSIZE", String.valueOf(poolSize));
if (mongo == null) {
mongo = new Mongo(ip, port);
MongoOptions options = mongo.getMongoOptions();
options.autoConnectRetry = true;
options.connectionsPerHost = poolSize;
}
}
}
分享到:
相关推荐
mongodb Java连接池配置 用于避免Java连接mongodb数据库数过高引起的一系列问题
该代码是C++ MongoDB的连接池代码实现。代码封装了一个连接池类对象,通过该对象提供的连接池来操作MongoDB,提升了性能,减少了数据库连接资源的开销。
解决连接池不够的问题,多连接的问题。适用于mongoDB项目开发,感兴趣可以下载使用,记得好评哦。欢迎在下方留言
Mongodb解决连接池不够的问题,多连接的问题。
MongoDB Java操作大全 源代码 实例
java连接mongodb测试,包括增删改查等操作的实用技术
MongoDBjava各版本驱动下载
MongoDB实现增删改查,java程序驱动,复杂查询,源代码示例
MongoDB Java Driver 简单操作
MongoDB Java连接数据库.pdf 学习资料 复习资料 教学资源
MongoDB Java API 中文
本文介绍了Spring Boot中使用MongoDB的连接池配置的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Java 连接MongoDB, java 连接mongodb的操作
一个简单的测试工程,java使用mongodb数据库连接池,使用mongodb安全验证; 初始化连接池的信息;学习demo;代码
mongoDB java driver api mongoDB java 驱动 所有类的api
MongoDB java API实现增删改查,包含批量操作
mongoDB java 驱动 mongoDB java 驱动 mongoDB java 驱动 mongoDB java 驱动
java连接mongodb的jar包,可以使用java访问mongoDB数据库
Springboot配置MongoDB连接池源代码,包括有搭建Springboot项目,整合mybatis,mysql的代码。
基于hyperf的mongodb连接池组件,暂不支持协程