java连接mongo_实践:java连接mongodb并且认证

这篇博客展示了如何使用Java连接到MongoDB数据库,并进行认证操作。首先,通过MongoCredential创建认证凭证,然后使用ServerAddress指定服务器地址和端口。接着,使用MongoClient的构造函数连接到MongoDB服务器,进行认证连接。最后,获取指定数据库和集合,并插入数据。在处理Eclipse中关于Arrays.asList的错误时,将credential添加到ArrayList中以解决此问题。
摘要由CSDN通过智能技术生成

import java.util.*;

import net.sf.json.JSONObject;

import java.io.*;

import com.mongodb.MongoClient;

import com.mongodb.MongoException;

import com.mongodb.WriteConcern;

import com.mongodb.DB;

import com.mongodb.DBCollection;

import com.mongodb.BasicDBObject;

import com.mongodb.DBObject;

import com.mongodb.DBCursor;

import com.mongodb.ServerAddress;

import com.mongodb.MongoCredential;

import com.mongodb.client.MongoCollection;

import com.mongodb.client.MongoDatabase;

import org.bson.Document;

import java.util.Arrays;

-------------------------------------------------------------------------------------

MongoClient mongoClient = null;

try {

//初始化用户名,数据库名,密码

MongoCredential credential = MongoCredential.createCredential("mclogadmin", "mclog", "mclogpass".toCharArray());

// To connect to mongodb server

ServerAddress addr = new ServerAddress("172.17.0.13", 17017);

//auth 连接

mongoClient =  new MongoClient(addr,Arrays.asList(credential));

//非auth连接

// mongoClient = new MongoClient( "172.17.0.16" , 17017 );

// Now connect to your databases

@SuppressWarnings("deprecation")

DB db = mongoClient.getDB(dbname);

-------------------------------------------------------------------------------------

MongoClient mongoClient = null;

try{

MongoCredential credential = MongoCredential.createCredential("user", "db", "pass".toCharArray());

// To connect to mongodb server

ServerAddress addr = new ServerAddress("172.17.0.16", 27017);

mongoClient =  new MongoClient(addr,Arrays.asList(credential));

//      mongoClient = new MongoClient( "172.17.0.16" , 27017 );

// Now connect to your databases

@SuppressWarnings("deprecation")

DB db = mongoClient.getDB(dbname);

DBCollection getCollection=db.getCollection(collectionname);

getCollection.insert((DBObject)com.mongodb.util.JSON.parse(inputjson));

//  System.out.println("insert into " + collectionname + " with " + clickid );

//System.out.println("\n insert into " + collectionname + " with "  + inputjson );

//mongoClient.close();

} catch(Exception e) {

System.err.println( e.getClass().getName() + ": " + e.getMessage() );

}

finally{

if(mongoClient!=null) {

mongoClient.close();

}

}

注意: 在jdk7,eclipse中, mongoClient =  new MongoClient(addr,Arrays.asList(credential)); 报错The method asList(T[]) in the type Arrays is not applicable for the arguments

例如,https://stackoverflow.com/questions/43341819/the-method-aslistt-in-the-type-arrays-is-not-applicable-for-the-arguments-i

When I tried to create a list as follow

List l = Arrays.asList(1,2);

I got this error :

The method asList(T[]) in the type Arrays is not applicable for the

arguments (int, int).

最后,eclipse中修改代码为如下:

MongoCredential credential = MongoCredential.createCredential(user,"mclog", pass.toCharArray());

List credentials = new ArrayList();

credentials.add(credential);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值