Dvale (bibliotek)

Gå i dvale
Type ORM , Data Access Layer , Database Abstraction Layer , Persistence Framework [d] , Java Framework og Library [d]
Udvikler rød hat
Skrevet i Java
Første udgave 2001
Hardware platform Java virtuel maskine
nyeste version
Licens GNU LGPL
Internet side hibernate.org
 Mediefiler på Wikimedia Commons

Hibernate  er et bibliotek for Java -programmeringssproget designet til at løse ORM - opgaver (Object Relational Mapping), den mest populære implementering af JPA -specifikationen . Distribueres frit under betingelserne i GNU Lesser General Public License .

Giver dig mulighed for at reducere mængden af ​​programmering på lavt niveau, når du arbejder med relationelle databaser; kan bruges både i processen med at designe et system af klasser og tabeller fra bunden, og til at arbejde med en eksisterende database .

Biblioteket løser ikke kun problemet med at knytte Java-klasser til databasetabeller (og Java-datatyper med SQL -datatyper ), men giver også værktøjer til automatisk generering og opdatering af et sæt tabeller, opbygning af forespørgsler og behandling af de modtagne data, og kan væsentligt reducere udviklingstiden, som normalt bruges på manuelt at skrive SQL- og JDBC -kode. Hibernate automatiserer genereringen af ​​SQL-forespørgsler og frigør udvikleren fra manuel behandling af det resulterende datasæt og transformation af objekter, hvilket gør det så nemt som muligt at overføre (portere) applikationen til enhver SQL-database.

Hibernate giver gennemsigtig persistensunderstøttelse af " POJOs " (det vil sige for standard Java-objekter); det eneste strenge krav til en vedvarende klasse er at have en standardkonstruktør (ingen parametre). For korrekt adfærd i nogle applikationer skal du også være opmærksom på metoderne equals()og hashCode()[1] .

Der er en biblioteksport til .NET - NHibernate . Alternative ORM-frameworks til Java er MyBatis , iBATIS , TopLink , EclipseLink .

Vis

Kortlægning ( mapping , mapping, projektion) af Java-klasser med databasetabeller udføres ved hjælp af XML -konfigurationsfiler eller Java-annoteringer . Når du bruger en XML-fil, kan Hibernate generere et kildekodeskelet til persistensklasser. Dette er ikke nødvendigt, hvis der bruges en anmærkning. Hibernate kan bruge en XML-fil eller anmærkninger til at understøtte databaseskemaet .

Giver mulighed for at organisere forholdet mellem klasserne " en-til-mange " og " mange-til-mange ". Ud over at administrere relationer mellem objekter kan Hibernate også administrere refleksive relationer , hvor et objekt har en en-til-mange-relation med andre forekomster af sin egen datatype .

Hibernate understøtter kortlægning af brugerdefinerede værdityper. Dette gør følgende scenarier mulige:

Vedholdenhed

Samlinger af dataobjekter gemmes typisk som samlinger af Java-objekter, såsom Set og List. Generics introduceret i Java 5 understøttes . Hibernate kan konfigureres til lazy load samlinger. Doven indlæsning er standardindstillingen siden Hibernate 3.

Sammenkædede objekter kan konfigureres til at kaskadere operationer. For eksempel kan det overordnede klassealbum (musikalbum) konfigureres til at gemme og/eller slette dets underordnede spor. Dette kan reducere udviklingstiden og sikre integriteten af ​​. Funktionen til beskidt kontrol undgår unødvendig logning af handlinger til databasen ved kun at udføre en SQL-opdatering, når felterne med vedvarende objekter ændres.

Succesen med Hibernate-biblioteket fik JCP til at udvikle JDO-specifikationen, som er blevet en af ​​standard ORM-teknologierne i JavaEE-platformen. Hibernate er også JSR-220/317-kompatibel og giver standard JPA-faciliteter.

HQL

Hibernate giver et SQL -lignende Hibernate Query Language ( HQL), der giver dig mulighed for at udføre SQL-lignende forespørgsler skrevet ved siden af ​​Hibernate-dataobjekter. Kriterieforespørgsler leveres som et objektorienteret alternativ til HQL.

Integration

Hibernate kan bruges både i selvstændige Java -applikationer og i Java EE -programmer, der kører på en server (såsom en servlet eller EJB'er ). Det kan også inkluderes som en ekstra funktion til andre programmeringssprog. For eksempel har Adobe integreret Hibernate i den niende version af ColdFusion (kører på servere, der understøtter J2EE- applikationer ) med et abstraktionslag af nye funktioner og syntaks knyttet til CFML .

Komponenter

Hibernate ORM (før version 4.1 hed det Hibernate Core [2] ) - Hibernate core, egen API, xml-mapping (visning) af objektmetadata (understøttelse af metadata i form af annoteringer siden version 3.6) [3]

Hibernate Annotations (fra version 3.6 fusioneret med Hibernate Core / ORM) - kortlægning (mapping) ved hjælp af JDK 5.0-annoteringer, både standard for JPA og native udvidelser [4]

Hibernate EntityManager - implementering af Java Persistence API til Java SE og Java EE [5]

Hibernate Envers - revision af vedvarende klasser [6] Hibernate OGM - Object / Grid Mapper - udvidelse til lagring af data i NoSQL -lager [7]

Hibernate Shards - en ramme til databasesharding - en arkitektonisk løsning til horisontal skalering med opdeling af databasetabeller i segmenter på et eller andet grundlag uden delte ressourcer [8]

Hibernate Validator - annoteringer og API til validering og dataintegritet

Hibernate Search - Hibernate integration med Lucene søgemaskinen med det formål at indeksere og søge data

Hibernate Tools - udviklingsværktøjer til Eclipse og Ant

Hibernate Metamodel Generator er en annotationsprocessor, der genererer JSR 317 Java Persistence API (JPA 2) statiske metamodelklasser ved hjælp af JSR 269 Pluggable Annotation Processing API [9]

Versionshistorik

Version 1.0 blev udgivet i juli 2002, et år senere udkom version 2.0 og et år senere - 3.0. Udgivelsen den 16. oktober 2006 introducerede Hibernate Core, Annotations, Entity Manager (version 3.2.0.GA med JPA -understøttelse ). I december 2013 blev Hibernate ORM 4.3.0 udgivet. I september 2015 blev Hibernate ORM 5.0.2 udgivet.

Se også

Noter

  1. Retningslinjer for brug af metoderne equals( ) og hashCode() i Hibernate  (  dødt link) . Hentet 20. august 2009. Arkiveret fra originalen 6. december 2003.
  2. Om årsagen til at ændre navnet Hibernate Core -> Hibernate ORM . Hentet 5. marts 2015. Arkiveret fra originalen 18. marts 2015.
  3. HIBERNATE - Relational Persistence for Idiomatic Java (downlink) . jboss-fællesskab. Arkiveret fra originalen den 17. februar 2012. 
  4. Dvale annoteringer (downlink) . jboss-fællesskab. Arkiveret fra originalen den 17. februar 2012. 
  5. Hibernate EntityManager (downlink) . jboss-fællesskab. Arkiveret fra originalen den 17. februar 2012. 
  6. Hibernate Envers - Nem Entity Auditing (downlink) . jboss-fællesskab. Arkiveret fra originalen den 17. februar 2012. 
  7. Dvale OGM (downlink) . jboss-fællesskab. Arkiveret fra originalen den 17. februar 2012. 
  8. Glover, Andrew. Java-udvikling 2.0: Java-udvikling Wave 2: Sharding med Hibernate-skår (linket er nede) (27. februar 2012). Arkiveret fra originalen den 19. juli 2013. 
  9. Hibernate Metamodel Generator (downlink) . jboss-fællesskab. Arkiveret fra originalen den 17. februar 2012. 

Litteratur

En af de første bøger om Hibernate, skrevet af en erfaren udvikler hos Singlewire Software, der arbejdede med objektorienterede teknologier længe før den blev populær. Christian Bauer er medlem af Hibernate-udviklingsteamet, Gavin King er grundlæggeren af ​​Hibernate-projektet, medlem af EJB 3.0 (JSR 220) ekspertgruppen og førende i udviklingen af ​​Web Beans JSR 299-standarden, som bl.a. koncepterne Hibernate, JSF og EJB 3.0. Bogen beskriver den forældede version af Hibernate 2.x. Anses som en af ​​de bedste af kritikere Faktisk er dette en opdateret og revideret version af bogen "Hibernate in Action", den beskriver Hibernate 3.x og JPA . Den anden udgave af denne bog, der beskriver Hibernate 5, er planlagt til udgivelse i begyndelsen af ​​2015 (individuelle kapitler har været online siden marts 2013)

Links