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 實戰》

每天學習一點點,每天進步一點點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM