簡體   English   中英

MongoDB Java 驅動程序:無法解析類型 com.mongodb.client.model.InsertOneOptions。 它是從所需的 .class 文件間接引用的

[英]MongoDB Java Driver: The type com.mongodb.client.model.InsertOneOptions cannot be resolved. It is indirectly referenced from required .class files

我正在將 MongoDB 用於一個小項目,但是在嘗試使用 MongoDB Java 驅動程序中的函數 insertOne(Document) 時出現此錯誤:

The type com.mongodb.client.model.InsertOneOptions cannot be resolved. It is indirectly referenced from required .class files

我按照本指南的說明配置了 Java 驅動程序: https : //docs.mongodb.com/getting-started/java/client/

我也嘗試創建一個新項目,但無濟於事。

我使用的 MongoDB 版本是 3.2.6,我使用的 MongoDB Java Driver 版本是 3.2.2。 我的 JDK 版本是 1.8.0_91。 我使用的 IDE 是 Eclipse Mars 2(我不知道這是否重要)。

提前致謝。

編輯:這是我為測試 Java 驅動程序而編寫的一小段代碼: http ://pastebin.com/SGj0mXwh 問題出在“addCompletedQuiz”函數的最后一行。

我添加到項目中的唯一庫是 BSON 3.0.4 庫和 MongoDB Java Driver 3.2.2 庫,所以我認為這不是“JAR Hell”問題。

此外,我已經嘗試重新下載並閱讀 Java 驅動程序無濟於事。

根據您提供的代碼,我建議您在創建MongoClient實例時應添加服務器名稱和端口,如下所示:

public Mongo() {
    String serverName = ""; //Usually it's 'localhost'
    String serverPort = ""; //Usually it's '8080'
    try {
        mongoClient = new MongoClient(serverName, serverPort);
        db = mongoClient.getDatabase("IFHKServer");
    } catch (MongoClientException e) {
        System.err.println("Error connecting to MongoDB Client.");
        Logger.getLogger(Mongo.class.getName()).log(Level.SEVERE, null, e);        }
}

此外,請考慮創建一個方法,在您完成插入新文檔時終止與 MongoDB 實例的連接。

public final void closeMongoDBConnection() {
    try {
        mongoClient.close();
    } catch (Exception e) {
        System.err.println("Error in terminating connection");
        Logger.getLogger(Mongo.class.getName()).log(Level.SEVERE, null, e);
    }
}

就我所見,插入代碼似乎不錯。

一般提示:

  • 如果您嘗試在 MongoDB 中插入、更新或刪除文檔,請始終將代碼包圍在 try-catch 塊中。
  • 不要從你的方法/類字段中省略公共/私有/受保護標識符,除非你想限制你的代碼只用於你的類/包。 假設您的項目包含使用Mongo類中代碼的其他包中的類,聲明一個沒有修飾符的方法允許在此類所屬的包之外使用它。
  • 避免對隨時可能更改的內容使用硬編碼名稱,例如您的集合名稱或文檔中的字段。 您可以將所有這些值傳輸到外部 .properties 文件中,並使用Properties 類讀取它們。 這樣,您的代碼在外部更改中將更加靈活,而無需重建您的實體項目。

編輯

除了 BSON 庫之外,您還應該擁有以下三個:

  • mongodb-driver-3.0.4.jar
  • mongodb-driver-async-3.0.4.jar
  • mongodb-driver-core-3.0.4.jar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM