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使用profile分析慢查询的步骤
Apr 30 MongoDB
MongoDB 常用的crud操作语句
Jun 20 MongoDB
详解MongoDB的条件查询和排序
Jun 23 MongoDB
浅析MongoDB之安全认证
Jun 26 MongoDB
阿里云服务器部署mongodb的详细过程
Sep 04 MongoDB
MongoDB连接数据库并创建数据等使用方法
Nov 27 MongoDB
一次线上mongo慢查询问题排查处理记录
Mar 18 MongoDB
MongoDB数据库部署环境准备及使用介绍
Mar 21 MongoDB
MongoDB修改oplog大小的四种方法
Apr 11 MongoDB
Centos系统通过Docker安装并搭建MongoDB数据库
Apr 12 MongoDB
Mongodb 迁移数据块的流程介绍分析
Apr 18 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
DIY一个适配电脑声卡的动圈话筒放大器
2021/03/02 无线电
如何在PHP中使用Oracle数据库(2)
2006/10/09 PHP
中篇:安装及配置PHP
2006/12/13 PHP
php横向重复区域显示二法
2008/09/25 PHP
Php 构造函数construct的前下划线是双的_
2009/12/08 PHP
如何利用PHP执行.SQL文件
2013/07/05 PHP
PHP基本语法总结
2014/09/06 PHP
简单JS代码压缩器
2006/10/12 Javascript
js 加载并解析XML字符串的代码
2009/12/13 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
js实现数字每三位加逗号的方法
2015/02/05 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
2018/12/12 Javascript
ES6基础之展开语法(Spread syntax)
2019/02/21 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
Python获取DLL和EXE文件版本号的方法
2015/03/10 Python
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
Python实现修改文件内容的方法分析
2018/03/25 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
电气个人求职信范文
2014/02/04 职场文书
六查六看剖析材料
2014/10/06 职场文书
民主评议党员总结
2014/10/20 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
消防安全主题班会
2015/08/12 职场文书
一篇文章弄懂Python中的内建函数
2021/08/07 Python