1. 程式人生 > >JPA、Hibernate、Spring data jpa之間的關係,終於明白了

JPA、Hibernate、Spring data jpa之間的關係,終於明白了

什麼麼是JPA?

全稱Java Persistence API,可以通過註解或者XML描述【物件-關係表】之間的對映關係,並將實體物件持久化到資料庫中。

為我們提供了:

1)ORM對映元資料:JPA支援XML和註解兩種元資料的形式,元資料描述物件和表之間的對映關係,框架據此將實體物件持久化到資料庫表中;

如:@Entity、@Table、@Column、@Transient等註解。

 2)JPA 的API:用來操作實體物件,執行CRUD操作,框架在後臺替我們完成所有的事情,開發者從繁瑣的JDBC和SQL程式碼中解脫出來。

如:entityManager.merge(T t);

 3)JPQL查詢語言:通過面向物件而非面向資料庫的查詢語言查詢資料,避免程式的SQL語句緊密耦合。

如:from Student s where s.name = ?

但是:

JPA僅僅是一種規範,也就是說JPA僅僅定義了一些介面,而介面是需要實現才能工作的。所以底層需要某種實現,而Hibernate就是實現了JPA介面的ORM框架。

也就是說:

JPA是一套ORM規範,Hibernate實現了JPA規範!如圖:

什麼是spring data jpa?

spirng data jpa是spring提供的一套簡化JPA開發的框架,按照約定好的【方法命名規則】寫dao層介面,就可以在不寫介面實現的情況下,實現對資料庫的訪問和操作。同時提供了很多除了CRUD之外的功能,如分頁、排序、複雜查詢等等。

Spring Data JPA 可以理解為 JPA 規範的再次封裝抽象,底層還是使用了 Hibernate 的 JPA 技術實現。如圖:

介面約定命名規則:

例項:

springboot整合spring data jpa只需兩步:

第一步:匯入maven座標

第二步:yml配置檔案中配置jpa資訊

來源於: