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
SpringBoot整合MongoDB的实现步骤
Jun 23 MongoDB
常用的MongoDB查询语句的示例代码
Jul 25 MongoDB
mongodb的安装和开机自启动详细讲解
Aug 02 MongoDB
阿里云服务器部署mongodb的详细过程
Sep 04 MongoDB
SpringBoot 整合mongoDB并自定义连接池的示例代码
Feb 28 MongoDB
MongoDB误操作后使用oplog恢复数据
Apr 11 MongoDB
MongoDB支持的数据类型
Apr 11 MongoDB
MongoDB修改oplog大小的四种方法
Apr 11 MongoDB
Mongodb 迁移数据块的流程介绍分析
Apr 18 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
PHP+DBM的同学录程序(3)
2006/10/09 PHP
使用PHP会话(Session)实现用户登陆功能
2013/06/29 PHP
php实现建立多层级目录的方法
2014/07/19 PHP
Javascript开发包大全整理
2006/12/22 Javascript
html数组字符串拼接的最快方法
2009/09/16 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
2014/08/22 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
label+input实现按钮开关切换效果的实例
2017/08/16 Javascript
微信小程序多列选择器range-key使用详解
2020/03/30 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
Vue之mixin全局的用法详解
2018/08/22 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
Python中pillow知识点学习
2018/04/30 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
Python hashlib模块实例使用详解
2019/12/24 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
京东国际站:JOYBUY
2017/11/23 全球购物
运动会广播稿50字-100字
2014/10/11 职场文书
优秀共产党员推荐材料
2014/12/18 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
消防演习感想
2015/08/10 职场文书
Python安装及建立虚拟环境的完整步骤
2022/06/25 Servers