Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用java的MongoDb数据库连接和3.0.0版本的身份验证_Java_Mongodb_Mongodb Java_Mongo Java Driver_Database - Fatal编程技术网

使用java的MongoDb数据库连接和3.0.0版本的身份验证

使用java的MongoDb数据库连接和3.0.0版本的身份验证,java,mongodb,mongodb-java,mongo-java-driver,database,Java,Mongodb,Mongodb Java,Mongo Java Driver,Database,我有MongoConnectionUtils这个文件 我依赖mongo java驱动程序 <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.0.0</version> </dependency>

我有MongoConnectionUtils这个文件 我依赖mongo java驱动程序

<dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.0.0</version>
    </dependency>


  public class MongoConnectionUtils {
                private static MongoDatabase db;
        public synchronized static MongoDatabase getConnection() {

            if (db != null) {
                return db;
            }
              try {
                String dbPath = Config.sharedInstance().value("db.path");
                String dbUsername =  Config.sharedInstance().value("db.username");
                String dbPassword =  Config.sharedInstance().value("db.password");

                int dbPort = Integer.parseInt( Config.sharedInstance().value("db.port"));
                String dbName =  Config.sharedInstance().value("db.name");
                MongoClient mongoClient = new MongoClient(dbPath, dbPort);
                    db=mongoClient.getDatabase(dbName);

            } catch (Throwable e) {

            }

            return db;
        }
    }

org.mongodb
mongo java驱动程序
3.0.0
公共类MongoConnectionUtils{
私有静态MongoDatabase数据库;
公共同步静态MongoDatabase getConnection(){
如果(db!=null){
返回分贝;
}
试一试{
字符串dbPath=Config.sharedInstance().value(“db.path”);
字符串dbUsername=Config.sharedInstance().value(“db.username”);
字符串dbPassword=Config.sharedInstance().value(“db.password”);
int dbPort=Integer.parseInt(Config.sharedInstance().value(“db.port”);
字符串dbName=Config.sharedInstance().value(“db.name”);
MongoClient MongoClient=新的MongoClient(dbPath,dbPort);
db=mongoClient.getDatabase(dbName);
}捕获(可丢弃的e){
}
返回分贝;
}
}
以前我使用的是2.10jar,但现在使用的是最新版本i 发现db.getDB()是一个不推荐使用的方法,我发现了getDatabase() 方法。现在我想用用户名和 密码。但是我没有找到db.auth()方法。请帮忙


您可以使用带有身份验证信息的mongodb连接字符串创建MongoClient,并将此MongoClient传递给MongoClient构造函数

MongoClientURI uri = new MongoClientURI("mongodb://userId:password@hostName:port/dbName");
MongoClient mongoClient = new MongoClient(uri);
MongoDatabase db = mongoClient.getDatabase("yourdatabasename");
MongoCollection<Document> collection = db.getCollection("yourcollection");
MongoClientURI=newmongoclienturi(“mongodb://userId:password@主机名:port/dbName”);
MongoClient MongoClient=新的MongoClient(uri);
MongoDatabase db=mongoClient.getDatabase(“yourdatabasename”);
MongoCollection collection=db.getCollection(“yourcollection”);
有关更多信息,请参阅MongoDB java驱动程序API:


我应该使用DB(com.mongodb.DB)或MongoDatabase(com.mongodb.client.MongoDatabase)哪个DB对象,其中如果我写DB,那么我需要用DB对象强制转换对象,如DB=(DB)mongoClient.getDatabase(dbName);更新了我的答案,你可以使用MongoDatabase对象,从那里你可以得到MongoCollection。这将帮助你:在3.0版本中有很多东西已经改变了。这个答案可能有助于: