使用Java连接到MongoDB
我正尝试将我的java项目连接到在线mongo数据库。我遇到了一些问题,所以我决定先尝试连接本地的mongo数据库,但我仍然遇到同样的问题。使用Java连接到MongoDB
我使用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),我仍然有相同的错误。
解决方案:
下载BSON上的最后一个版本: https://oss.sonatype.org/content/repositories/releases/org/mongodb/bson/ 或 https://mvnrepository.com/artifact/org.mongodb/bson/
的代码提供的例子需要更新:使用MongoClient而不只是蒙戈的。插入示例代码:
/**** 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他的答案:)
改变你的BSON库 – Veeram
3.2.3版本,你知道我在哪里可以下载? – VinhasK
https://oss.sonatype.org/content/repositories/releases/org/mongodb/。将所有thr依赖关系更新为3.3.0 – Veeram