• 大小: 9KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: Java
  • 标签: java  mongodb  

资源简介

java操作mongodb的工具类,增删查改方法

资源截图

代码片段和文件信息

package com.iot.App.utils;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.bson.Document;
import org.bson.conversions.Bson;
import org.bson.types.objectId;

import com.mongodb.BasicDBobject;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoClientOptions.Builder;
import com.mongodb.WriteConcern;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import com.mongodb.client.model.Filters;
import com.mongodb.client.result.DeleteResult;

/**
 * MongoDB工具类 Mongo实例代表了一个数据库连接池,即使在多线程的环境中,一个Mongo实例对我们来说已经足够了

 * 注意Mongo已经实现了连接池,并且是线程安全的。 

 * 设计为单例模式, 因 MongoDB的Java驱动是线程安全的,对于一般的应用,只要一个Mongo实例即可,

 * Mongo有个内置的连接池(默认为10个) 对于有大量写和读的环境中,为了确保在一个Session中使用同一个DB时,

 * DB和DBCollection是绝对线程安全的

 * 
 * @author zhoulingfei
 * @date 2015-5-29 上午11:49:49
 * @version 0.0.0
 * @Copyright (c)1997-2015 NavInfo Co.Ltd. All Rights Reserved.
 */
public enum MongoDBUtil {

/**
 * 定义一个枚举的元素,它代表此类的一个实例
 */
instance;
// private static SystemConfig systemConfig = SystemConfig.getInstance();
private final static Log log = LogFactory.getLog(MongoDBUtil.class);
// private final static String db_ip = systemConfig.getMongodb_ip();
// private final static int db_port = systemConfig.getMongodb_port();
private MongoClient mongoClient;

static {
log.info(“===============MongoDBUtil初始化========================“);
// 从配置文件中获取属性值
instance.mongoClient = new MongoClient(“10.12.42.52“ 27017);
// or to connect to a replica set with auto-discovery of the primary
// supply a seed list of members
// List listHost = Arrays.asList(new
// ServerAddress(“localhost“ 27017)new ServerAddress(“localhost“
// 27018));
// instance.mongoClient = new MongoClient(listHost);

// 大部分用户使用mongodb都在安全内网下,但如果将mongodb设为安全验证模式,就需要在客户端提供用户名和密码:
// boolean auth = db.authenticate(myUserName myPassword);
Builder options = new MongoClientOptions.Builder();
// options.autoConnectRetry(true);// 自动重连true
// options.maxAutoConnectRetryTime(10); // the maximum auto connect
// retry time
options.connectionsPerHost(300);// 连接池设置为300个连接默认为100
options.connectTimeout(15000);// 连接超时,推荐>3000毫秒
options.maxWaitTime(5000); //
options.socketTimeout(0);// 套接字超时时间,0无限制
options.threadsAllowedToBlockForConnectionMultiplier(5000);// 线程队列数,如果连接线程排满了队列就会抛出“Out
// of
// semaphores
// to get
// db”错误。
options.writeConcern(WriteConcern.SAFE);//
options.build();
}

// ------------------------------------共用方法---------------------------------------------------
/**
 * 获取DB实例 - 指定DB
 * 
 * @param dbName
 * @return
 

评论

共有 条评论