Java连接MongoDB3.0+

MongoDB3.0以上的版本相对于之前的版本已经改变了很多了,就比如说,认证方式的方法改变就有点大了,下面分别说一下,认证和不需要认证的代码该怎么写。

1.MongoDB没有添加使用auth认证方式

     MongoClientURI uri = new MongoClientURI("mongodb://192.168.32.129:27017/local",
               MongoClientOptions.builder().cursorFinalizerEnabled(false));
     MongoClient client = new MongoClient(uri);
     MongoDatabase db=client.getDatabase("local");
     MongoCollection<Document> collection = db.getCollection("system.users");
     List<Document> foundDocument = collection.find().into(new ArrayList<Document>());
     System.out.println(foundDocument);


2.MongoDB启动的时候添加--auth参数启动MongoDB(即安全认证模式下)

private static MongoClient mongoClient = null;
   private static MongoDatabase database = null;
   private static ServerAddress serverAddress = null;
   private static MongoCredential  credentials  = null;
   private static List<ServerAddress> addressLists =new ArrayList<ServerAddress>();
   private static List<MongoCredential> credentialsLists = new ArrayList<MongoCredential>();

try{
       //mongoClient = new MongoClient("192.168.32.129",27017);
       serverAddress = new ServerAddress("192.168.32.129",27017);
       addressLists.add(serverAddress);
       credentials = MongoCredential.createMongoCRCredential("admin", "admin", "admin".toCharArray());
       credentialsLists.add(credentials);
       mongoClient = new MongoClient(addressLists, credentialsLists);
       }catch (MongoException e)
       {
           System.out.println(e.toString());
       }
       if(null != mongoClient){
           database = mongoClient.getDatabase("admin");
           /* collection = database.getCollection("system.users");
           foundDocument = collection.find().into(
                    new ArrayList<Document>());
           System.out.println(foundDocument);*/
       }


你可能感兴趣的:(MongoDB认证3.0+)