SpringBoot整合MongoDB的步骤详解

yizhihongxing

下面就是 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日

相关文章

  • MongoDB4.28开启权限认证配置用户密码登录功能

    下面是MongoDB4.28开启权限认证配置用户密码登录功能的完整攻略: 第一步:启用安全认证 首先,需要启用MongoDB的安全认证。进入mongo shell,在admin数据库中运行以下命令启用认证功能: use admin db.runCommand({ "setParameter": 1, "authenticatio…

    MongoDB 2023年5月16日
    00
  • 1亿条记录的MongoDB数据库随机查询性能测试

    为了详细讲解“1亿条记录的MongoDB数据库随机查询性能测试”的完整攻略,我将按照以下步骤进行: 准备测试数据 创建MongoDB索引 编写测试代码 进行随机查询性能测试 下面是每个步骤的详细说明和示例: 准备测试数据 准备测试数据是进行随机查询性能测试的第一步。在本例中,我们需要准备1亿条记录的数据。这里我准备了一个包含1亿条学生数据的CSV文件,并使用…

    MongoDB 2023年5月16日
    00
  • 在 Fedora 上安装 MongoDB 服务器的方法教程

    安装 MongoDB 服务器可以分为以下步骤: 步骤1:添加 MongoDB 官方 YUM 仓库 在 Fedora 中,你可以通过添加 MongoDB 官方 YUM 仓库来安装 MongoDB。在终端中执行以下命令即可: sudo dnf config-manager –add-repo=https://repo.mongodb.org/yum/amazo…

    MongoDB 2023年5月16日
    00
  • Ubuntu 18.04安装MongoDB 4.0 的教程详解

    Ubuntu 18.04安装MongoDB 4.0 的教程详解 1. 前置条件 在开始安装MongoDB 4.0之前,确保已经完成以下步骤: 安装Ubuntu 18.04操作系统。 通过apt-get更新软件包列表。 sudo apt-get update 安装apt-transport-https软件包。 sudo apt-get install apt-…

    MongoDB 2023年5月16日
    00
  • mongodb在windows下的安装步骤分享

    下面我将为您详细讲解MongoDB在Windows下的安装步骤分享。 MongoDB在Windows下的安装步骤分享 1. 下载MongoDB 首先,您需要前往MongoDB官网(https://www.mongodb.com/)下载MongoDB的Windows版本。 在官网的“Download”页面中,选择“Community Server”版本,并根据…

    MongoDB 2023年5月16日
    00
  • mongodb数据库实验之增删查改

    以下是“mongodb数据库实验之增删查改”的完整攻略。 环境准备 首先,我们需要准备好MongoDB的运行环境,这里我们可以选择在本地电脑上安装MongoDB,也可以使用MongoDB提供的在线云服务(如Atlas)。 另外,我们需要安装MongoDB的驱动程序,以便在代码中使用MongoDB的操作命令。具体可以选择不同编程语言对应的驱动程序。在本次实验中…

    MongoDB 2023年5月16日
    00
  • mongo数据集合属性中存在点号(.)的解决方法

    当Mongo数据库中的数据集合属性中存在点号(.)时,可能会造成一些问题,比如在通过代码或者mongo shell查询该属性时,可能会出现错误提示。这种情况的处理方法如下: 使用引号包围属性名,代码示例如下: db.collection.find({"属性名.属性名":value}) 其中,属性名被引号包围,属性名中的点号(.)不再被解析…

    MongoDB 2023年5月16日
    00
  • java操作mongodb实现CURD功能实例

    Java操作MongoDB实现CURD功能示例 在Java应用程序中使用MongoDB进行CURD操作,需要依赖MongoDB Java驱动包,可以使用Maven进行依赖管理。本示例以Maven项目演示MongoDB的CURD操作,具体步骤如下: 步骤1:添加Maven依赖 <dependency> <groupId>org.mong…

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