Spring Data JPA
Spring Data JPA 是什么呢?它Spring Data 的一部分,基于 JPA (Java Persistence API) 提供高级别的数据库访问抽象。通过注解和接口自动生成常见的 CRUD 操作,大大简化了开发工作。 适合快速开发和简化数据库访问代码的场景。
记录于07-30 11:00
我这边使用的事jdk17 springboot3.3.2
使用 IntelliJ IDEA 创建一个 Spring Boot 项目并添加 Spring Data JPA 和 MySQL 依赖的详细步骤如下:
1. 创建 Spring Boot 项目
- 启动 IntelliJ IDEA,点击
File
->New
->Project...
选择Spring Initializr
,点击Next
- 配置 Spring Initializr 项目元数据,如 Group=com.dependencies 和 Artifact=spring-data-jpa
- 选择以下依赖:
Spring Web
Spring Data JPA
MySQL Driver
- 点击
Next
->Finish
2. 配置数据库连接
在 src/main/resources
目录下的 application.properties
文件中配置 MySQL 数据源:
spring.application.name=spring-data-jpa# MySQL Database configuration
spring.datasource.url=jdbc:mysql://localhost:3306/spring-dependencies?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driverspring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
3. 创建实体类
在
/src/main/java/com/dependencies/springdatajpa
目录下创建一个包 entity
,在其中创建一个实体类 UserEntity:
package com.dependencies.springdatajpa.entity;import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;/*** @author zhizhou 2024/7/30 23:20*/@Entity
public class UserEntity {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;private String name;// getters and setters//这里可以通过 lombok 注解解决// 下期讲解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 接口
在 /src/main/java/com/dependencies/springdatajpa
目录下创建一个包 repository
,在其中创建一个接口 UserRepository:
package com.dependencies.springdatajpa.repository;import com.dependencies.springdatajpa.entity.UserEntity;
import org.springframework.stereotype.Repository;
import org.springframework.data.jpa.repository.JpaRepository;
/*** @author zhizhou 2024/7/30 23:22*/
@Repository
public interface UserRepository extends JpaRepository<UserEntity, Long> {}
5. 创建 Service 类
在 /src/main/java/com/dependencies/springdatajpa
目录下创建一个包 service
,在其中创建一个服务类 UserService:
package com.dependencies.springdatajpa.service;import com.dependencies.springdatajpa.entity.UserEntity;
import com.dependencies.springdatajpa.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;/*** @author zhizhou 2024/7/30 23:24*/
@Service
public class UserService {@Autowiredprivate UserRepository userRepository;public List<UserEntity> getAllUsers() {return userRepository.findAll();}public UserEntity save(UserEntity userEntity) {return userRepository.save(userEntity);}public void delete(Long id) {userRepository.deleteById(id);}
}
6. 创建 Controller 类
在 /src/main/java/com/dependencies/springdatajpa
目录下创建一个包 controller
,在其中创建一个控制器类 UserController:
package com.dependencies.springdatajpa.controller;import com.dependencies.springdatajpa.entity.UserEntity;
import com.dependencies.springdatajpa.service.UserService;
import org.springframework.web.bind.annotation.*;import java.util.List;/*** @author zhizhou 2024/7/30 23:26*/
@RestController
@RequestMapping("/users")
public class UserController {private final UserService userService;public UserController(UserService userService) {this.userService = userService;}@GetMappingpublic List<UserEntity> getAllStudents() {return userService.getAllUsers();}@PostMappingpublic UserEntity saveStudent(@RequestBody UserEntity userEntity) {return userService.save(userEntity);}@DeleteMapping("/{id}")public void deleteStudent(@PathVariable Long id) {userService.delete(id);}
}
7. 创建和初始化数据库
确定 MySQL 数据库已经创建,并且在 application.properties
中配置的数据库名称、用户名和密码正确。
8. 启动项目
在 IntelliJ IDEA 中,右键点击主类 SpringDataJpaApplication(通常位于 src/main/java/com/dependencies/springdatajpa/SpringDataJpaApplication.java
),选择 Run 'SpringDataJpaApplication'
启动 Spring Boot 应用。
9. 调试
使用 Postman 或其他 HTTP 浏览器客户端,测试以下 API 端点:
- 获取所有用户:
GET http://localhost:8080/users
- 保存用户:
POST http://localhost:8080/users
- 删除用户:
DELETE http://localhost:8080/users/{id}
总结
添加依赖,配置数据源,编写实现基本的增删改查,重要的是实践。
源码:https://gitee.com/CoderChange/springboot-all-dependencies