Java中使用MongoDB數(shù)據(jù)庫實例Demo
前言
除了通過啟動 mongo 進程進如 Shell 環(huán)境訪問數(shù)據(jù)庫外,MongoDB 還提供了其他基于編程語言的訪問數(shù)據(jù)庫方法。MongoDB 官方提供了 Java 語言的驅(qū)動包,利用這些驅(qū)動包可使用多種編程方法來連接并操作 MongoDB 數(shù)據(jù)庫。
想要在 Java 程序中使用 MongoDB,需要確保您的電腦上已經(jīng)安裝了 MongoDB,并搭建好了 Java 的環(huán)境。
本篇內(nèi)容主要介紹: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 語言的驅(qū)動包,利用這些驅(qū)動包可使用多種編程方法來連接并操作 MongoDB 數(shù)據(jù)庫。
想要在 Java 程序中使用 MongoDB,需要確保您的電腦上已經(jīng)安裝了 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ù),返回以下結(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); // 訪問數(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ù),返回以下結(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); // 訪問數(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ù),返回以下結(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); // 訪問數(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ù),返回以下結(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); // 訪問數(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ù),返回以下結(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); // 訪問數(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ù),返回以下結(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); // 訪問數(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ù),返回以下結(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); // 訪問數(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ù),返回以下結(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); // 訪問數(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ù),返回以下結(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ù)庫的文章就介紹到這了,更多相關(guān)Java使用MongoDB內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot設(shè)置接口超時的方法小結(jié)
這篇文章主要介紹了SpringBoot設(shè)置接口超時的方法小結(jié),包括配置文件,config配置類及相關(guān)示例代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09java利用easyexcel實現(xiàn)導(dǎo)入與導(dǎo)出功能
這篇文章主要介紹了java利用easyexcel實現(xiàn)導(dǎo)入與導(dǎo)出功能,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助2022-09-09Java為什么基本數(shù)據(jù)類型不需要進行創(chuàng)建對象?
今天小編就為大家分享一篇關(guān)于Java為什么基本數(shù)據(jù)類型不需要進行創(chuàng)建對象?,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04IDEA使用jformdesigner插件做管理系統(tǒng)MVC架構(gòu)的步驟和實現(xiàn)思路
在?IntelliJ?IDEA?中結(jié)合?JFormDesigner?插件,通過?Swing?框架實現(xiàn)一個管理系統(tǒng)的?MVC?架構(gòu)是一種經(jīng)典的開發(fā)方式,以下是具體的步驟和實現(xiàn)思路,包含從項目創(chuàng)建到?MVC?架構(gòu)的核心代碼實現(xiàn),需要的朋友可以參考下2024-12-12