Spring Data JPA
Spring Data JPA是基於Spring的ORM,JPA規範的一個框架。使用該框架在項目中使用極短的代碼就能進行增刪改查操作。
只需要新建一個接口去繼承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
。。。
還有很多方法如下圖所示:
repository接口和數據庫展示
參考文獻
Spring Data JPA方法名命名規則:https://www.jianshu.com/p/1d6f27f675bb
寫在最後
本文爲小編個人理解並參考所作,參考文獻已經放入本文中展示,如有錯誤或侵權請聯繫小編刪除或修改!!!