Spring Boot 从 MySQL 获取不重复 ID 的实现

在这篇文章中,我们将介绍如何在 Spring Boot 项目中从 MySQL 数据库中提取不重复的 ID 值。我们会一步一步地解释整个流程,并在每个环节中提供必要的代码示例和注释,对于初入这一领域的小白来说,将会是一个系统的学习过程。

整体流程

首先,让我们看看完成这个任务的整体流程。请参考下表:

步骤 描述
1 创建 Spring Boot 项目
2 配置 MySQL 数据库连接
3 创建一个实体类对应数据库表结构
4 创建一个 Repository 接口
5 创建一个 Service 类
6 创建一个 Controller
7 测试接口,确保 ID 不重复返回

接下来,我们将逐步实现每个步骤。

流程图

我们使用 mermaid 语法来呈现流程图:

flowchart TD
    A[创建 Spring Boot 项目] --> B[配置 MySQL 数据库连接]
    B --> C[创建实体类]
    C --> D[创建 Repository]
    D --> E[创建 Service]
    E --> F[创建 Controller]
    F --> G[测试接口]

步骤详解

1. 创建 Spring Boot 项目

在 IntelliJ IDEA 或者 Spring Initializr 上创建一个新的 Spring Boot 项目。选择 Web 和 JPA 相关依赖。

2. 配置 MySQL 数据库连接

application.properties 中配置数据库连接信息:

# MySQL 连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

3. 创建一个实体类

创建一个实体类与数据库中的表结构相对应。假设我们有一个名为 User 的表。

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity  // 表示这是一个实体类
public class User {
    
    @Id  // 主键
    @GeneratedValue(strategy = GenerationType.IDENTITY)  // 自增策略
    private Long id;

    // 其他字段
    private String name;

    // Getter 和 Setter 方法
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

4. 创建一个 Repository 接口

创建一个继承自 JpaRepository 的接口,用于数据操作。

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
    // 可以在这里添加自定义查询方法
}

5. 创建一个 Service 类

在 Service 类中封装业务逻辑,进行数据的操作。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service  // 服务类的标识
public class UserService {

    @Autowired
    private UserRepository userRepository;

    // 获取所有用户的 ID
    public List<Long> getAllUserIds() {
        return userRepository.findAll().stream()
                .map(User::getId)
                .distinct()  // 去重
                .toList();   // 收集成 List
    }
}

6. 创建一个 Controller

创建一个 Controller 处理 HTTP 请求,并调用 Service。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController  // 标识为控制器
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/user-ids")  // 定义 GET 请求路径
    public List<Long> getUserIds() {
        return userService.getAllUserIds();  // 调用服务获取所有 ID
    }
}

7. 测试接口

启动 Spring Boot 项目后,使用浏览器或 Postman 访问 http://localhost:8080/user-ids。你应该能够看到从数据库中提取的用户 ID,确保它们是唯一的不重复的。

总结

在这篇文章中,我们经过七个关键步骤,成功实现了从 MySQL 数据库中提取不重复 ID 的功能。无论是配置数据库连接、创建实体类,还是构建服务与控制器,所有的步骤都是保证系统正常运作的基石。

通过不断地实践和探索,相信你会对 Spring Boot 和数据库操作有更深入的理解。希望这篇文章能帮助到你,如果有任何问题,欢迎随时交流!