淺談 Spring Data JPA

Spring Data JPA

Spring Data JPA是基於Spring的ORMJPA規範的一個框架。使用該框架在項目中使用極短的代碼就能進行增刪改查操作。
只需要新建一個接口去繼承JpaRepository接口,而不用去寫一個實現類實現該接口,因爲Spring會動態生成項目所需要的實現類進行注入,通過該接口就可以進行簡單的增刪改查,分頁,排序等操作。
當然該接口支持簡單的自定義查詢方式,且有固定的查詢方法命名規範

ORM

ORM(Object Relational Mapping) 對象關係型映射。
是定義數據庫和對象之間映射關係的元數據(定義數據庫和表結構的信息),用於將對象信息保存到數據庫中。
本質上是將數據從一種形式(對象)轉化到另一種形式(mysql數據)。

JPA

JPA(Java Persistence API)是一種規範,是Java持久化API,JPA基於ORM,可以簡化持久層代碼,易於使用。
API:操作對象來進行增刪改查操作。

Spring Data JPA常用接口

1 repository 是所有Spring Data JPA 常用接口的父接口,而且是空接口,統一類型,讓組件掃描能進行識別。
2 CrudRepository 是1的子接口,可以進行增刪改查操作。
3 PagingAndSortingRepository 是2的子接口,在2的功能上增加分頁和排序功能。
4 JpaRepository 是3的子接口,在3的基礎上增加一些實用功能,如:批量操作。(常用該接口)
5 還有一個用來條件查詢的接口:JpaSpecificationExecutor,負責動態條件查詢的接口。

public interface FriendRepository extends JpaRepository<Friend,Integer>,JpaSpecificationExecutor<Friend>{

}

查詢方法命名規範

1:findBy+屬性名(通過屬性名準確查詢)
select * from 表名 where 屬性名=
在這裏插入圖片描述
在這裏插入圖片描述
2:findBy+屬性名+Like(通過屬性名模糊查詢)
select * from 表名 where 屬性名 like ("%"+屬性名+"%")
在這裏插入圖片描述
3:findBy屬性名And屬性名(通過多個屬性名查詢)將and換成or就是將並列關係換成“或”的關係。
select * from 表名 where 屬性名= ?and 屬性名=?
在這裏插入圖片描述
4:findByOrderBy屬性名2Desc(排序,Desc倒序,Asc正序。
如果僅僅對單屬性排序(無屬性1)findBy可省略不寫。
select * from 表名 orderBy 屬性名 Desc
在這裏插入圖片描述
findBy+屬性名1+OrderBy屬性名2Desc
select * from 表名 where 屬性名1=? orderBy 屬性名2 Desc
在這裏插入圖片描述
。。。
還有很多方法如下圖所示:
圖片來源:https://www.jianshu.com/p/1d6f27f675bb
圖片來源:https://www.jianshu.com/p/1d6f27f675bb

repository接口和數據庫展示

在這裏插入圖片描述
在這裏插入圖片描述

參考文獻

Spring Data JPA方法名命名規則:https://www.jianshu.com/p/1d6f27f675bb

寫在最後

本文爲小編個人理解並參考所作,參考文獻已經放入本文中展示,如有錯誤或侵權請聯繫小編刪除或修改!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章