spring boot 使用 jpa 连接 mysql 数据库的详细步骤

286 阅读2分钟

以下是使用Spring Boot结合JPA连接MySQL数据库的详细步骤:


​步骤1:创建Spring Boot项目​

  1. 初始化项目
    使用Spring Initializr创建项目,选择以下依赖:
    • Spring Data JPA(提供JPA支持)

    • MySQL Driver(MySQL数据库驱动)

    • Spring Web(可选,用于创建REST接口)

  2. 添加依赖
    检查pom.xml是否包含以下依赖:

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

​步骤2:配置数据库连接​
application.properties(或application.yml)中添加数据库配置:

properties
复制
# 数据库连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# JPA配置
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

• 关键参数说明:

• ddl-auto: 可选update(自动更新表结构)或create(每次重建表)。

• show-sql: 控制台打印SQL语句,便于调试。


​步骤3:创建实体类​

  1. 定义实体类
    使用@Entity注解映射数据库表,@Id标记主键,@GeneratedValue设置主键生成策略:

    java
    复制
    @Entity
    @Table(name = "users")
    public class User {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id;
        private String name;
        private String email;
        // 省略Getter和Setter
    }
    

​步骤4:创建Repository接口​

  1. 继承JpaRepository
    创建一个接口继承JpaRepository,Spring Data JPA会自动生成CRUD方法:

    java
    复制
    @Repository
    public interface UserRepository extends JpaRepository<User, Long> {
        // 可自定义查询方法(如按名称查询)
        List<User> findByName(String name);
    }
    

​步骤5:编写Service和Controller​

  1. 服务层
    注入UserRepository并调用JPA方法:

    java
    复制
    @Service
    public class UserService {
        @Autowired
        private UserRepository userRepository;
    
        public User saveUser(User user) {
            return userRepository.save(user);
        }
    
        public List<User> getAllUsers() {
            return userRepository.findAll();
        }
    }
    
  2. 控制器层
    创建REST接口测试数据库操作:

    java
    复制
    @RestController
    public class UserController {
        @Autowired
        private UserService userService;
    
        @PostMapping("/users")
        public User addUser(@RequestBody User user) {
            return userService.saveUser(user);
        }
    
        @GetMapping("/users")
        public List<User> getAllUsers() {
            return userService.getAllUsers();
        }
    }
    

​步骤6:测试验证​

  1. 启动应用
    运行SpringBootApplication主类,检查控制台是否打印数据库连接成功的日志。

  2. 接口测试
    • 使用Postman发送POST http://localhost:8080/users插入数据。

    • 访问GET http://localhost:8080/users查看所有用户数据。


​注意事项​

  1. 数据库版本兼容性
    MySQL 8.0+需在URL中添加serverTimezone=UTC,避免时区错误。
  2. 自动建表机制
    ddl-auto=update适用于开发环境,生产环境建议关闭或使用Flyway等迁移工具。
  3. 实体类与表映射
    实体类字段名需与数据库表字段名一致,或通过@Column(name = "column_name")显式指定。