java实现mongodb的连接池

来源:互联网 发布:国外域名注册 知乎 编辑:程序博客网 时间:2024/06/10 02:24

mongodb java驱动包下载(百度云盘:http://pan.baidu.com/s/1i4aRfzZ  分享密码:wc61)

引入jar包

1.mongodb连接配置参数



2.mongodb连接池管理管理类

package com.znie.mypro.mongodb;import java.util.ArrayList;import java.util.List;import java.util.Locale;import java.util.ResourceBundle;import com.mongodb.MongoClient;import com.mongodb.MongoClientOptions;import com.mongodb.MongoCredential;import com.mongodb.ServerAddress;import com.mongodb.client.MongoDatabase;/** *  mongodb连接池管理类  * @author znie * */public class MongoManager {// 配置文件private ResourceBundle mongoProperties = ResourceBundle.getBundle("mongo",Locale.getDefault());private final static MongoManager instance = new MongoManager();private static MongoClient mg = null;private static MongoDatabase mongoDatabase;public static MongoManager getInstance() {return instance;}public static MongoDatabase getMongoDatabase() {return mongoDatabase;}public static void setMongoDatabase(MongoDatabase mongoDatabase) {MongoManager.mongoDatabase = mongoDatabase;}public MongoManager() {//System.out.println(mongoDatabase.getName());// 链接池数量String connectionsPerHost = mongoProperties.getString("connectionsPerHost");// 最大等待时间String maxWaitTime = mongoProperties.getString("maxWaitTime");// scoket超时时间String socketTimeout = mongoProperties.getString("socketTimeout");// 设置连接池最长生命时间String maxConnectionLifeTime = mongoProperties.getString("maxConnectionLifeTime");// 连接超时时间String connectTimeout = mongoProperties.getString("connectTimeout");MongoClientOptions options = MongoClientOptions.builder().connectionsPerHost(Integer.parseInt(connectionsPerHost)).maxWaitTime(Integer.parseInt(maxWaitTime)).socketTimeout(Integer.parseInt(socketTimeout)).maxConnectionLifeTime(Integer.parseInt(maxConnectionLifeTime)).connectTimeout(Integer.parseInt(connectTimeout)).build();String hostLen = mongoProperties.getString("len");//所有主机List<ServerAddress> hosts = new ArrayList<ServerAddress>();for (int i = 1; i <= Integer.parseInt(hostLen); i++) {String host = mongoProperties.getString("host" + i);// String port = mongoProperties.getString("port"+i);hosts.add(new ServerAddress(host));}List<MongoCredential> credentials = new ArrayList<MongoCredential>();if (mongoProperties.getString("authentication").equals("1")) {// 需要验证MongoCredential credential = MongoCredential.createCredential(mongoProperties.getString("userName"), mongoProperties.getString("adminDb"),mongoProperties.getString("pwd").toCharArray());credentials.add(credential);}mg = new MongoClient(hosts, credentials, options);mongoDatabase = mg.getDatabase(mongoProperties.getString("dbname"));}}


两个API
MongoClientOptions API

MongoClientOptions.Builder
1 0
原创粉丝点击