菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
165
0

MongodbUtil

原创
05/13 14:22
阅读数 22186
import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoClientURI;
import com.mongodb.MongoCredential;
import com.mongodb.MongoOptions;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoDatabase;
import java.util.Arrays;


/**
 * @作者 yan
 * @创建日期 2017-3-16 14:42:20
 * @版本 V1.0
 * @描述 MongoDB JDBC工具类
 */
public class MongodbUtil {

    private static MongoClient mongoClient = null;

    private MongodbUtil() {}

    static {
        if(PropertiesUtil.getInt("mongodb.auth")==1){
            initAuthDB();
        }else{
            initDB();
        }
    }

    public static MongoDatabase getDB() {
        if (null != mongoClient) {
            setOptions();
            
            return mongoClient.getDatabase(PropertiesUtil.getString("mongodb.dbname"));  
        }
        
        return null;
    }
    
    /**
     * 无认证链接
     */
    private static void initDB() {
        MongoClientURI uri = new MongoClientURI(
                PropertiesUtil.getString("mongodb.uri"),
                MongoClientOptions.builder().cursorFinalizerEnabled(false));
        
        mongoClient = new MongoClient(uri);  
    }
    
    /**
     * 认证链接
     */
    private static void initAuthDB(){
        MongoCredential credential = MongoCredential.createCredential(
                PropertiesUtil.getString("mongodb.user"), 
                PropertiesUtil.getString("mongodb.dbname"), 
                PropertiesUtil.getString("mongodb.pwd").toCharArray());  
        
        ServerAddress addr = new ServerAddress(
                PropertiesUtil.getString("mongodb.host"), 
                PropertiesUtil.getInt("mongodb.port"));  
        
        mongoClient = new MongoClient(addr,Arrays.asList(credential));  
    }
    
    /**
     * 连接池配置
     */
    private static void setOptions(){
        MongoOptions opt = mongoClient.getMongoOptions();  
        opt.connectionsPerHost = PropertiesUtil.getInt("mongodb.poolsize");  
        opt.threadsAllowedToBlockForConnectionMultiplier = PropertiesUtil.getInt("mongodb.blocksize");
    }
}

 

发表评论

0/200
165 点赞
0 评论
收藏