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 .
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:
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.
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.
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 .
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]
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.
Java Persistence API | |
---|---|
|
Java | |
---|---|
Platforme | |
Sun Technologies | |
Nøgle tredjepartsteknologier | |
Historie |
|
Sprogegenskaber | |
Scripting sprog |
|
Java konferencer |
|