Spring Boot入门系列之:七、Spring Boot整合mongoDB

【Spring Boot 整合 MongoDB 完整指南】 MongoDB是一种开源的,它使用类似于JSON的BSON格式(Binary JSON)来存储数据。MongoDB使用集合(Collections)来组织文档(Documents),每个文档都是由键值对组成的。 阅读详情

spring-boot-mongoDB

开发环境

开发工具: Intellij IDEA 2018.2.6

springboot: 2.0.7.RELEASE

jdk: 1.8.0_192

maven: 3.6.0

mongoDB: 4.0.5

mongoDB 简介

什么是 mongoDB ?

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

搭建项目

  • pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <groupId>com.andy</groupId>
    <artifactId>spring-boot-mongodb</artifactId>
    <version>1.0.7.RELEASE</version>
    <modelVersion>4.0.0</modelVersion>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.spring.platform</groupId>
                <artifactId>platform-bom</artifactId>
                <version>Cairo-SR5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

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

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.0.3.RELEASE</version>
                <configuration>
                    <!--<mainClass>${start-class}</mainClass>-->
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

  • application.yml
server:
  port: 8081

spring:
  data:
    mongodb:
      uri: mongodb://localhost:27017/test
      host: localhost
      port: 27017
      database: test
  • 启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author Leone
 * @since 2018-05-09
 **/
@SpringBootApplication
public class MongodbApplication {
    public static void main(String[] args) {
        SpringApplication.run(MongodbApplication.class, args);
    }
}

  • MongoController.java
import com.andy.mongodb.entity.User;
import com.andy.mongodb.service.MongoService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * <p>
 *
 * @author leone
 * @since 2019-01-10
 **/
@RestController
@RequestMapping("/api/mongo")
public class MongoController {

    @Resource
    private MongoService mongoService;


    @PostMapping
    public User save(@RequestBody User user) {
        return mongoService.save(user);
    }

    @GetMapping("/list")
    public List<User> list() {
        return mongoService.list();
    }


    @GetMapping("/account")
    public User findByName(@RequestParam("account") String account) {
        return mongoService.findByName(account);
    }

    @PutMapping
    public void update(@RequestBody User user) {
        mongoService.update(user);
    }

    @DeleteMapping("/{userId}")
    public void delete(@PathVariable("userId") Integer userId) {
        mongoService.delete(userId);
    }

}


  • User.java
package com.andy.mongodb.entity;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 *
 * @author Leone
 * @since 2018-01-24
 **/
public class User implements Serializable {

    private Long userId;

    private String account;

    private String password;

    private String description;

    private Integer age;

    private Date createTime;

    private boolean deleted;

    public User() {
    }

    public User(Long userId, String account, String password, String description, Integer age, Date createTime, Boolean deleted) {
        this.userId = userId;
        this.account = account;
        this.password = password;
        this.description = description;
        this.age = age;
        this.createTime = createTime;
        this.deleted = deleted;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public boolean isDeleted() {
        return deleted;
    }

    public void setDeleted(boolean deleted) {
        this.deleted = deleted;
    }
}


  • MongoService.java
package com.andy.mongodb.service;

import com.andy.mongodb.entity.User;
import com.mongodb.client.result.UpdateResult;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * <p>
 *
 * @author leone
 * @since 2019-01-10
 **/
@Service
public class MongoService {

    @Resource
    private MongoTemplate mongoTemplate;


    /**
     * 新增
     *
     * @param user
     * @return
     */
    public User save(User user) {
        mongoTemplate.save(user);
        return user;
    }


    /**
     * 列表
     *
     * @return
     */
    public List<User> list() {
        return mongoTemplate.findAll(User.class);
    }


    /**
     * 根据名称查找
     *
     * @param account
     * @return
     */
    public User findByName(String account) {
        Query query = new Query(Criteria.where("account").is(account));
        return mongoTemplate.findOne(query, User.class);
    }

    /**
     * 更新
     *
     * @param user
     */
    public void update(User user) {
        Query query = new Query(Criteria.where("userId").is(user.getUserId()));
        Update update = new Update()
                .set("description", user.getDescription())
                .set("password", user.getPassword())
                .set("age", user.getAge())
                .set("deleted", user.isDeleted())
                .set("createTime", user.getCreateTime())
                .set("account", user.getAccount());
        // 更新查询返回结果集的第一条
        UpdateResult updateResult = mongoTemplate.updateFirst(query, update, User.class);
        // 更新查询返回结果集的所有
        // mongoTemplate.updateMulti(query,update,User.class);
    }


    /**
     * 删除
     *
     * @param userId
     */
    public void delete(Integer userId) {
        Query query = new Query(Criteria.where("userId").is(userId));
        mongoTemplate.remove(query, User.class);
    }


}

传送门

Spring Boot整合MongoDB 阅读详情

相关推荐

深入Spring Boot与MongoDB整合的源码解析

Spring Boot作为Java领域内一个非常流行的项目启动框架,它的出现极大地简化了企业级应用的开发流程。Spring Boot项目整合MongoDB数据库,可以为我们提供一个轻量级、灵活且高效的非关系型数据库解决方案,特别适合处理大规模数据集合、高伸缩性的场景。本章将概览Spring Boot与MongoDB整合的基本概念和优势,为后续章节中具体配置、实现细节和优化策略奠定理论基础。MongoDB是一种面向文档的数据库管理系统,它支持高性能、高可用性和易扩展的数据存储。

weixin_28913879的博客 1114

mongodb7集群搭建并使用springboot连接以及常见错误

最新版mongoDB7集群搭建,使用springboot连接mongoDB集群,以及常见错误

miserable_world的博客 1949

核函数——原理剖析

(Kernel Function)是机器学习和统计学中的一个重要概念,特别是在支持向量机(SVM)和其他基于核方法的算法中。核函数的主要作用是通过一个隐式的方式将数据映射到一个高维空间,从而使得在该高维空间中线性不可分的问题变得线性可分。没关系,现在让我们抛开一切无关的事情,花20分钟来认真领会一下,核函数的原理到底是什么。然后我们来说什么什么样的函数有资格称为核函数,也就是上面说的一个函数的内积矩阵是半正定矩阵。中的分布如左图所示。中是不可实现的,那如果我们将原始空间中的所有样本点,通过一个映射关系。

m0_70254540的博客 1587

MongoDB 7.0+快速入门&整合SpringBoot

MongoDB是在2007年由公司的几位核心成员开发出的一款分布式文档数据库,由C++语言编写。目的是为了解决数据大量增长的时候系统的可扩展性和敏捷性。MongoDB要比传统的关系型数据库简单很多。在MongoDB中数据主要的组织结构就是数据库、集合和文档,文档存储在集合当中,集合存储在数据库中。MongoDB中每一条数据记录就是一个文档,数据结构由键值(key=>value)对组成。文档类似于JSON对象,它的数据结构被叫做BSON下表将帮助您更容易理解MongoDBRDBMSMongoDB。

weixin_42396003的博客 1007

用PyTorch手把手搭建液态神经网络(LNN):从微分方程到无人机避障实战

本文详细介绍了如何使用PyTorch搭建液态神经网络(LNN),从微分方程基础到无人机避障实战应用。LNN通过动态时序建模和微分方程实现高效计算,特别适合多传感器数据融合场景。文章包含完整的代码实现、训练技巧及性能优化方案,帮助开发者快速掌握这一前沿技术。

uber9的博客 439

ALSA音频开发实战:如何用snd_pcm_avail避免缓冲区溢出(附完整代码)

本文深入探讨了在ALSA音频开发中,如何利用`snd_pcm_avail`函数有效管理环形缓冲区,从而避免音频数据溢出或下溢。通过实战代码示例,详细解析了该函数在播放场景下的核心作用,即实时查询可写入的帧数,并构建了自适应写入循环以实现稳健的流量控制,确保音频流的平滑与稳定。

weixin_29183637的博客 461

SpringBoot整合Mongodb

一个文档数据库,以JSON为数据模型,由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

klcss的博客 2339

ESP32-CAM实战:从零构建高精度QR二维码识别系统

本文详细介绍了如何使用ESP32-CAM构建高精度QR二维码识别系统,涵盖硬件配置、开发环境搭建、二维码识别库选择与优化、完整系统实现及实战问题排查。通过优化识别算法和电源管理,系统可实现快速、稳定的二维码识别,适用于物联网设备绑定等场景。

weixin_42524703的博客 433

Spring Boot 接入 MongoDB 完整教程

本文介绍了SpringDataMongoDB的使用指南,主要内容包括:项目初始化步骤、MongoDB连接配置、实体类定义,以及两种操作方式(MongoRepository和MongoTemplate)的对比与实现。文章详细展示了常用查询操作示例,并针对常见问题提供解决方案,如自定义_id生成策略和字段映射。适用于SpringBoot3.3+、Java17和MongoDB8环境,帮助开发者快速实现MongoDB的CRUD操作和高级查询功能。

m0_73246652的博客 1489

STM32实战:电容触摸屏I2C转USB HID设备全解析

本文详细解析了基于STM32的电容触摸屏I2C转USB HID设备实现方案。通过硬件选型、协议分析和代码实现,展示了如何将GT911触摸屏数据转换为标准USB HID协议,并提供了关键调试经验与性能优化技巧,为智能家居控制面板等应用提供高性价比解决方案。

weixin_42548829的博客 320

项目管理 Agent:进度追踪与风险预警 Harness

我们先从LangChain的Agent定义说起:Agent是一个能感知环境、自主决策、调用工具、执行动作、迭代反思的智能实体。而「项目管理全自主Agent」,就是把Agent的核心能力和项目管理的五大过程组(启动、规划、执行、监控、收尾)深度结合,聚焦执行监控阶段的两个核心痛点:进度偏差自动化计算、风险信号自动化识别与预警的专门化Agent。全感知(Omnisensing):能从。

AI架构师小马 516

SpringBoot整合MongoDB

MongoDB是一种开源的文档型数据库管理系统,它使用类似于JSON的BSON格式(Binary JSON)来存储数据。与传统关系型数据库不同,MongoDB不使用表和行的结构,而是采用集合(Collection)(Mysql表)和文档(Document)(MySql行)的概念来组织数据。

qq_65142821的博客 9492

ComfyUI整合包、秋叶ComfyUI、Florence节点报错下载并加载Florence2模型No module named ‘timm.layers‘、ComfyUI报错解决

步骤操作1打开2地址栏输入cmd并回车3输入命令:4安装完成后重新打开 ComfyUI,执行工作流,即可解决报错。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1243

spring boot 整合mongodb

Spring Boot其设计目的是用来简化新Spring应用的初始搭建以及开发过程,简化配置

xphsc的专栏 1万+

手把手教你学simulink实例--基于Simulink的船舶发电柴油机建模与健康状态研究

船舶发电柴油机是现代船舶电力系统的核心设备,为船舶提供稳定的电能供应。然而,由于长期运行在复杂的海洋环境中,船舶发电柴油机容易受到磨损、腐蚀和疲劳等损伤的影响,导致其性能下降甚至发生故障。因此,对船舶发电柴油机进行建模和健康状态监测具有重要意义。本项目旨在使用MATLAB/Simulink平台,建立船舶发电柴油机的动力学模型,并通过仿真分析其健康状态,预测潜在故障,从而提高船舶运行的安全性和经济性。

MHD0815的博客 1325

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Windows上安装MongoDB,Spring Boot整合MongoDB

springboot有整合了MongoDB的依赖,直接在项目的pom.xml中引入,版本和springboot版本一致。

沐雨橙风ιε的博客 2017

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

MongoDB简单入门篇及其Spring Boot整合

一篇文章,轻松掌握MongoDB Spring Boot整合MongoDB

cV展示的学习园 2万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Spring Boot 整合MongoDB

本文介绍了SpringBoot3.x集成MongoDB的实现方法。首先通过引入spring-boot-starter-data-mongodb依赖并配置数据源连接信息。文章详细说明了MongoDB文档实体的定义方式,包括@Document和@MongoId等注解的使用。重点讲解了MongoTemplate和MongoRepository两个核心类的功能:MongoTemplate提供CRUD、聚合等丰富的数据库操作;MongoRepository则简化基础操作,支持方法名查询和@Query注解。文章还提供了

yzzdid的博客 1373

Spring Boot 整合 MongoDB 学习笔记 (新手入门)

Spring Boot 整合 MongoDB 学习笔记 (新手入门)

m0_63949203的博客 1528

Spring Boot 整合 MongoDB:详细步骤与原创指南

Spring Boot 作为 Java 开发的主流框架,与 MongoDB 的整合可以极大地简化开发流程,提升项目效率。本文将详细介绍 Spring Boot 与 MongoDB 的整合步骤,并提供原创的详细指南和代码示例。在 Service 或 Controller 中注入。运行 Spring Boot 项目,访问。,即可测试 MongoDB 的整合效果。确保 MongoDB 已经启动并运行。

恩爸编程 1083

Spring Boot整合MongoDB实现增删改查

MongoDB这两年来是本人一直使用较多的,之前的使用大多通过封装的工具类对数据库进行操作,虽然也算稳定,但有了Spring Boot之前的工具类直接加到SpringBoot里就没那么好使了,因此查阅资料后自己小试牛刀写了个增删改查,觉得也还不错,所以分享给大家看看 1 pom和主配置文件,为了方便大家复制粘贴贴个完整的 <project xmlns="http://maven.apache.

技术成就梦想 1万+

Springboot系列之二十三:Spring Boot和Mongodb整合(完整版)

转自:https://blog.youkuaiyun.com/stronglyh/article/details/81024588 今天主要讲的是Spring Boot和Mongodb整合我们先来回顾一下前面章节的相关内容前面我们讲了SpringBoot和mysql整合,并且讲了操作数据库的几种方式SpringBoot+JPA自动生成表数据库操作SpringBoot+JDBC操作篇SpringBoot+Myb...

qq_32534441的博客 5258

Spring Boot 整合 MongoDb 教程。

一:安装 Mongo 服务(linux docker容器方式安装) 查看服务器已经下载的docker镜像 [root@localhost ~]#docker images 还没有 mongo 的镜像 docker下载最新版本的mongo镜像命令: [root@localhost ~]#docker pull mongo:latest 下载完成后,我们查看镜像列表已经有了 启动一个mongodb 容器服务 [root@localhost ~]#docker run -itd -

不受天磨非好汉,不遭人妒是庸才——着实着迷゛ 1104

spring boot 工程整合mongodb,遇到的坑

spring boot 整合 mongodb ,版本、MongoTemplate、连接字符串等问题

yanweijie0317的专栏 1099

MongoDB - Java连接MongoDB:Spring Boot集成MongoDB的步骤

本文介绍了在Spring Boot中集成MongoDB的全过程。首先通过Spring Initializr创建项目并添加MongoDB依赖,然后配置连接信息。接着详细说明了如何定义MongoDB实体类,包括使用@Document、@Id等注解进行对象映射。文章还演示了Repository接口的使用方法,涵盖基本CRUD操作、自定义查询和分页功能。通过清晰的代码示例和配置说明,帮助开发者快速掌握Spring Boot与MongoDB的集成开发。

千淘万漉虽辛苦,吹尽狂沙始到金 2万+
上一篇: Spring Boot入门系列之:六、Spring Boot整合spring-batch
下一篇: Spring Boot入门系列之:八、Spring Boot整合swagger
exklin
博客等级 码龄9年 35粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值