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-06
SpringBoot設(shè)置接口超時(shí)的方法小結(jié)
這篇文章主要介紹了SpringBoot設(shè)置接口超時(shí)的方法小結(jié),包括配置文件,config配置類及相關(guān)示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
java利用easyexcel實(shí)現(xiàn)導(dǎo)入與導(dǎo)出功能
這篇文章主要介紹了java利用easyexcel實(shí)現(xiàn)導(dǎo)入與導(dǎo)出功能,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助2022-09-09
Java為什么基本數(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-04
Java設(shè)計(jì)模式之靜態(tài)工廠模式詳解
這篇文章主要介紹了Java設(shè)計(jì)模式之靜態(tài)工廠模式,簡(jiǎn)單說(shuō)明了靜態(tài)工廠模式的概念、原理、實(shí)現(xiàn)與使用方法,需要的朋友可以參考下2017-09-09
IDEA使用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)典的開發(fā)方式,以下是具體的步驟和實(shí)現(xiàn)思路,包含從項(xiàng)目創(chuàng)建到?MVC?架構(gòu)的核心代碼實(shí)現(xiàn),需要的朋友可以參考下2024-12-12

