SpringBoot整合MongoDB的實(shí)現(xiàn)步驟
一、技術(shù)介紹
1.MongoDB是什么?
MongoDB(來(lái)自于英文單詞“Humongous”,中文含義為“龐大”)是可以應(yīng)用于各種規(guī)模的企業(yè)、各個(gè)行業(yè)以及各類應(yīng)用程序的開源數(shù)據(jù)庫(kù)。作為一個(gè)適用于敏捷開發(fā)的數(shù)據(jù)庫(kù),MongoDB的數(shù)據(jù)模式可以隨著應(yīng)用程序的發(fā)展而靈活地更新。與此同時(shí),它也為開發(fā)人員 提供了傳統(tǒng)數(shù)據(jù)庫(kù)的功能:二級(jí)索引,完整的查詢系統(tǒng)以及嚴(yán)格一致性等等。 MongoDB能夠使企業(yè)更加具有敏捷性和可擴(kuò)展性,各種規(guī)模的企業(yè)都可以通過(guò)使用MongoDB來(lái)創(chuàng)建新的應(yīng)用,提高與客戶之間的工作效率,加快產(chǎn)品上市時(shí)間,以及降低企業(yè)成本。 MongoDB是專為可擴(kuò)展性,高性能和高可用性而設(shè)計(jì)的數(shù)據(jù)庫(kù)。它可以從單服務(wù)器部署擴(kuò)展到大型、復(fù)雜的多數(shù)據(jù)中心架構(gòu)。利用內(nèi)存計(jì)算的優(yōu)勢(shì),MongoDB能夠提供高性能的數(shù)據(jù)讀寫操作。 MongoDB的本地復(fù)制和自動(dòng)故障轉(zhuǎn)移功能使您的應(yīng)用程序具有企業(yè)級(jí)的可靠性和操作靈活性。
二、使用步驟
1.引入maven庫(kù)
代碼如下(示例):
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.1</version> <relativePath/> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> </dependencies>
2.具體使用示例
MongoDB封裝:
/** * mongo db助手 * * @Author: heyuhua * @Date: 2021/1/19 9:52 */ @Component public class MongoDBHelper { @Autowired private MongoTemplate mongoTemplate; /** * 保存 * * @param t * @param <T> * @return */ public <T> T save(T t) { return mongoTemplate.save(t); } /** * 保存 * * @param t * @param collectionName * @param <T> * @return */ public <T> T save(T t, String collectionName) { return mongoTemplate.save(t, collectionName); } /** * 查詢 * * @param query * @param tClass * @param <T> * @return */ public <T> List<T> find(Query query, Class<T> tClass) { return mongoTemplate.find(query, tClass); } /** * 查詢所有 * * @param tClass * @param <T> * @return */ public <T> List<T> findAll(Class<T> tClass) { return mongoTemplate.findAll(tClass); } }
3.配置文件
代碼如下(示例):
server: port: 8088 spring: #mongodb配置 data: mongodb: uri: mongodb://admin:admin@127.0.0.1:27017/admin
4.單元測(cè)試
測(cè)試代碼如下(示例):
package com.hyh.core.test; import com.hyh.core.test.base.HyhTest; import com.hyh.core.test.po.Person; import com.hyh.mongodb.helper.MongoDBHelper; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.CriteriaDefinition; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.TextCriteria; import java.util.List; /** * MongoDb Test * * @Author: heyuhua * @Date: 2021/1/19 10:28 */ public class MongoDBTest extends HyhTest { @Autowired private MongoDBHelper mongoDBHelper; @Test public void testSave() { Person person = new Person(); person.setName("heyuhua"); person.setAge(25); mongoDBHelper.save(person); Person person2 = new Person(); person2.setName("hyh"); person2.setAge(52); mongoDBHelper.save(person2); } @Test public void testSaveCollection() { Person person = new Person(); person.setName("heyuhua"); person.setAge(25); mongoDBHelper.save(person, "personCollection"); Person person2 = new Person(); person2.setName("hyh"); person2.setAge(52); mongoDBHelper.save(person2, "personCollection"); } @Test public void testFindAll() { List<Person> list = mongoDBHelper.findAll(Person.class); for (Person person : list) { System.out.println("name=" + person.getName() + ",age=" + person.getAge()); } } @Test public void testFind() { Criteria criteria = new Criteria(); criteria.and("age").gte("25"); Query query = new Query(criteria); List<Person> list = mongoDBHelper.find(query,Person.class); for (Person person : list) { System.out.println("name=" + person.getName() + ",age=" + person.getAge()); } } @Test @Override public void test() { System.out.println("---MongoDb Test---"); } }
總結(jié)
是不是感覺(jué)很簡(jiǎn)單?更多用法請(qǐng)點(diǎn)擊下方查看源碼,關(guān)注我?guī)憬颐馗喔呒?jí)用法
源碼地址:點(diǎn)此查看源碼.
以上就是SpringBoot整合MongoDB的實(shí)現(xiàn)步驟的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot整合MongoDB的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Mongodb中使用$each向數(shù)組字段插入多個(gè)元素的操作方法
$each操作符應(yīng)用在UPDATE操作中的$addToSet和$push操作符當(dāng)中,與$addToSet搭配使用時(shí),將數(shù)組中的多個(gè)值插入到數(shù)組字段當(dāng)中,本文給大家介紹了Mongodb中使用$each向數(shù)組字段插入多個(gè)元素的操作方法,需要的朋友可以參考下2024-06-06mongodb 添加用戶及權(quán)限設(shè)置詳解
我知道的關(guān)系型數(shù)據(jù)庫(kù)都是有權(quán)限控制的,什么用戶能訪問(wèn)什么庫(kù),什么表,什么用戶可以插入,更新,而有的用戶只有讀取權(quán)限。2014-07-07MongoDB性能篇之創(chuàng)建索引,組合索引,唯一索引,刪除索引和explain執(zhí)行計(jì)劃
這篇文章主要介紹了MongoDB性能篇之創(chuàng)建索引,組合索引,唯一索引,刪除索引和explain執(zhí)行計(jì)劃的相關(guān)資料,需要的朋友可以參考下2016-02-02MongoDB 監(jiān)控工具mongostat和mongotop的使用
這篇文章主要介紹了MongoDB 監(jiān)控工具mongostat和mongotop的使用方法,幫助大家更好的理解和學(xué)習(xí)使用MongoDB,感興趣的朋友可以了解下2021-03-03mongoDB數(shù)據(jù)庫(kù)索引快速入門指南
索引是一種特殊的數(shù)據(jù)結(jié)構(gòu),存儲(chǔ)設(shè)置在一個(gè)易于遍歷形式的數(shù)據(jù)的一小部分。索引存儲(chǔ)一個(gè)特定的字段或一組字段的值,在索引中指定的值的字段排列的,對(duì)mongoDB索引相關(guān)知識(shí)感興趣的朋友跟隨小編一起學(xué)習(xí)下吧2022-03-03mongodb 數(shù)據(jù)庫(kù)操作--備份 還原 導(dǎo)出 導(dǎo)入
mongodb數(shù)據(jù)備份和還原主要分為二種,一種是針對(duì)于庫(kù)的mongodump和mongorestore,一種是針對(duì)庫(kù)中表的mongoexport和mongoimport。2014-07-071億條記錄的MongoDB數(shù)據(jù)庫(kù)隨機(jī)查詢性能測(cè)試
這篇文章主要為大家分享下1億條記錄的MongoDB數(shù)據(jù)庫(kù)隨機(jī)查詢性能測(cè)試結(jié)果,需要的朋友可以參考下2013-12-12詳解MongoDB中創(chuàng)建集合與刪除集合的操作方法
因?yàn)镸ongoDB屬于NoSQL,所以集合collection相當(dāng)于關(guān)系型數(shù)據(jù)庫(kù)中的表table,這里我們就來(lái)詳解MongoDB中創(chuàng)建集合與刪除集合的操作方法:2016-06-06Java操作MongoDB數(shù)據(jù)庫(kù)方法詳解
本文給大家分享的是使用Java操作MongoDB的一些基本方法,包含多種數(shù)據(jù)庫(kù)的連接方式,增刪改查等方法,非常的實(shí)用,有需要的小伙伴可以參考下2018-01-01