什么是JPA
定義
JPA(Java Persistence API),Java持久層API圃酵,是JDK 5.0注解或XML描述對象-關(guān)系表的映射關(guān)系肖卧,并將運行期的實體對象持久化到數(shù)據(jù)庫中冯勉。
優(yōu)勢
簡單方便
JPA的主要目標之一就是提供更加簡單的編程模型:在JPA框架下創(chuàng)建實體和創(chuàng)建Java 類一樣簡單刊殉,沒有任何的約束和限制,只需要使用 javax.persistence.Entity進行注釋盛正,JPA的框架和接口也都非常簡單关摇,沒有太多特別的規(guī)則和設(shè)計模式的要求,開發(fā)者可以很容易地掌握肆汹。
查詢能力
JPA定義了獨特的JPQL(Java Persistence Query Language)愚墓,JPQL是EJB QL的一種擴展予权,它是針對實體的一種查詢語言,操作對象是實體浪册,而不是關(guān)系數(shù)據(jù)庫的表扫腺,而且能夠支持批量更新和修改、JOIN议经、GROUP BY斧账、HAVING 等通常只有 SQL 才能夠提供的高級查詢特性,甚至還能夠支持子查詢煞肾。
高級特性
JPA 中能夠支持面向?qū)ο蟮母呒壧匦赃种珙愔g的繼承、多態(tài)和類之間的復(fù)雜關(guān)系籍救,這樣的支持能夠讓開發(fā)者最大限度的使用面向?qū)ο蟮哪P驮O(shè)計企業(yè)應(yīng)用习绢,而不需要自行處理這些特性在關(guān)系數(shù)據(jù)庫的持久化。
什么是ORM
定義
ORM(Object Relational Mapping)是一種程序技術(shù)蝙昙,用于實現(xiàn)面向?qū)ο缶幊陶Z言里不同類型系統(tǒng)的數(shù)據(jù)之間的轉(zhuǎn)換闪萄。從效果上說,它其實是創(chuàng)建了一個可在編程語言里使用的--“虛擬對象數(shù)據(jù)庫”奇颠。
什么是Hibernate
定義
Hibernate是一個開放源代碼的對象關(guān)系映射框架败去,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數(shù)據(jù)庫表建立映射關(guān)系烈拒,是一個全自動的orm框架圆裕,hibernate可以自動生成SQL語句,自動執(zhí)行荆几,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫吓妆。
版本
Hibernate版本更新速度很快,目前為止有多個階段性的版本:Hibernate3吨铸,Hibernate4和Hibernate5
Spring Data JPA
Spring官網(wǎng)
https://projects.spring.io/spring-data-jpa/