JPA ir Hibernate skirtumas

JPA ir Hibernate skirtumas
JPA ir Hibernate skirtumas

Video: JPA ir Hibernate skirtumas

Video: JPA ir Hibernate skirtumas
Video: Kokios pasekmės gali tykoti persirgus gripo ir viršutinių ūminių kvėpavimo takų infekcijomis? 2024, Lapkritis
Anonim

JPA prieš Hibernate

Beveik visos įmonės programos turi reguliariai pasiekti reliacines duomenų bazes. Tačiau problema, su kuria susidūrė ankstesnės technologijos (pvz., JDBC), buvo varžos neatitikimas (skirtumas tarp objektinių ir reliacinių technologijų). Šios problemos sprendimas buvo pristatytas įvedant abstraktų sluoksnį, vadinamą Patvarumo sluoksniu, kuris apima prieigą prie duomenų bazės iš verslo logikos. JPA (Java Persistence API) yra sistema, skirta reliaciniams duomenims tvarkyti (naudojant patvarumo sluoksnį) Java programose. „Java“kūrėjų bendruomenėje naudojama daugybė JPA tiekėjų diegimų. Hibernate yra populiariausias toks JPA diegimas (kai kurie kiti yra DataNucleus, EclipseLink ir OpenJPA). Naujausią JPA versiją (JPA 2.0) visiškai palaiko 3.5 Hibernate, kuri buvo išleista 2010 m. kovo mėn.

Kas yra JPA?

JPA yra „Java“skirtų reliacinių duomenų valdymo sistema. Jis gali būti naudojamas su programomis, naudojančiomis JSE (Java platforma, standartinis leidimas) arba JEE (Java platforma, Enterprise Edition). Dabartinė jo versija yra JPA 2.0, kuri buvo išleista 2009 m. gruodžio 10 d. JPA pakeitė EJB 2.0 ir EJB 1.1 entity beans (kurios buvo labai kritikuojamos dėl to, kad yra sunkios Java kūrėjų bendruomenės). Nors entity beans (EJB) suteikė patvarumo objektus, daugelis kūrėjų buvo įpratę naudoti santykinai lengvus objektus, kuriuos siūlo DAO (Data Access Objects) ir kitos panašios sistemos. Dėl to buvo pristatyta JPA, kurioje buvo užfiksuota daug aukščiau paminėtų sistemų ypatybių.

Pastovumas, kaip aprašyta JPA, apima API (apibrėžta javax.patvarumas), JPQL (Java platforma, Enterprise Edition) ir metaduomenys, reikalingi reliaciniams objektams. Patvarumo objekto būsena paprastai išlaikoma lentelėje. Objekto egzemplioriai atitinka reliacinės duomenų bazės lentelės eilutes. Metaduomenys naudojami ryšiams tarp objektų išreikšti. Anotacijos arba atskiri XML deskriptorių failai (diegiami kartu su programa) naudojami metaduomenims nurodyti objektų klasėse. JPQL, kuris yra panašus į SQL užklausas, naudojamas saugomiems objektams pateikti.

Kas yra užmigdymo režimas?

Hibernate yra sistema, kurią galima naudoti objektų santykiniam atvaizdavimui, skirtai Java programavimo kalbai. Tiksliau, tai yra ORM (objektų santykio atvaizdavimo) biblioteka, kurią galima naudoti objektų santykiniam modeliui susieti su įprastiniu reliaciniu modeliu. Paprastais žodžiais tariant, jis sukuria susiejimą tarp Java klasių ir lentelių reliacinėse duomenų bazėse, taip pat tarp Java ir SQL duomenų tipų. Hibernate taip pat gali būti naudojamas duomenų užklausoms ir nuskaitymui generuojant SQL skambučius. Todėl programuotojas atleidžiamas nuo rankinio rezultatų rinkinių tvarkymo ir objektų konvertavimo. Hibernate išleidžiama kaip nemokama atvirojo kodo sistema, platinama pagal GNU licenciją. JPA API įdiegimas pateikiamas 3.2 ir naujesnėse versijose „Hibernate“. Gavinas Kingas yra Hibernate įkūrėjas.

Kuo skiriasi JPA ir Hibernate?

JPA yra reliacinių duomenų valdymo sistema Java programose, o Hibernate yra specifinis JPA įgyvendinimas (todėl idealiu atveju JPA ir Hibernate negali būti tiesiogiai lyginami). Kitaip tariant, „Hibernate“yra viena iš populiariausių JPA sistemų. Hibernate įgyvendina JPA per Hibernate Annotation ir EntityManager bibliotekas, kurios yra įdiegtos ant Hibernate Core bibliotekų. Tiek „EntityManager“, tiek „Annotations“atitinka „Hibernate“gyvavimo ciklą. Naujausią JPA versiją (JPA 2.0) visiškai palaiko „Hibernate 3.5“. JPA turi standartizuotos sąsajos pranašumą, todėl kūrėjų bendruomenė su ja bus geriau susipažinusi nei su Hibernate. Kita vertus, vietinės „Hibernate“API gali būti laikomos galingesnėmis, nes jos funkcijos yra didesnės nei JPA funkcijos.

Rekomenduojamas: