SpringBoot JpaRepository 教程展示了如何使用 JpaRepository 在 Spring Boot 应用中管理数据。
Spring 是流行的 Java 应用框架。 Spring Boot 致力于以最小的努力创建独立的,基于生产级别的基于 Spring 的应用。
Spring Data
Spring Data 是用于数据访问的基于 Spring 的编程模型。 它减少了使用数据库和数据存储所需的代码量。 它由几个模块组成。 Spring Data JPA 简化了使用 JPA 技术的 Spring 应用的开发。
使用 Spring Data,我们为应用中的每个域实体定义了一个存储库接口。 存储库包含用于执行 CRUD 操作,对数据进行排序和分页的方法。 @Repository
是标记注解,指示基础接口是存储库。 通过扩展特定的存储库接口(例如CrudRepository
,PagingAndSortingRepository
或JpaRepository
)来创建存储库。
Spring Data 已与 Spring MVC 控制器进行了高级集成,并提供了从存储库方法名称派生的动态查询。
JpaRepository
JpaRepository
是Repository
的 JPA 特定扩展。 它包含CrudRepository
和PagingAndSortingRepository
的完整 API。 因此,它包含用于基本 CRUD 操作的 API,以及用于分页和排序的 API。
Spring Boot JpaRepository
示例
以下 Spring Boot 应用使用JpaRepository
管理City
实体。 数据保存在 H2 数据库中。 该应用是一个控制台程序。
这是项目结构。
pom.xml
这是 Maven 构建文件。 spring-boot-starter-data-jpa
是将 Spring Data JPA 与 Hibernate 结合使用的入门工具。
resources/application.properties
application.properties
是主要的 Spring Boot 配置文件。 使用spring.main.banner-mode
属性,我们可以关闭 Spring 标语。 logging.pattern.console
定义控制台的日志模式。
com/zetcode/model/City.java
这是City
实体。 它包含以下属性:id
,name
和population
。
com/zetcode/repository/CityRepository.java
CityRepository
从JpaRepository
延伸。 它提供了实体的类型及其主键。
Note: In Java enterprise applications it is a good practice to define a service layer that works with repositories. For simplicity reasons, we skip the service layer.
com/zetcode/MyRunner.java
在MyRunner
中,我们使用JpaRepository
的各种方法。
我们将CityRepository
注入cityRepository
字段。
使用save()
插入一个新城市。
我们用count()
计算城市数。
使用findAll()
,我们可以到达所有城市。
通过将Sort
对象传递给findAll()
方法,我们得到了所有城市的降序排列。
我们使用deleteAllInBatch()
批量删除所有城市。
com/zetcode/Application.java
Application
设置 Spring Boot 应用。
这是一个示例输出。
在本教程中,我们使用JpaRepository
管理了应用数据。