Spring Data JPA 介绍
JPA 是 Java Persistence API 的简称,中文名为 Java 持久层 API。
可以理解为 JPA 规范的再次封装抽象,底层还是使用了 Hibernate 的 JPA 技术实现,引用 JPQL(Java Persistence Query Language)查询语言,属于 Spring 整个生态体系的一部分。
简单示例
1. 导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- 使用嵌入式 H2 数据库 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
2、创建实体类
@Data
@Entity
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String reader;
private String isbn;
private String title;
private String author;
private String description;
}
注解 @Data 出自依赖 lombok ,它会自动生成 setting/getting 方法。
@Entity 注解表明它是一个 JPA 实体,id 属性加了 @Id 和 @GeneratedValue 注解,说明这个字段是实体的唯一标识,并且这个字段的值是自动生成的。
3、定义仓库接口
package com.example.readinglist.data;
import com.example.readinglist.bean.Book;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* @author 爱吃西瓜的番茄酱
* @version 1.0
* @date 2020/10/8 14:49
*
* Spring Data Jpa 提供了很神奇的魔法,
* 只需定义仓库接口,在应用程序启动后,
* 该接口在运行时会自动实现。
*/
public interface ReadingListRepository extends JpaRepository<Book, Long> {
/**
* 根据读者的用户名来查找阅读列表。
* @param reader
* @return
*/
List<Book> findByReader(String reader);
}
通过扩展 JpaRepository, ReadingListRepository 直接继承了18个执行常用持久化操作的方法。
JpaRepository 是个泛型接口,有两个参数:仓库操作的领域对象类型,及其ID属性的类型。
此外,我还增加了一个 findByReader() 方法,可以根据读者的用户名来查找阅读列表。
我们不需要定义 ReadingListRepository 接口的实现类。Spring Data 提供了很神奇的魔法,只需定义仓库接口,在应用程序启动后,该接口在运行时会自动实现。
4、使用 Spring MVC 创建 Web 界面
5、创建逻辑视图,就是 HTML 文件
基本的 Spring Data JPA 操作如上所示。
参考资料
《Spring Boot 实战》
每天学习一点点,每天进步一点点。