MongoDB Java驱动程序:无法解析com.MongoDB.client.model.InsertOnOptions类型。它是从必需的.class文件间接引用的

MongoDB Java驱动程序:无法解析com.MongoDB.client.model.InsertOnOptions类型。它是从必需的.class文件间接引用的,java,mongodb,mongodb-java,Java,Mongodb,Mongodb Java,我将MongoDB用于一个小项目,但在尝试使用MongoDB Java驱动程序中的函数insertOne(Document)时,我遇到了以下错误: The type com.mongodb.client.model.InsertOneOptions cannot be resolved. It is indirectly referenced from required .class files 正如本指南所述,我配置了Java驱动程序: 我还试图创建一个新项目,但没有成功 我使用的Mongo

我将MongoDB用于一个小项目,但在尝试使用MongoDB Java驱动程序中的函数insertOne(Document)时,我遇到了以下错误:

The type com.mongodb.client.model.InsertOneOptions cannot be resolved. It is indirectly referenced from required .class files
正如本指南所述,我配置了Java驱动程序:

我还试图创建一个新项目,但没有成功

我使用的MongoDB版本是3.2.6,我使用的MongoDB Java驱动程序版本是3.2.2。我的JDK版本是1.8.091。我使用的IDE是EclipseMars2(我不知道这是否重要)

提前谢谢

编辑: 这是我为测试Java驱动程序而编写的一小段代码: 问题出现在“AddCompletedQuike”函数的最后一行

我添加到项目中的唯一库是BSON 3.0.4库和MongoDB Java驱动程序3.2.2库,所以我认为这不是一个“JAR地狱”问题


此外,我已经尝试重新下载并读取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);        }
}

也可以考虑在结束插入新文档时创建一个终止MunGDB实例连接的方法。

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文件中,并使用。这样,您的代码在外部更改时将更加灵活,而无需重建entite项目
编辑

除了BSON库之外,您还应该具备以下三个功能:

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

能否将代码附加到您试图插入文档的位置?此外,请检查项目属性中是否存在相同库的多个版本。这看起来像是一个与“JAR地狱”相关的问题。在原始帖子中添加了代码和库。添加mongo-java-driver-3.2.2.JAR修复了这个问题。谢谢PiXel1225!上面的答案解决了我与MongoClient MongoClient=new MongoClient(uri)相关的错误;错误:无法解析com.mongodb.ServerAddress类型。它是从必需的.class文件间接引用的