SpringBoot整合MongoDB的实现步骤


Posted in MongoDB onJune 23, 2021
目录
  • 一、技术介绍
    • 1.MongoDB是什么?
  • 二、使用步骤
    • 1.引入maven库
    • 2.具体使用示例
    • 3.配置文件
    • 4.单元测试
  • 总结

 

一、技术介绍

 

1.MongoDB是什么?

MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。作为一个适用于敏捷开发的数据库,MongoDB的数据模式可以随着应用程序的发展而灵活地更新。与此同时,它也为开发人员 提供了传统数据库的功能:二级索引,完整的查询系统以及严格一致性等等。 MongoDB能够使企业更加具有敏捷性和可扩展性,各种规模的企业都可以通过使用MongoDB来创建新的应用,提高与客户之间的工作效率,加快产品上市时间,以及降低企业成本。 MongoDB是专为可扩展性,高性能和高可用性而设计的数据库。它可以从单服务器部署扩展到大型、复杂的多数据中心架构。利用内存计算的优势,MongoDB能够提供高性能的数据读写操作。 MongoDB的本地复制和自动故障转移功能使您的应用程序具有企业级的可靠性和操作灵活性。

 

二、使用步骤

 

1.引入maven库

代码如下(示例):

<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.单元测试

测试代码如下(示例):

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---");
    }


}

 

总结

是不是感觉很简单?更多用法请点击下方查看源码,关注我带你揭秘更多高级用法

源码地址:点此查看源码.

以上就是SpringBoot整合MongoDB的实现步骤的详细内容,更多关于SpringBoot整合MongoDB的资料请关注三水点靠木其它相关文章!

MongoDB 相关文章推荐
MongoDB数据库的安装步骤
Jun 18 MongoDB
MongoDB 常用的crud操作语句
Jun 20 MongoDB
mongodb数据库迁移变更的解决方案
Sep 04 MongoDB
MongoDB日志切割的三种方式总结
Sep 15 MongoDB
MongoDB连接数据库并创建数据等使用方法
Nov 27 MongoDB
MongoDB误操作后使用oplog恢复数据
Apr 11 MongoDB
MongoDB修改oplog大小的四种方法
Apr 11 MongoDB
Mongodb 迁移数据块的流程介绍分析
Apr 18 MongoDB
MongoDB数据库之添删改查
Apr 26 MongoDB
NoSQL优缺点与MongoDB数据库简介
Jun 05 MongoDB
详解MongoDB的条件查询和排序
Jun 23 #MongoDB
MongoDB orm框架的注意事项及简单使用
Jun 20 #MongoDB
MongoDB 常用的crud操作语句
Jun 20 #MongoDB
MongoDB数据库常用的10条操作命令
Jun 18 #MongoDB
MongoDB数据库的安装步骤
Jun 18 #MongoDB
MongoDB balancer的使用详解
Apr 30 #MongoDB
MongoDB使用profile分析慢查询的步骤
Apr 30 #MongoDB
You might like
火车头采集器3.0采集图文教程
2007/03/17 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
2019/04/23 PHP
php桥接模式应用案例分析
2019/10/23 PHP
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
2012/07/21 Javascript
jQuery的slideToggle方法实例
2013/05/07 Javascript
javascript中的parseInt和parseFloat区别
2013/07/12 Javascript
js获取对象为null的解决方法
2013/11/21 Javascript
详解JavaScript中Hash Map映射结构的实现
2016/05/21 Javascript
BootStrap 附加导航组件
2016/07/22 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
angularjs指令之绑定策略(@、=、&amp;)
2017/04/13 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
基于vue、react实现倒计时效果
2019/08/26 Javascript
解决vue中的无限循环问题
2020/07/27 Javascript
Python Tkinter基础控件用法
2014/09/03 Python
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
python里使用正则的findall函数的实例详解
2017/10/19 Python
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
python爬取微信公众号文章的方法
2019/02/26 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
Python rabbitMQ如何实现生产消费者模式
2020/08/24 Python
python爬虫搭配起Bilibili唧唧的流程分析
2020/12/01 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
保险公司早会主持词
2014/03/22 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
党员应该树立反腐倡廉的坚定意识思想汇报
2014/09/12 职场文书
欢迎家长标语
2014/10/08 职场文书
中秋节寄语2015
2015/03/24 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
2019已经过半,你知道年中工作总结该怎么写吗?
2019/07/03 职场文书