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数据库常用的10条操作命令
Jun 18 MongoDB
MongoDB 常用的crud操作语句
Jun 20 MongoDB
MongoDB安装使用并实现Python操作数据库
Jun 28 MongoDB
mongodb数据库迁移变更的解决方案
Sep 04 MongoDB
mongodb清除连接和日志的正确方法分享
Sep 15 MongoDB
centos8安装MongoDB的详细过程
Oct 24 MongoDB
SpringBoot系列之MongoDB Aggregations用法详解
Feb 12 MongoDB
SpringBoot 整合mongoDB并自定义连接池的示例代码
Feb 28 MongoDB
mongoDB数据库索引快速入门指南
Mar 23 MongoDB
MongoDB数据库之添删改查
Apr 26 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
mysql建立外键
2006/11/25 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
简单说说PHP优化那些事(经验分享)
2014/11/27 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
2016/10/29 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
javascript SocialHistory 检查访问者是否访问过某站点
2008/08/02 Javascript
javascript自执行函数之伪命名空间封装法
2010/12/25 Javascript
JSON辅助格式化处理方法
2013/03/26 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
原生JavaScript实现异步多文件上传
2015/12/02 Javascript
微信开发 微信授权详解
2016/10/21 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
JS实现字符串翻转的方法分析
2018/08/31 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
node.js express捕获全局异常的三种方法实例分析
2019/12/27 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
python动态监控日志内容的示例
2014/02/16 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
pycharm运行scrapy过程图解
2019/11/22 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
Python3的socket使用方法详解
2020/02/18 Python
一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
2020/07/03 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
python 写一个文件分发小程序
2020/12/05 Python
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
Bonami斯洛伐克:购买家具和家居饰品
2019/07/02 全球购物
为什么说Ruby是一种真正的面向对象程序设计语言
2012/10/30 面试题
办公室主任岗位竞聘书
2015/09/15 职场文书
2015年秋学期教研工作总结
2015/10/14 职场文书
优秀教师主要事迹材料
2015/11/04 职场文书