SpringBoot整合MongoDB的实现代码

 更新时间:2021年05月25日 14:39:41   作者:youcong  
自己本科时候一直使用的是Mysql,目前的课题组使用的是MongoDB,因此就花了一部分时间整理了一下,实现springboot与MongoDB的整合,并且实现基本的增删改查操作,从头到尾给出一个完整的案例。

MongoDB官网安装:
https://www.mongodb.com/download-center/community

MongoDB客户端工具(Mongo Management Studio)安装:
http://mms.litixsoft.de/#software_pricing

一、添加Maven依赖

<!--mongodb-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

二、application.yml配置

spring:
  data:
    mongodb:
      host: 127.0.0.1
      port: 27017
      database: blog

三、代码中使用Mongo

1.Mongo适用场景

(1)可用于动态列;
(2)可用于配置方面(如一些系统配置);
(3)日志记录;
(4)用于博客开发中的评论或留言;
(5)物联网方面的门锁相关信息存储;
(6)探头;

上面六个场景是我之前开发使用过的。

当然了,Mongo还可以应用更多地方,关键在于应用的场景是否合适。

2.以我最近博客开发的一个联系我为例(这里我使用Mongo)

(1)建立数据模型(需要在Mongo对应的库,建立对应的集合)

package com.springcloud.blog.admin.mongo.entity;

import com.springcloud.blog.admin.common.base.BaseDTO;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

/**
 * 联系我-数据模型
 */
@Document(collection = "contact_me")
public class ContactMe extends BaseDTO {

    @Field
    private String name;

    @Field
    private String email;

    @Field
    private String content;


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }
}

(2)数据访问层

package com.springcloud.blog.admin.mongo.dao;

import com.springcloud.blog.admin.mongo.entity.ContactMe;
import org.springframework.data.mongodb.repository.MongoRepository;

/**
 * 联系我-持久层
 */
public interface ContactMeRepository extends MongoRepository<ContactMe, String> {
}

(3)对外API

package com.springcloud.blog.admin.mongo.controller;

import com.alibaba.fastjson.JSONObject;
import com.springcloud.blog.admin.common.dict.ResponseDict;
import com.springcloud.blog.admin.mongo.dao.ContactMeRepository;
import com.springcloud.blog.admin.mongo.entity.ContactMe;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * 联系我(Mongo Example)
 */
@RestController
@RequestMapping("/contactMe")
public class ContactMeController {


    @Autowired
    private ContactMeRepository contactMeRepository;

    @PostMapping("/save")
    public JSONObject save(@RequestBody ContactMe contactMe) {
        JSONObject jsonObject = new JSONObject();
        contactMeRepository.save(contactMe);
        jsonObject.put(ResponseDict.RESPONSE_CODE_KEY, ResponseDict.RESPONSE_SUCCESS_CODE);
        jsonObject.put(ResponseDict.RESPONSE_MSG_KEY, ResponseDict.RESPONSE_SUCCESS_MSG);
        return jsonObject;
    }


    @PostMapping("/delete")
    public JSONObject delete(@RequestBody ContactMe contactMe) {
        JSONObject jsonObject = new JSONObject();
        contactMeRepository.delete(contactMe);
        jsonObject.put(ResponseDict.RESPONSE_CODE_KEY, ResponseDict.RESPONSE_SUCCESS_CODE);
        jsonObject.put(ResponseDict.RESPONSE_MSG_KEY, ResponseDict.RESPONSE_SUCCESS_MSG);
        return jsonObject;
    }


    @PostMapping("/update")
    public JSONObject update(@RequestBody ContactMe contactMe) {
        JSONObject jsonObject = new JSONObject();
        contactMeRepository.save(contactMe);
        jsonObject.put(ResponseDict.RESPONSE_CODE_KEY, ResponseDict.RESPONSE_SUCCESS_CODE);
        jsonObject.put(ResponseDict.RESPONSE_MSG_KEY, ResponseDict.RESPONSE_SUCCESS_MSG);
        return jsonObject;
    }

    @PostMapping("/getAll")
    public JSONObject getAll() {
        JSONObject jsonObject = new JSONObject();
        List<ContactMe> list = contactMeRepository.findAll();
        jsonObject.put(ResponseDict.RESPONSE_CODE_KEY, ResponseDict.RESPONSE_SUCCESS_CODE);
        jsonObject.put(ResponseDict.RESPONSE_MSG_KEY, ResponseDict.RESPONSE_SUCCESS_MSG);
        jsonObject.put(ResponseDict.RESPONSE_DATA_KEY, list);
        return jsonObject;
    }
}

简单的说就是一个非常简单的增删改查,可帮助入门。
同时一般情况下,还是需要业务逻辑层的,一方面为了复用考虑,另外一方面不同的业务办不同的事情。

以上就是SpringBoot整合MongoDB的实现代码的详细内容,更多关于SpringBoot整合MongoDB的资料请关注脚本之家其它相关文章!

相关文章

  • Java实现4种微信抢红包算法(小结)

    Java实现4种微信抢红包算法(小结)

    微信红包是大家经常使用的,到现在为止仍然有很多红包开发的需求,实现抢红包算法也是面试常考题,本文就详细的来介绍一下如何实现,感兴趣的可以了解一下
    2021-12-12
  • 解决@Value注解不能注入static修饰的属性问题

    解决@Value注解不能注入static修饰的属性问题

    这篇文章主要介绍了解决@Value注解不能注入static修饰的属性问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Quartz集群原理以及配置应用的方法详解

    Quartz集群原理以及配置应用的方法详解

    Quartz是Java领域最著名的开源任务调度工具。Quartz提供了极为广泛的特性如持久化任务,集群和分布式任务等,下面这篇文章主要给大家介绍了关于Quartz集群原理以及配置应用的相关资料,需要的朋友可以参考下
    2018-05-05
  • Java Swing实现扫雷源码

    Java Swing实现扫雷源码

    这篇文章主要为大家详细介绍了Java Swing实现扫雷源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • 关于java连接池/线程池/内存池/进程池等汇总分析

    关于java连接池/线程池/内存池/进程池等汇总分析

    这篇文章主要介绍了关于java连接池/线程池/内存池/进程池等汇总分析,本文将介绍池技术的由来、原理、优缺点以及常见的池技术类型,需要的朋友可以参考下
    2023-04-04
  • spring boot创建项目包依赖问题的解决

    spring boot创建项目包依赖问题的解决

    本篇文章主要介绍了spring boot创建项目包依赖问题的解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • SpringWebMVC的常用注解及应用分层架构详解

    SpringWebMVC的常用注解及应用分层架构详解

    这篇文章主要介绍了SpringWebMVC的常用注解及应用分层架构,SpringWebMVC是基于ServletAPI构建的原始Web框架,从⼀开始就包含在Spring框架中,感兴趣的朋友可以参考下
    2024-05-05
  • IDEA巧用Postfix Completion让码速起飞(小技巧)

    IDEA巧用Postfix Completion让码速起飞(小技巧)

    这篇文章主要介绍了IDEA巧用Postfix Completion让码速起飞,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Idea中Java项目如何修改项目名

    Idea中Java项目如何修改项目名

    这篇文章主要介绍了Idea中Java项目如何修改项目名问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • java公众平台通用接口工具类HttpConnectUtil实例代码

    java公众平台通用接口工具类HttpConnectUtil实例代码

    下面小编就为大家分享一篇java公众平台通用接口工具类HttpConnectUtil实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01

最新评论