Java中使用MongoDB數(shù)據(jù)庫(kù)實(shí)例Demo
前言
除了通過(guò)啟動(dòng) mongo 進(jìn)程進(jìn)如 Shell 環(huán)境訪問(wèn)數(shù)據(jù)庫(kù)外,MongoDB 還提供了其他基于編程語(yǔ)言的訪問(wèn)數(shù)據(jù)庫(kù)方法。MongoDB 官方提供了 Java 語(yǔ)言的驅(qū)動(dòng)包,利用這些驅(qū)動(dòng)包可使用多種編程方法來(lái)連接并操作 MongoDB 數(shù)據(jù)庫(kù)。
想要在 Java 程序中使用 MongoDB,需要確保您的電腦上已經(jīng)安裝了 MongoDB,并搭建好了 Java 的環(huán)境。
本篇內(nèi)容主要介紹:Java 實(shí)現(xiàn)對(duì) MongDB 的操作、Java 操作 MongoDB 數(shù)據(jù)庫(kù) Demo
一、Java 實(shí)現(xiàn)對(duì) MongDB 的操作
1、前提條件
除了通過(guò)啟動(dòng) mongo 進(jìn)程進(jìn)如 Shell 環(huán)境訪問(wèn)數(shù)據(jù)庫(kù)外,MongoDB 還提供了其他基于編程語(yǔ)言的訪問(wèn)數(shù)據(jù)庫(kù)方法。MongoDB 官方提供了 Java 語(yǔ)言的驅(qū)動(dòng)包,利用這些驅(qū)動(dòng)包可使用多種編程方法來(lái)連接并操作 MongoDB 數(shù)據(jù)庫(kù)。
想要在 Java 程序中使用 MongoDB,需要確保您的電腦上已經(jīng)安裝了 MongoDB,并搭建好了 Java 的環(huán)境。
2、添加依賴
在 Maven 中添加以下依賴來(lái)使用操作 MongoDB 數(shù)據(jù)庫(kù):
<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ù)庫(kù) Demo
1、連接數(shù)據(jù)庫(kù)
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ù)庫(kù) * @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); // 訪問(wèn)數(shù)據(jù)庫(kù) MongoDatabase database = mongo.getDatabase("lizhengi"); System.out.println("Connect to database successfully!"); System.out.println("MongoDatabase info is : " + database.getName()); } }
運(yùn)行 Main 函數(shù),返回以下結(jié)果:
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); // 訪問(wèn)數(shù)據(jù)庫(kù) 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!"); } }
運(yùn)行 Main 函數(shù),返回以下結(jié)果:
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); // 訪問(wèn)數(shù)據(jù)庫(kù) 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); } } }
運(yùn)行 Main 函數(shù),返回以下結(jié)果:
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); // 訪問(wèn)數(shù)據(jù)庫(kù) 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()); } }
運(yùn)行 Main 函數(shù),返回以下結(jié)果:
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); // 訪問(wèn)數(shù)據(jù)庫(kù) 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!"); } }
運(yùn)行 Main 函數(shù),返回以下結(jié)果:
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); // 訪問(wèn)數(shù)據(jù)庫(kù) 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 對(duì)象 FindIterable<Document> iterDoc = collection.find(); int i = 1; // 獲取迭代器 for (Document document : iterDoc) { System.out.println(document); i++; } } }
運(yùn)行 Main 函數(shù),返回以下結(jié)果:
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); // 訪問(wèn)數(shù)據(jù)庫(kù) 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()); // 更新單個(gè)可用 updateOne collection.updateMany(Filters.eq("title", "MongoDB"), Updates.set("likes", 150)); System.out.println("Document update successfully..."); // 更新后檢索文檔 // 獲取 iterable 對(duì)象 FindIterable<Document> iterDoc = collection.find(); int i = 1; // 獲取迭代器 for (Document document : iterDoc) { System.out.println(document); i++; } } }
運(yùn)行 Main 函數(shù),返回以下結(jié)果:
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); // 訪問(wèn)數(shù)據(jù)庫(kù) 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()); // 刪除文檔 刪除多個(gè)可用 deleteMany collection.deleteOne(Filters.eq("title", "MongoDB")); System.out.println("Document delete successfully..."); // 刪除后檢索文檔 // 獲取 iterable 對(duì)象 FindIterable<Document> iterDoc = collection.find(); int i = 1; // 獲取迭代器 for (Document document : iterDoc) { System.out.println(document); i++; } } }
運(yùn)行 Main 函數(shù),返回以下結(jié)果:
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); // 訪問(wèn)數(shù)據(jù)庫(kù) 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); } } }
運(yùn)行 Main 函數(shù),返回以下結(jié)果:
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
總結(jié)
到此這篇關(guān)于Java中使用MongoDB數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)Java使用MongoDB內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringMvc框架的簡(jiǎn)介與執(zhí)行流程詳解
MVC是一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)組件里面,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫業(yè)務(wù)邏輯,MVC分層有助于管理和架構(gòu)復(fù)雜的應(yīng)用程序2021-06-06SpringBoot設(shè)置接口超時(shí)的方法小結(jié)
這篇文章主要介紹了SpringBoot設(shè)置接口超時(shí)的方法小結(jié),包括配置文件,config配置類及相關(guān)示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09java利用easyexcel實(shí)現(xiàn)導(dǎo)入與導(dǎo)出功能
這篇文章主要介紹了java利用easyexcel實(shí)現(xiàn)導(dǎo)入與導(dǎo)出功能,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助2022-09-09Java為什么基本數(shù)據(jù)類型不需要進(jìn)行創(chuàng)建對(duì)象?
今天小編就為大家分享一篇關(guān)于Java為什么基本數(shù)據(jù)類型不需要進(jìn)行創(chuàng)建對(duì)象?,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04Java設(shè)計(jì)模式之靜態(tài)工廠模式詳解
這篇文章主要介紹了Java設(shè)計(jì)模式之靜態(tài)工廠模式,簡(jiǎn)單說(shuō)明了靜態(tài)工廠模式的概念、原理、實(shí)現(xiàn)與使用方法,需要的朋友可以參考下2017-09-09IDEA使用jformdesigner插件做管理系統(tǒng)MVC架構(gòu)的步驟和實(shí)現(xiàn)思路
在?IntelliJ?IDEA?中結(jié)合?JFormDesigner?插件,通過(guò)?Swing?框架實(shí)現(xiàn)一個(gè)管理系統(tǒng)的?MVC?架構(gòu)是一種經(jīng)典的開(kāi)發(fā)方式,以下是具體的步驟和實(shí)現(xiàn)思路,包含從項(xiàng)目創(chuàng)建到?MVC?架構(gòu)的核心代碼實(shí)現(xiàn),需要的朋友可以參考下2024-12-12