Spring Boot与MySQL的集成及表的创建

介绍

在现代的应用程序开发中,数据库是必不可少的一部分。而MySQL是一个经典的关系型数据库管理系统,被广泛应用于各种Web应用和数据驱动的应用程序中。而Spring Boot是一个用于简化Spring应用程序开发的框架,它可以帮助我们快速构建和部署应用程序。

本文将介绍如何在Spring Boot项目中集成MySQL数据库,并演示如何使用Spring Data JPA来创建数据表。

准备工作

在开始之前,我们需要先准备好以下工具和环境:

  • JDK 8或以上版本
  • Maven 3.x或以上版本
  • IntelliJ IDEA或其他Java开发工具
  • MySQL数据库

创建Spring Boot项目

首先,我们需要创建一个新的Spring Boot项目。可以使用Spring Initializr来快速创建项目,或者手动创建项目结构。以下是一个使用Spring Initializr创建项目的示例:

# journey
journey
    - 创建Spring Boot项目
        - 使用Spring Initializr创建项目结构
        - 配置项目依赖
    - 集成MySQL数据库
        - 配置数据源
        - 创建实体类
        - 创建数据访问接口
        - 创建数据访问对象
    - 创建数据表
        - 使用JPA自动创建表
        - 使用SQL创建表
    - 总结

集成MySQL数据库

配置数据源

在使用MySQL之前,我们需要配置数据源以便连接到数据库。在Spring Boot中,我们可以使用application.propertiesapplication.yml文件来配置数据源。以下是一个使用application.properties配置文件的示例:

# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

创建实体类

在创建数据表之前,我们需要先创建实体类来映射数据库中的表。我们可以使用JPA注解来定义实体类,并将其映射到数据库表。以下是一个示例实体类的代码:

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;
    
    private Integer age;
    
    // 省略getter和setter方法
}

创建数据访问接口

为了访问数据库中的数据,我们需要创建一个数据访问接口。在Spring Boot中,我们可以使用Spring Data JPA来简化数据访问的过程。以下是一个示例数据访问接口的代码:

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

public interface UserRepository extends JpaRepository<User, Long> {

}

创建数据访问对象

最后,我们需要创建一个数据访问对象(DAO)来实现数据访问接口。数据访问对象是实际执行数据库操作的类。以下是一个示例数据访问对象的代码:

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

import java.util.List;

@Repository
public class UserDao {
    
    @Autowired
    private UserRepository userRepository;
    
    public User save(User user) {
        return userRepository.save(user);
    }
    
    public User findById(Long id) {
        return userRepository.findById(id).orElse(null);
    }
    
    public List<User> findAll() {
        return userRepository.findAll();
    }
    
    public void deleteById(Long id) {
        userRepository.deleteById(id);
    }
}

创建数据表

使用JPA自动创建表

在上面的示例中,我们使用了JPA注解来定义实体类,并将其映射到数据库表。如果我们启用了JPA自动创建表的功能,那么当我们启动应用程序时,JPA会自动根据实体类的定义来创建对应的数据表。以下是一个启用JPA自动创建表的示例配置:

# JPA配置
spring.jpa.hibernate.ddl-auto=create

使用SQL创建表

除了使用JPA自动创建表之外,我们还可以使用SQL语句来创建表。以下是一个示例SQL语句的代码:

CREATE TABLE IF NOT EXISTS user (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100) NOT NULL,
  age INT NOT NULL