Spring Data JPA 的基本用法

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 Data JPA 官方文档

Spring Data JPA 基本使用

Spring Data JPA(一)简介

《Spring Boot 实战》

每天学习一点点,每天进步一点点。

原文地址:https://www.cnblogs.com/youcoding/p/13784351.html