Spring Boot项目连接MySQL数据库及CRUD操作示例

发布于:2025-04-07 ⋅ 阅读:(16) ⋅ 点赞:(0)

概述

在Spring Boot项目中集成MySQL数据库是常见的开发需求。本文将演示如何快速配置MySQL数据库连接,并通过JPA实现基本的增删改查(CRUD)操作。


环境准备

  • JDK 1.8+
  • MySQL 5.7+(推荐8.0+)
  • Spring Boot 2.7.x+
  • IDE(IntelliJ IDEA/Eclipse)

实现步骤

1. 创建Spring Boot项目

通过Spring Initializr或IDE创建项目,选择以下依赖:

  • Spring Web
  • Spring Data JPA
  • MySQL Driver

2. 添加依赖(pom.xml)

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
</dependencies>

3. 配置数据库连接(application.properties)

spring.datasource.url=jdbc:mysql://localhost:3306/springboot_db?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456

spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

4. 创建实体类

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    @Column(nullable = false)
    private String name;
    
    @Column(unique = true)
    private String email;
    
    // 构造器/getter/setter省略(需实际添加)
}

5. 创建Repository接口

public interface UserRepository extends JpaRepository<User, Long> {
}

6. 实现Service层

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    public User createUser(User user) {
        return userRepository.save(user);
    }

    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    public Optional<User> getUserById(Long id) {
        return userRepository.findById(id);
    }

    public User updateUser(User user) {
        return userRepository.save(user);
    }

    public void deleteUser(Long id) {
        userRepository.deleteById(id);
    }
}

7. 创建Controller

@RestController
@RequestMapping("/api/users")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userService.createUser(user);
    }

    @GetMapping
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    @GetMapping("/{id}")
    public Optional<User> getUserById(@PathVariable Long id) {
        return userService.getUserById(id);
    }

    @PutMapping("/{id}")
    public User updateUser(@PathVariable Long id, @RequestBody User user) {
        user.setId(id);
        return userService.updateUser(user);
    }

    @DeleteMapping("/{id}")
    public void deleteUser(@PathVariable Long id) {
        userService.deleteUser(id);
    }
}

测试API

  • 创建用户:POST /api/users
  • 获取所有用户:GET /api/users
  • 获取单个用户:GET /api/users/{id}
  • 更新用户:PUT /api/users/{id}
  • 删除用户:DELETE /api/users/{id}

常见问题排查

  1. 数据库连接失败

    • 检查MySQL服务是否启动
    • 验证用户名/密码是否正确
    • 确保数据库springboot_db已存在
  2. 表未自动创建

    • 检查ddl-auto配置是否为update
    • 确认实体类正确使用JPA注解
  3. 时区问题

    • 在连接URL中添加&serverTimezone=Asia/Shanghai

总结

通过Spring Data JPA可以快速实现数据库操作。实际开发中可结合DTO、异常处理等功能完善项目。建议使用Postman测试接口,并通过MySQL Workbench验证数据变更。


希望这篇教程能帮助您快速上手Spring Boot与MySQL的集成开发!如有疑问欢迎留言讨论。