Java中使用MongoDB數據庫實例Demo
前言
除了通過啟動 mongo 進程進如 Shell 環(huán)境訪問數據庫外,MongoDB 還提供了其他基于編程語言的訪問數據庫方法。MongoDB 官方提供了 Java 語言的驅動包,利用這些驅動包可使用多種編程方法來連接并操作 MongoDB 數據庫。
想要在 Java 程序中使用 MongoDB,需要確保您的電腦上已經安裝了 MongoDB,并搭建好了 Java 的環(huán)境。
本篇內容主要介紹:Java 實現對 MongDB 的操作、Java 操作 MongoDB 數據庫 Demo
一、Java 實現對 MongDB 的操作
1、前提條件
除了通過啟動 mongo 進程進如 Shell 環(huán)境訪問數據庫外,MongoDB 還提供了其他基于編程語言的訪問數據庫方法。MongoDB 官方提供了 Java 語言的驅動包,利用這些驅動包可使用多種編程方法來連接并操作 MongoDB 數據庫。
想要在 Java 程序中使用 MongoDB,需要確保您的電腦上已經安裝了 MongoDB,并搭建好了 Java 的環(huán)境。
2、添加依賴
在 Maven 中添加以下依賴來使用操作 MongoDB 數據庫:
<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 數據庫 Demo
1、連接數據庫
package com.lizhengi.demo; import com.mongodb.client.MongoDatabase; import com.mongodb.MongoClient; import com.mongodb.MongoCredential; /** * @author liziheng * @version 1.0.0 * @description 連接數據庫 * @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); // 訪問數據庫 MongoDatabase database = mongo.getDatabase("lizhengi"); System.out.println("Connect to database successfully!"); System.out.println("MongoDatabase info is : " + database.getName()); } }
運行 Main 函數,返回以下結果:
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); // 訪問數據庫 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 函數,返回以下結果:
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); // 訪問數據庫 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 函數,返回以下結果:
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); // 訪問數據庫 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 函數,返回以下結果:
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); // 訪問數據庫 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 函數,返回以下結果:
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); // 訪問數據庫 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 函數,返回以下結果:
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); // 訪問數據庫 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 函數,返回以下結果:
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); // 訪問數據庫 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 函數,返回以下結果:
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); // 訪問數據庫 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 函數,返回以下結果:
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數據庫的文章就介紹到這了,更多相關Java使用MongoDB內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java為什么基本數據類型不需要進行創(chuàng)建對象?
今天小編就為大家分享一篇關于Java為什么基本數據類型不需要進行創(chuàng)建對象?,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04IDEA使用jformdesigner插件做管理系統MVC架構的步驟和實現思路
在?IntelliJ?IDEA?中結合?JFormDesigner?插件,通過?Swing?框架實現一個管理系統的?MVC?架構是一種經典的開發(fā)方式,以下是具體的步驟和實現思路,包含從項目創(chuàng)建到?MVC?架構的核心代碼實現,需要的朋友可以參考下2024-12-12