SpringBoot整合MongoDB的步骤详解

下面就是 SpringBoot 整合 MongoDB 完整攻略:

概述

MongoDB 是一款文档型数据库,而 SpringBoot 是当前最流行的 Java Web 开发框架之一。结合使用这两者,我们可以轻松的完成高效、灵活的数据存储操作。

在本文中,我们将通过两个实例来演示如何在 SpringBoot 中使用 MongoDB 实现增删改查操作。

示例 1:创建 MongoDB 数据库

步骤 1:引入依赖

首先,在创建 SpringBoot 项目时应该加入 MongoDB 和 SpringData MongoDB 的依赖。打开 pom.xml 文件,添加以下内容:

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

步骤 2:创建 MongoDB 配置文件

src/main/resources 目录下新建 application.properties 文件,并配置 MongoDB 连接信息:

# MongoDB 连接信息
spring.data.mongodb.uri=mongodb://localhost:27017/test

步骤 3:创建实体类

为了让 MongoDB 知道我们需要存储的数据结构,我们需要定义一个对应的数据模型。在 src/main/java 下创建相应的实体类 User.java

package xyz.luronix.springmongo.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Document(collection = "users")
public class User {

    @Id
    private String id;
    private String name;

}

上述代码中,我们使用 @Document 注解将该实体类映射到 MongoDB 的 users 集合。同时,我们用 @Id 注解将 id 字段作为文档的唯一标识符。

步骤 4:创建 MongoDB 操作接口

src/main/java 目录下,创建 MongoUserRepository.java 接口,并继承 MongoRepository 接口:

package xyz.luronix.springmongo.repository;

import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
import xyz.luronix.springmongo.entity.User;

@Repository
public interface MongoUserRepository extends MongoRepository<User, String> {

}

这里 MongoUserRepository 继承了 MongoRepository 接口,并通过泛型指定了实体类 Userid 的类型 String。SpringData MongoDB 会自动为我们实现增删改查等操作。

步骤 5:编写服务层代码

在服务层中,我们通过调用 MongoUserRepository 中的方法来完成对 MongoDB 的操作。这里我们采用了比较常用的 RESTful 风格的 API 接口,因此我们需要创建一个 RESTful Controller。

src/main/java 目录下,创建 UserController.java 控制器:

package xyz.luronix.springmongo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import xyz.luronix.springmongo.entity.User;
import xyz.luronix.springmongo.repository.MongoUserRepository;

import java.util.List;

@RestController
@RequestMapping(path = "/api/users")
public class UserController {

    @Autowired
    private MongoUserRepository userRepository;

    @GetMapping("")
    public ResponseEntity<List<User>> findAll() {
        return ResponseEntity.ok(userRepository.findAll());
    }

    @GetMapping("/{id}")
    public ResponseEntity<User> findById(@PathVariable String id) {
        return userRepository.findById(id).map(ResponseEntity::ok)
                .orElse(new ResponseEntity<>(HttpStatus.NOT_FOUND));
    }

    @PostMapping("")
    public ResponseEntity<User> save(@RequestBody User user) {
        return ResponseEntity.status(HttpStatus.CREATED)
                .body(userRepository.save(user));
    }

    @PutMapping("")
    public ResponseEntity<User> update(@RequestBody User user) {
        return userRepository.existsById(user.getId()) ? ResponseEntity.ok(userRepository.save(user))
                : new ResponseEntity<>(HttpStatus.NOT_FOUND);
    }

    @DeleteMapping("/{id}")
    public ResponseEntity<Void> delete(@PathVariable String id) {
        userRepository.deleteById(id);
        return ResponseEntity.ok().build();
    }

}

实例 2:查询 MongoDB 数据库

步骤 1:引入依赖

同样,在创建 SpringBoot 项目时应该加入 MongoDB 和 SpringData MongoDB 的依赖。打开 pom.xml 文件,添加以下内容:

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

步骤 2:创建 MongoDB 配置文件

src/main/resources 目录下新建 application.properties 文件,并配置 MongoDB 连接信息:

# MongoDB 连接信息
spring.data.mongodb.uri=mongodb://localhost:27017/test

步骤 3:编写查询代码

在服务层中,我们通过调用 MongoTemplate 来实现 MongoDB 数据库的查询操作。在 src/main/java 目录下创建 MongoQueryService.java 文件,并编写以下代码:

package xyz.luronix.springmongo.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import xyz.luronix.springmongo.entity.User;

import java.util.List;

@Service
public class MongoQueryService {

    @Autowired
    private MongoTemplate mongoTemplate;

    public List<User> findAll() {
        return mongoTemplate.findAll(User.class);
    }

    public User findById(String id) {
        return mongoTemplate.findById(id, User.class);
    }

    public List<User> findByName(String name) {
        return mongoTemplate.find(query(where("name").is(name)), User.class);
    }

    public User save(User user) {
        return mongoTemplate.insert(user);
    }

    public User update(User user) {
        return mongoTemplate.save(user);
    }

    public void deleteById(String id) {
        mongoTemplate.remove(query(where("id").is(id)), User.class);
    }

}

MongoQueryService 中,我们使用 MongoTemplate 提供的方法来完成 MongoDB 数据库的查询。例如,我们使用 findAll() 方法来查询所有用户,使用 findById() 方法来根据 id 查找单个用户,使用 findByName() 方法来根据名称查找用户列表,使用 save() 方法来插入记录,使用 update() 方法来更新记录,使用 deleteById() 方法来删除记录。

总结

本文详细介绍了 SpringBoot 整合 MongoDB 的步骤。在实际开发中,使用 MongoDB 进行数据存储具有可扩展性、数据模型灵活和高效的特点。通过这里的示例,相信各位读者对于使用 SpringBoot 和 MongoDB 进行开发有了更为深入和全面的了解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合MongoDB的步骤详解 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • NoSQL优缺点与MongoDB数据库简介

    NoSQL优缺点与MongoDB数据库简介 什么是NoSQL数据库? NoSQL是Not Only SQL的简称,表示非关系型数据库。与传统的关系型数据库不同,NoSQL数据库采用了更加灵活的数据结构,如键值对、文档型、列族型、图形数据库等,且不需要遵循固定的模式(如表、列、约束)。 NoSQL数据库的优缺点 NoSQL数据库优点: 可扩展性好:NoSQL数…

    MongoDB 2023年5月16日
    00
  • 详解MongoDB创建数据库步骤

    MongoDB是一款基于文档存储的非关系型数据库,以下是如何创建数据库的完整攻略。 安装MongoDB 首先需要在计算机上安装MongoDB,安装方法可以查看官方文档或者从MongoDB官网下载安装程序,根据安装向导完成安装。 启动MongoDB服务 在安装完成后,需要启动MongoDB服务。在Windows系统中,可以通过运行CMD或者PowerShell…

    MongoDB 2023年3月14日
    00
  • MongoDB数据库常用的10条操作命令

    MongoDB是一款非关系型数据库,它的操作命令与关系型数据库有所不同。下面是MongoDB数据库常用的10条操作命令的完整攻略。 1. 连接MongoDB数据库 命令:mongosh 使用此命令后,将进入到MongoDB命令行界面。 2. 显示MongoDB版本 命令:db.version() 该命令将会返回MongoDB当前的版本号。 3. 创建数据库 …

    MongoDB 2023年5月16日
    00
  • mongodb监控工具mongostat的使用及命令详解

    下面是关于“mongodb监控工具mongostat的使用及命令详解”的完整攻略,包含两条示例说明。 mongostat是什么 mongostat是MongoDB自带的用于监控MongoDB服务器状态的命令行工具。它可以以统计数据、表格和图形的形式展示在终端中。通过mongostat,我们可以监控MongoDB服务器的常见性能指标、进程、连接、锁、操作等情况…

    MongoDB 2023年5月16日
    00
  • MongoDB 模式设计详解

    MongoDB 模式设计详解 什么是 MongoDB 模式 在 MongoDB 中,模式是用于描述数据的存储方式,它维护了文档的结构和数据类型。相比于关系型数据库中的固定模式,MongoDB 的模式更加灵活。这意味着你可以在无需预定义表结构的情况下,直接向数据库中插入数据,不需要进行额外的配置。但是,这同时也带来了一定的挑战,因为当数据规模变大时,需要更好地…

    MongoDB 2023年5月16日
    00
  • 详解MongoDB中的索引

    MongoDB是一种常见的NoSQL数据库,与传统的关系型数据库不同,它使用文档格式的数据存储。由于它的高效性和可扩展性,越来越多的企业和开发者在使用它。与其他数据库一样,MongoDB也提供了索引功能来提高查询性能。 本文将详细讲解MongoDB索引的完整攻略,包括什么是索引,为什么需要索引,MongoDB索引的类型,如何创建和使用索引等。过程中还将包含代…

    MongoDB 2023年3月14日
    00
  • nodejs连接mysql数据库及基本知识点详解

    Node.js连接MySQL数据库及基本知识点详解 在Node.js开发中,连接数据库是必不可少的一部分。MySQL是一种流行的关系型数据库,可以使用Node.js进行连接和操作。下面是连接MySQL数据库的详细攻略,包含以下内容: MySQL基本知识点 Node.js连接MySQL的方式 示例说明 MySQL基本知识点 在连接MySQL之前,需要了解一些基…

    MongoDB 2023年5月16日
    00
  • MongoDB搭建高可用集群的完整步骤(3个分片+3个副本)

    下面是MongoDB搭建高可用集群的完整步骤(3个分片+3个副本)攻略及两条示例说明: 1. 准备工作 在开始搭建高可用的MongoDB集群之前,你需要先完成以下准备工作: 安装MongoDB的版本号为3.6及以上的版本; 确定你要选择的分片和副本集的数量; 确认服务器防火墙的设置; 确认MongoDB集群服务器能够相互之间进行网络通讯。 2. 建立Mong…

    MongoDB 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部