Dallimi midis JPA dhe Hibernate

Dallimi midis JPA dhe Hibernate
Dallimi midis JPA dhe Hibernate

Video: Dallimi midis JPA dhe Hibernate

Video: Dallimi midis JPA dhe Hibernate
Video: Pascal и Delphi живы? / История / Популярность / Мифы / Возможности / Преимущества и недостатки 2024, Nëntor
Anonim

JPA vs Hibernate

Pothuajse të gjitha aplikacionet e ndërmarrjeve duhet të kenë akses rregullisht në bazat e të dhënave relacionale. Por një problem i hasur me teknologjitë e mëparshme (si JDBC) ishte mospërputhja e rezistencës (ndryshimi midis teknologjive të orientuara drejt objektit dhe atyre relacionale). Një zgjidhje për këtë problem u prezantua përmes prezantimit të një shtrese abstrakte të quajtur shtresa e qëndrueshmërisë, e cila përfshin aksesin në bazën e të dhënave nga logjika e biznesit. JPA (Java Persistence API) është një kornizë e dedikuar për menaxhimin e të dhënave relacionale (duke përdorur shtresën e qëndrueshmërisë) në aplikacionet Java. Ka shumë implementime të shitësve të JPA të përdorura brenda komunitetit të zhvilluesve Java. Hibernate është implementimi më i popullarizuar i tillë i JPA (DataNucleus, EclipseLink dhe OpenJPA janë disa të tjera). Versioni më i ri JPA (JPA 2.0) mbështetet plotësisht nga Hibernate 3.5, i cili u lëshua në mars 2010.

Çfarë është JPA?

JPA është një kornizë për menaxhimin e të dhënave relacionale për Java. Mund të përdoret me aplikacione që përdorin JSE (Java Platform, Standard Edition) ose JEE (Java Platform, Enterprise Edition). Versioni i tij aktual është JPA 2.0, i cili u lëshua më 10 dhjetor 2009. JPA zëvendësoi fasulet e entitetit EJB 2.0 dhe EJB 1.1 (të cilat u kritikuan rëndë për peshën e rëndë nga komuniteti i zhvilluesve Java). Megjithëse fasulet e entitetit (në EJB) siguruan objekte të qëndrueshmërisë, shumë zhvillues u përdorën për të përdorur objekte relativisht të lehta të ofruara nga DAO (Objektet e Aksesit të të Dhënave) dhe korniza të tjera të ngjashme. Si rezultat, JPA u prezantua dhe kapi shumë nga tiparet e rregullta të kornizave të përmendura më sipër.

Këmbëngulja siç përshkruhet në JPA mbulon API-në (përcaktuar në javax.këmbëngulje), JPQL (Java Platform, Enterprise Edition) dhe metadatat e nevojshme për objektet relacionale. Gjendja e një entiteti të qëndrueshëm zakonisht ruhet në një tabelë. Instancat e një entiteti korrespondojnë me rreshtat e tabelës së bazës së të dhënave relacionale. Metadatat përdoren për të shprehur marrëdhëniet ndërmjet entiteteve. Shënime ose skedarë të veçantë përshkrues XML (të vendosura me aplikacionin) përdoren për të specifikuar meta të dhënat në klasat e entitetit. JPQL, e cila është e ngjashme me pyetjet SQL, përdoret për të kërkuar entitete të ruajtura.

Çfarë është Hibernate?

Hibernate është një kornizë që mund të përdoret për hartëzimin relacional të objektit të destinuar për gjuhën e programimit Java. Më konkretisht, është një bibliotekë ORM (object-relational mapping) që mund të përdoret për të hartuar modelin relacional të objektit në modelin relacional konvencional. Me fjalë të thjeshta, ai krijon një hartë midis klasave Java dhe tabelave në bazat e të dhënave relacionale, gjithashtu midis llojeve të të dhënave Java në SQL. Hibernate mund të përdoret gjithashtu për kërkimin dhe marrjen e të dhënave duke gjeneruar thirrje SQL. Prandaj, programuesi është i çliruar nga trajtimi manual i grupeve të rezultateve dhe objekteve të konvertimit. Hibernate lëshohet si një kornizë falas dhe me burim të hapur, e shpërndarë nën licencën GNU. Një zbatim për JPA API ofrohet në Hibernate 3.2 dhe versionet e mëvonshme. Gavin King është themeluesi i Hibernate.

Cili është ndryshimi midis JPA dhe Hibernate?

JPA është një kornizë për menaxhimin e të dhënave relacionale në aplikacionet Java, ndërsa Hibernate është një zbatim specifik i JPA (pra, në mënyrë ideale, JPA dhe Hibernate nuk mund të krahasohen drejtpërdrejt). Me fjalë të tjera, Hibernate është një nga kornizat më të njohura që zbaton JPA. Hibernate zbaton JPA përmes bibliotekave Hibernate Annotation dhe EntityManager që zbatohen në krye të bibliotekave Hibernate Core. Si EntityManager ashtu edhe Annotations ndjekin ciklin jetësor të Hibernate. Versioni më i ri JPA (JPA 2.0) mbështetet plotësisht nga Hibernate 3.5. JPA ka përfitimin e të paturit një ndërfaqe të standardizuar, kështu që komuniteti i zhvilluesve do të jetë më i njohur me të sesa Hibernate. Nga ana tjetër, API-të vendase Hibernate mund të konsiderohen më të fuqishme, sepse veçoritë e tij janë një superbashkësi e asaj të JPA.

Recommended: