Java中使用MongoDB數(shù)據(jù)庫實例Demo
前言
除了通過啟動 mongo 進程進如 Shell 環(huán)境訪問數(shù)據(jù)庫外,MongoDB 還提供了其他基于編程語言的訪問數(shù)據(jù)庫方法。MongoDB 官方提供了 Java 語言的驅動包,利用這些驅動包可使用多種編程方法來連接并操作 MongoDB 數(shù)據(jù)庫。
想要在 Java 程序中使用 MongoDB,需要確保您的電腦上已經安裝了 MongoDB,并搭建好了 Java 的環(huán)境。
本篇內容主要介紹:Java 實現(xiàn)對 MongDB 的操作、Java 操作 MongoDB 數(shù)據(jù)庫 Demo
一、Java 實現(xiàn)對 MongDB 的操作
1、前提條件
除了通過啟動 mongo 進程進如 Shell 環(huán)境訪問數(shù)據(jù)庫外,MongoDB 還提供了其他基于編程語言的訪問數(shù)據(jù)庫方法。MongoDB 官方提供了 Java 語言的驅動包,利用這些驅動包可使用多種編程方法來連接并操作 MongoDB 數(shù)據(jù)庫。
想要在 Java 程序中使用 MongoDB,需要確保您的電腦上已經安裝了 MongoDB,并搭建好了 Java 的環(huán)境。
2、添加依賴
在 Maven 中添加以下依賴來使用操作 MongoDB 數(shù)據(jù)庫:
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>bson</artifactId> <version>3.12.11</version> </dependency> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver</artifactId> <version>3.12.11</version> </dependency> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-core</artifactId> <version>3.12.11</version> </dependency> ... </dependencies>
二、Java 操作 MongoDB 數(shù)據(jù)庫 Demo
1、連接數(shù)據(jù)庫
package com.lizhengi.demo; import com.mongodb.client.MongoDatabase; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; /** * @author liziheng * @version 1.0.0 * @description 連接數(shù)據(jù)庫 * @date 2023-01-04 5:19 下午 **/ public class ConnectToMongodb { public static void main(String[] args) { // 創(chuàng)建 MongoDB 連接 MongoClient mongo = new MongoClient("localhost", 27017); // 連接到 MongoDB MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray()); System.out.println("Credentials ::" + credential); // 訪問數(shù)據(jù)庫 MongoDatabase database = mongo.getDatabase("lizhengi"); System.out.println("Connect to database successfully!"); System.out.println("MongoDatabase info is : " + database.getName()); } }
運行 Main 函數(shù),返回以下結果:
Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengi
2、創(chuàng)建集合
package com.lizhengi.demo; import com.mongodb.client.MongoDatabase; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; /** * @author liziheng * @version 1.0.0 * @description 創(chuàng)建集合 * @date 2023-01-04 7:36 下午 **/ public class CreatingCollection { public static void main(String[] args) { // 創(chuàng)建 MongoDB 連接 MongoClient mongo = new MongoClient("localhost", 27017); // 連接到 MongoDB MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray()); System.out.println("Credentials ::" + credential); // 訪問數(shù)據(jù)庫 MongoDatabase database = mongo.getDatabase("lizhengi"); System.out.println("Connect to database successfully!"); System.out.println("MongoDatabase info is : " + database.getName()); // 創(chuàng)建集合 database.createCollection("lizhengi_test_3"); System.out.println("create collection successfully!"); } }
運行 Main 函數(shù),返回以下結果:
Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengicreate collection successfully!
3、列出所有集合
package com.lizhengi.demo; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; /** * @author liziheng * @version 1.0.0 * @description 列出所有集合 * @date 2023-01-04 7:56 下午 **/ public class ListOfCollection { public static void main(String[] args) { // 創(chuàng)建 MongoDB 連接 MongoClient mongo = new MongoClient("localhost", 27017); // 連接到 MongoDB MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray()); System.out.println("Credentials ::" + credential); // 訪問數(shù)據(jù)庫 MongoDatabase database = mongo.getDatabase("lizhengi"); System.out.println("Connect to database successfully!"); System.out.println("MongoDatabase info is : " + database.getName()); // 檢索集合列表 for (String name : database.listCollectionNames()) { System.out.println(name); } } }
運行 Main 函數(shù),返回以下結果:
Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengilizhengi
lizhengi_test_3
lizhengi_test_2
4、獲取/選擇集合
package com.lizhengi.demo; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; /** * @author liziheng * @version 1.0.0 * @description 獲取/選擇集合 * @date 2023-01-04 7:40 下午 **/ public class SelectingCollection { public static void main(String[] args) { // 創(chuàng)建 MongoDB 連接 MongoClient mongo = new MongoClient("localhost", 27017); // 連接到 MongoDB MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray()); System.out.println("Credentials ::" + credential); // 訪問數(shù)據(jù)庫 MongoDatabase database = mongo.getDatabase("lizhengi"); System.out.println("Connect to database successfully!"); System.out.println("MongoDatabase info is : " + database.getName()); // 創(chuàng)建集合 MongoCollection<Document> collection = database.getCollection("lizhengi"); System.out.println("chose collection : " + collection.getNamespace()); } }
運行 Main 函數(shù),返回以下結果:
Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengi
chose collection : lizhengi.lizhengi
5、插入文檔
package com.lizhengi.demo; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; /** * @author liziheng * @version 1.0.0 * @description 插入文檔 * @date 2023-01-04 7:45 下午 **/ public class InsertingDocument { public static void main(String[] args) { // 創(chuàng)建 MongoDB 連接 MongoClient mongo = new MongoClient("localhost", 27017); // 連接到 MongoDB MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray()); System.out.println("Credentials ::" + credential); // 訪問數(shù)據(jù)庫 MongoDatabase database = mongo.getDatabase("lizhengi"); System.out.println("Connect to database successfully!"); System.out.println("MongoDatabase info is : " + database.getName()); // 檢索集合 MongoCollection<Document> collection = database.getCollection("lizhengi"); System.out.println("chose collection : " + collection.getNamespace()); Document document = new Document("title", "MongoDB") .append("description", "database") .append("likes", 200) .append("url", "https://lizhengi.blog.csdn.net/") .append("by", "lizhengi"); // 將文檔插入到集合中 collection.insertOne(document); System.out.println("Document insert successfully!"); } }
運行 Main 函數(shù),返回以下結果:
Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengi
chose collection : lizhengi.lizhengiDocument insert successfully!
6、查詢文檔
package com.lizhengi.demo; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; /** * @author liziheng * @version 1.0.0 * @description 查詢文檔 * @date 2023-01-04 7:52 下午 **/ public class RetrievingAllDocuments { public static void main(String[] args) { // 創(chuàng)建 MongoDB 連接 MongoClient mongo = new MongoClient("localhost", 27017); // 連接到 MongoDB MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray()); System.out.println("Credentials ::" + credential); // 訪問數(shù)據(jù)庫 MongoDatabase database = mongo.getDatabase("lizhengi"); System.out.println("Connect to database successfully!"); System.out.println("MongoDatabase info is : " + database.getName()); // 檢索集合 MongoCollection<Document> collection = database.getCollection("lizhengi"); System.out.println("chose collection : " + collection.getNamespace()); // 獲取 iterable 對象 FindIterable<Document> iterDoc = collection.find(); int i = 1; // 獲取迭代器 for (Document document : iterDoc) { System.out.println(document); i++; } } }
運行 Main 函數(shù),返回以下結果:
Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengi
chose collection : lizhengi.lizhengiDocument{{_id=63b5676adcb7bc291eb5285d, title=MongoDB, description=database, likes=200, url=https://lizhengi.blog.csdn.net/, by=lizhengi}}
Document{{_id=63b568fa76a0f93c0a6c9f2a, title=MongoDB, description=database, likes=200, url=https://lizhengi.blog.csdn.net/, by=lizhengi2}}
7、更新文檔
package com.lizhengi.demo; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; import com.mongodb.client.model.Updates; import org.bson.Document; /** * @author liziheng * @version 1.0.0 * @description 更新文檔 * @date 2023-01-04 7:59 下午 **/ public class UpdatingDocuments { public static void main(String[] args) { // 創(chuàng)建 MongoDB 連接 MongoClient mongo = new MongoClient("localhost", 27017); // 連接到 MongoDB MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray()); System.out.println("Credentials ::" + credential); // 訪問數(shù)據(jù)庫 MongoDatabase database = mongo.getDatabase("lizhengi"); System.out.println("Connect to database successfully!"); System.out.println("MongoDatabase info is : " + database.getName()); // 檢索集合 MongoCollection<Document> collection = database.getCollection("lizhengi"); System.out.println("chose collection : " + collection.getNamespace()); // 更新單個可用 updateOne collection.updateMany(Filters.eq("title", "MongoDB"), Updates.set("likes", 150)); System.out.println("Document update successfully..."); // 更新后檢索文檔 // 獲取 iterable 對象 FindIterable<Document> iterDoc = collection.find(); int i = 1; // 獲取迭代器 for (Document document : iterDoc) { System.out.println(document); i++; } } }
運行 Main 函數(shù),返回以下結果:
Credentials ::MongoCredential{mechanism=null, userName='lizhengi', source='lizhengi', password=<hidden>, mechanismProperties=<hidden>}
Connect to database successfully!
MongoDatabase info is : lizhengi
chose collection : lizhengi.lizhengi
Document update successfully...
Document{{_id=63b5676adcb7bc291eb5285d, title=MongoDB, description=database, likes=150, url=https://lizhengi.blog.csdn.net/, by=lizhengi}}
Document{{_id=63b568fa76a0f93c0a6c9f2a, title=MongoDB, description=database, likes=200, url=https://lizhengi.blog.csdn.net/, by=lizhengi2}}
8、刪除文檔
package com.lizhengi.demo; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import com.mongodb.client.model.Filters; import org.bson.Document; /** * @author liziheng * @version 1.0.0 * @description 刪除文檔 * @date 2023-01-04 8:03 下午 **/ public class DeletingDocuments { public static void main(String[] args) { // 創(chuàng)建 MongoDB 連接 MongoClient mongo = new MongoClient("localhost", 27017); // 連接到 MongoDB MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray()); System.out.println("Credentials ::" + credential); // 訪問數(shù)據(jù)庫 MongoDatabase database = mongo.getDatabase("lizhengi"); System.out.println("Connect to database successfully!"); System.out.println("MongoDatabase info is : " + database.getName()); // 檢索集合 MongoCollection<Document> collection = database.getCollection("lizhengi"); System.out.println("chose collection : " + collection.getNamespace()); // 刪除文檔 刪除多個可用 deleteMany collection.deleteOne(Filters.eq("title", "MongoDB")); System.out.println("Document delete successfully..."); // 刪除后檢索文檔 // 獲取 iterable 對象 FindIterable<Document> iterDoc = collection.find(); int i = 1; // 獲取迭代器 for (Document document : iterDoc) { System.out.println(document); i++; } } }
運行 Main 函數(shù),返回以下結果:
Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengi
chose collection : lizhengi.lizhengiDocument delete successfully…
Document{{_id=63b568fa76a0f93c0a6c9f2a, title=MongoDB, description=database, likes=200, url=https://lizhengi.blog.csdn.net/, by=lizhengi2}}
9、刪除集合
package com.lizhengi.demo; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; import org.bson.Document; /** * @author liziheng * @version 1.0.0 * @description 刪除集合 * @date 2023-01-04 8:06 下午 **/ public class DropingCollection { public static void main(String[] args) { // 創(chuàng)建 MongoDB 連接 MongoClient mongo = new MongoClient("localhost", 27017); // 連接到 MongoDB MongoCredential credential = MongoCredential.createCredential("lizhengi", "lizhengi", "password".toCharArray()); System.out.println("Credentials ::" + credential); // 訪問數(shù)據(jù)庫 MongoDatabase database = mongo.getDatabase("lizhengi"); System.out.println("Connect to database successfully!"); System.out.println("MongoDatabase info is : " + database.getName()); // 檢索集合 MongoCollection<Document> collection = database.getCollection("lizhengi_test_3"); System.out.println("chose collection : " + collection.getNamespace()); // 刪除集合 collection.drop(); System.out.println("drop collection : " + collection.getNamespace()); // 檢索集合列表 for (String name : database.listCollectionNames()) { System.out.println(name); } } }
運行 Main 函數(shù),返回以下結果:
Credentials ::MongoCredential{mechanism=null, userName=‘lizhengi’, source=‘lizhengi’, password=, mechanismProperties=}
Connect to database successfully!
MongoDatabase info is : lizhengi
chose collection : lizhengi.lizhengi_test_3drop collection : lizhengi.lizhengi_test_3
lizhengi
lizhengi_test_2
總結
到此這篇關于Java中使用MongoDB數(shù)據(jù)庫的文章就介紹到這了,更多相關Java使用MongoDB內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
java利用easyexcel實現(xiàn)導入與導出功能
這篇文章主要介紹了java利用easyexcel實現(xiàn)導入與導出功能,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下,希望對你的學習有所幫助2022-09-09Java為什么基本數(shù)據(jù)類型不需要進行創(chuàng)建對象?
今天小編就為大家分享一篇關于Java為什么基本數(shù)據(jù)類型不需要進行創(chuàng)建對象?,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04IDEA使用jformdesigner插件做管理系統(tǒng)MVC架構的步驟和實現(xiàn)思路
在?IntelliJ?IDEA?中結合?JFormDesigner?插件,通過?Swing?框架實現(xiàn)一個管理系統(tǒng)的?MVC?架構是一種經典的開發(fā)方式,以下是具體的步驟和實現(xiàn)思路,包含從項目創(chuàng)建到?MVC?架構的核心代碼實現(xiàn),需要的朋友可以參考下2024-12-12