码上敲享录 > mongoDB常见问题解答 > java如何连接mongoDB

java如何连接mongoDB

上一章章节目录下一章 2018-08-06已有2518人阅读 评论(0)

java如何连接mongoDB

解决方法:

下面代码init()初始化MongoClient,getDb()获取数据库,insertOne插入方法,main方法是测试的

public class MongoDbConfig {

private static Logger log = Logger.getLogger(MongoDbConfig .class);

public static MongoClient mongoClient;

public static void init(){

//MongoClient类是线程安全和线程共享的。通常在应用程序中对指定的数据库集群只创建一个MongoClient实例

if(mongoClient==null){

MongoClientOptions.Builder builder = MongoClientOptions.builder();

//最大连接数

builder.connectionsPerHost(20);

//最小连接数

builder.minConnectionsPerHost(5);

//超时时间

builder.connectTimeout(8000);

// 一个线程成功获取到一个可用数据库之前的最大等待时间

builder.maxWaitTime(5000);

//此参数跟connectionsPerHost的乘机为一个线程变为可用的最大阻塞数,超过此乘机数之后的所有线程将及时获取一个异常.eg.connectionsPerHost=10 and threadsAllowedToBlockForConnectionMultiplier=5,最多50个线程等级一个链接,推荐配置为5

builder.threadsAllowedToBlockForConnectionMultiplier(5);

//最大空闲时间

builder.maxConnectionIdleTime(1000*10);

//连接超时时间

builder.socketTimeout(1000*30);

MongoClientOptions myOptions = builder.build();

//通过身份认证获取MongoDB连接  

if(MongoConfig.AUTH==0){

ServerAddress serverAddress = new ServerAddress(MongoConfig.IP,MongoConfig.PORT);  MongoCredential credential = MongoCredential.createCredential(MongoConfig.USERNAME, MongoConfig.DBNAME, MongoConfig.PASSWORD.toCharArray());

mongoClient = new MongoClient(serverAddress, credential, myOptions);

//免密连接    

}else if(MongoConfig.AUTH==1){

mongoClient = new MongoClient(MongoConfig.IP,MongoConfig.PORT);  

}

}

}


public static MongoDatabase getDb() {

MongoDatabase database =null;

if(mongoClient==null){

init();

}

try {

database = mongoClient.getDatabase("数据库名db0");

} catch (Exception e) {

log.error(e.getMessage());

}      

    return database;

   }


public void insertOne(Document document,String collectionName){

MongoCollection<Document> collection = getDb().getCollection(collectionName);

try {

collection.insertOne(document);

} catch (Exception e) {

log.error(e.getMessage());

}

}


//测试,插入数据

public static void main(String[] args) {

MongoDb mongo = new MongoDb();

String sms="{'a':'2'}";

Document document = Document.parse(sms);

String collectionName = "数据库表名";

mongo.insertOne(document,collectionName);

}

}


本文链接:http://www.yayihouse.com/yayishuwu/chapter/1420

0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交