使用Java连接MongoDB

时间:2016-11-14 15:21:08

标签: java mongodb bson

我正在尝试将我的java项目连接到在线mongo数据库。我遇到了一些问题所以我决定首先尝试连接本地mongo DB,但我仍然遇到同样的问题。

我正在使用3个mongodb库(驱动程序,驱动程序 - 异步和驱动程序核心),3.3.0版本和bson库,3.2.2版本。

当我启动'helloworld示例'时,请从此处复制:http://www.mkyong.com/mongodb/java-mongodb-hello-world-example/

我有以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/bson/codecs/IterableCodecProvider at com.mongodb.MongoClient.<clinit>(MongoClient.java:84) at mainClass.main(mainClass.java:24) Caused by: java.lang.ClassNotFoundException: org.bson.codecs.IterableCodecProvider at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 2 more

注意:示例代码使用的方法现已弃用,但即使用新版本替换代码(使用MongoClient),我仍然会遇到相同的错误。

1 个答案:

答案 0 :(得分:0)

解决方案:

下载最新版本的BSON: https://oss.sonatype.org/content/repositories/releases/org/mongodb/bson/ 要么 https://mvnrepository.com/artifact/org.mongodb/bson/

示例中提供的代码需要更新:使用MongoClient而不仅仅是Mongo。插入示例代码:

/**** Connect to MongoDB ****/
        String uri = <URI of your mongo DB>
        MongoClientURI mgURI = new MongoClientURI(uri);
        MongoClient mongo = new MongoClient(mgURI);
        /**** Get database ****/

        MongoDatabase dataBase = mongo.getDatabase("databaseName");
        MongoCollection<Document> userCollection = dataBase.getCollection("CollectionName");
        Document document = new Document();
        document.put("key1", value1);
        document.put("key2", "value2");
        // insert into database
        userCollection.insertOne(document);

感谢Veeram的回答:)