中國最頂尖的平面設計公司網(wǎng)站優(yōu)化最為重要的內(nèi)容是
JPA簡介
1. JPA是什么
JPA是Sun官方提出的Java持久化規(guī)范,它為Java開發(fā)人員提供了一種對象/關(guān)聯(lián)映射工具來管理Java應用中的關(guān)系數(shù)據(jù),通過注解或者XML描述“對象-關(guān)系表”之間的映射關(guān)系,并將實體對象持久化到數(shù)據(jù)庫中,極大地簡化現(xiàn)有的持久化開發(fā)工作以及集成ORM技術(shù)。
JPA不是一種新的ORM框架,它的出現(xiàn)主要是為了簡化現(xiàn)有的持久化開發(fā)工作和整合ORM技術(shù),結(jié)束現(xiàn)在Hibernate,TopLink,JDO等ORM框架各自為營的局面。它是一套規(guī)范而不是產(chǎn)品,而像Hibernate、TopLink等產(chǎn)品實現(xiàn)了JPA規(guī)范,我們就可以稱它們?yōu)镴PA的實現(xiàn)產(chǎn)品,關(guān)系如圖所示。
2. JAP能做什么
JPA是在充分吸收了現(xiàn)有的Hibernate、TopLink、JDO等ORM框架的基礎上發(fā)展而來的,具有易于使用、伸縮性強等優(yōu)點。總的來說,JPA包括以下3方面的技術(shù):
1)ORM映射元數(shù)據(jù):JPA支持XML和JDK 5.0注解兩種元數(shù)據(jù)的形式,元數(shù)據(jù)描述對象和表之間的映射關(guān)系,框架據(jù)此將實體對象持久化到數(shù)據(jù)庫表中。
2)Java持久化API:用來操作實體對象,執(zhí)行增、刪、改、查(CRUD)操作,框架在后臺替代我們完成所有的事情,將開發(fā)者從煩瑣的JDBC和SQL代碼中解脫出來。
3)查詢語言(JPQL):這是持久化操作中重要的一個方面,通過面向?qū)ο蠖敲嫦驍?shù)據(jù)庫的查詢語言查詢數(shù)據(jù),避免程序的SQL語句緊密耦合。
JPA解放了我們對數(shù)據(jù)庫的操作,使得開發(fā)者不再需要關(guān)心數(shù)據(jù)庫的表結(jié)構(gòu),需要更改的時候只需要修改對應實體類的屬性即可。在微服務架構(gòu)中,服務拆分得越來越細,微服務內(nèi)部只需要關(guān)心自身的業(yè)務,不需要我們過多關(guān)注數(shù)據(jù)庫。因此,在微服務架構(gòu)中更推薦使用JPA技術(shù)。
Spring Data對JPA的支持
Spring Data JPA是Spring在ORM框架、JPA規(guī)范的基礎上封裝的一套JPA應用框架。
在相當長的一段時間內(nèi),實現(xiàn)應用程序的數(shù)據(jù)訪問一直很麻煩,必須編寫大量的SQL代碼來執(zhí)行數(shù)據(jù)查詢、更新等操作。使用Spring Data JPA開發(fā)人員只需要編寫repository接口和自定義查找器方法,其他的SQL語句由Spring自動提供,使得開發(fā)者從煩瑣的JDBC和SQL代碼中解脫出來。
雖然主流的ORM框架都實現(xiàn)了JPA規(guī)范,但是在不同ORM框架之間切換需要編寫各自的代碼,而通過使用Spring Data Jpa能夠方便開發(fā)者在不同的ORM框架之間進行切換而無需要更改任何代碼。這樣方便開發(fā)者在Spring Boot項目中使用JPA技術(shù),具體關(guān)系如圖所示。