什麼麼是JPA?spring
全稱Java Persistence API,能夠經過註解或者XML描述【對象-關係表】之間的映射關係,並將實體對象持久化到數據庫中。sql
爲咱們提供了:數據庫
1)ORM映射元數據:JPA支持XML和註解兩種元數據的形式,元數據描述對象和表之間的映射關係,框架據此將實體對象持久化到數據庫表中;springboot
如:@Entity、@Table、@Column、@Transient等註解。app
2)JPA 的API:用來操做實體對象,執行CRUD操做,框架在後臺替咱們完成全部的事情,開發者從繁瑣的JDBC和SQL代碼中解脫出來。框架
如:entityManager.merge(T t);maven
3)JPQL查詢語言:經過面向對象而非面向數據庫的查詢語言查詢數據,避免程序的SQL語句緊密耦合。spring-boot
如:from Student s where s.name = ?spa
可是:hibernate
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座標
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
第二步:application.properties配置文件中配置jpa信息
spring.jpa.show-sql=true
spring.jpa.database=MYSQL
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect