2.8 KiB
2.8 KiB
spring-boot-data-jpa
本项目演示 Spring Boot + JPA 访问关系型数据库,支持基本的 CRUD 操作以及直接支持 REST 接口方式访问数据。
本项目默认使用 Mysql 数据库,测试环境使用 H2 数据库。
依赖环境:
使用说明
创建数据库
执行以下 sql 创建数据库 spring_boot_tutorial
DROP DATABASE IF EXISTS spring_boot_tutorial;
CREATE DATABASE spring_boot_tutorial;
修改数据源
修改 application.properties
文件中的数据源为真实的数据源。
注意:Mysql8 和 Mysql5 客户端驱动的驱动类是不同的。
spring.datasource.url = jdbc:mysql://localhost:3306/spring_tutorial?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
spring.datasource.username = root
spring.datasource.password = root
构建
在项目根目录下执行 maven 指令。
mvn clean package -DskipTests=true
启动
cd target
java -jar spring-boot-data-jpa-1.0.0.jar
启动后,应该会看到控制台打印类似如下信息:
... ...
20:22:33.401 [main] [INFO ] i.g.d.s.SpringBootDataJpaApplication$$EnhancerBySpringCGLIB$$a0a040c6.printDataSourceInfo - DataSource Url: jdbc:mysql://localhost:3306/spring_tutorial?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
20:22:33.402 [main] [INFO ] i.g.d.s.SpringBootDataJpaApplication$$EnhancerBySpringCGLIB$$a0a040c6.run - Connect to datasource success.
... ...
应用启动后,会自动根据 resources/sql
目录下的 sql 初始化数据。
检查数据库会发现,在数据库 spring_boot_tutorial
中新建了一张 user
表,并插入了 2 条数据。
访问 JPA REST
打开浏览器,访问 http://localhost:8080/user 可以看到,JPA 帮我们自动生成了 REST 应答内容。
这个 REST 接口是根据本项目中的 io.github.dunwu.springboot.data.UserRepository
类中的如下代码定义自动生成的:
@RepositoryRestResource(collectionResourceRel = "user", path = "user")public interface UserRepository extends JpaRepository<User, Long> {
单元测试
- 执行
SpringBootDataJpaTest
可以更直观的看到 JPA 模式下的 CRUD 操作。 - 执行
SpringBootDataJpaRestTest
可以更直观的看到 REST JPA 模式下的 CRUD 操作。