Wat is Hibernate?

Officieel bekend als Hibernate ORM, het is een object-relationeel kaarttool of framework voor de programmeertaal Java. Het is de gratis software onder GNU Lesser General Public License 2.1. Het is bedoeld om de gebruiker het raamwerk te bieden om object-relationele impedantie in kaart te brengen. Het beheert ook persistente database-toegangen met objectfuncties op zeer hoog niveau. Het is een middleware-raamwerk van Java dat wordt gebruikt voor object-relationele toewijzing en voor het uitvoeren van efficiënte objectpersistentie.

architectuur

Voor meer informatie over winterslaap moeten we de architectuur begrijpen die bestaat uit:

  • Een Java-toepassingscode bestaat uit alle klassen, variabelen en objecten die de bedrijfslogica van de toepassing definiëren. Deze klassen communiceren met de Hibernate.
  • Dan komt de Hibernate en zijn kernprincipes, waarmee we de objecten van onze bedrijfslaagklassen kunnen volhouden (opslaan of opslaan en ophalen) door te communiceren met de databaseserverlaag.
  • Het maakt gebruik van de Java Core API, Java Database Connectivity (JDBC), Java Transaction API (JTA), Java Naming en Directory Interface (JNDI) om te communiceren met de database om de status van een object te behouden door lezen, maken, bijwerken uit te voeren, verwijder (CRUD) bewerkingen.

Het wordt in principe gebruikt om te communiceren met de database. Hier maken we slechts enkele entiteiten, wat niets anders is dan een Java-klasse die een databasetabel voor ons in de database zal maken.

Kader

Hier stuiten we op de vraag waarom we het winterslaapraamwerk van Java gebruiken als we al de kernprincipes van Java hebben. Dus hier is het antwoord daarop:

  • De beste JDBC-concepten gebruikt, zoals:
  1. Rowset in plaats van ResultSet
  2. DataSource (pooling van verbindingen) in plaats van DriverManager
  3. Batchbewerkingen in plaats van individuele bewerkingen
  4. PreparedStatement in plaats van Statement
  • De kosten voor projectontwikkeling worden tot een grote factor gereduceerd.
  • Geen geheugen lekt
  • Het beheren van associaties zoals één-op-veel, enz. Is eenvoudig en gemakkelijk in vergelijking met het werken met verzameleigenschappen zoals java.util.Set, List, Map.
  • Als een ORM-framework krijgt de Hibernate al zijn voordelen:
  • Ondersteunt tweede niveau cache
  • Het object wordt een record en vice versa.
  • Ondersteunt ook Object Query Language (HQL)
  • Ondersteunt meerdere primaire sleutelgenerators

Kenmerken van Hibernate

Dus het ging allemaal om het Java Hibernate Framework en de architectuur, laten we het hebben over de functies van de nieuwste winterslaapstal die 57 dagen geleden werd uitgebracht, dwz 23 februari 2019. Ontwikkeld door de Red Hat-software, is het een virtueel machineplatform met veel functies:

  • Het ondersteunt JMX en JCA.
  • Het biedt een functie van J2EE-integratie.
  • Tijdens de initialisatie van het systeem genereert het SQL.
  • Optioneel bieden interne pooling van verbindingen en voorbereide caching van instructies.
  • Het ondersteunt optimistische vergrendeling met versiebeheer.
  • Het biedt het ophalen van de buitenste join.
  • Het introduceert Lazy initialisatie.
  • Het biedt cache op sessieniveau en optionele cache op het tweede niveau.
  • Het biedt Dual-layer Cache Architecture.
  • Automatisch genereren van de primaire sleutel.
  • Het ondersteunt het stoere concept van samengestelde toetsen.
  • Het ondersteunt een vrijstaand objectconcept.
  • Het introduceert automatisch Dirty Checking-concept.
  • Het biedt transparante persistentie zonder bytecodeverwerking.
  • Het biedt object / relationele toewijzingen. Hier zijn verschillende O / R-toewijzingsstrategieën als meerdere objecten tot eenrijige toewijzing,
  • Polymorfe associaties, bidirectionele associatie, associatiefiltering. Het biedt ook XML-mappingdocumenten.
  • Het biedt verschillende objectgeoriënteerde query-talen.
  • Minimale objectgeoriënteerde Hibernate-querytaal (HQL), native SQL-query's
  • Hoog objectgericht concept van criteria.

Waarom we Hibernate gebruiken

Hier waren de nieuwste functies van de slaapstand. Vervolgens komt het probleem dat we het gebruiken, dus hier zijn de redenen waarom we de voorkeur geven aan de slaapstand:

  • Transactiebeheer
  • verenigingen
  • Erfenis
  • Slaapstand caching
  • Versioning
  • Auditfunctionaliteit
  • Ondersteuning voor JPA-annotaties
  • Verbinding poolen
  • Try-catch-blokken vermijden
  • Vermijd lui laden
  • Vermindert herhaalcode

voordelen

Alles kort over winterslaap, nu is het tijd om de belangrijkste agenda te bespreken, namelijk de voor- en nadelen van het gebruik van de winterslaap. Laten we het onderwerp behandelen en beginnen met de voordelen van winterslaap, die als volgt zijn:

  1. ORM - onderhoud is eenvoudig en kostenbesparend.
  2. Transparante persistentie
  3. Database onafhankelijk
  4. HQL - HQL's geavanceerde functies zoals paginering en dynamische profilering zijn niet aanwezig in SQL. Dus we kunnen het gebruiken in de slaapstand.
  5. Dubbellaags caching
  6. Versie-eigenschap
  7. Open source en gratis software
  8. Schaalbaarheid is eenvoudig
  9. Lazy-Loading - Het concept voor lui laden haalt alleen het benodigde object op dat nodig is voor de uitvoering van een applicatie.
  10. Makkelijk te leren
  11. Ondersteunt ook collecties zoals Lijst, Set, Kaart.
  12. mogelijkheid om primaire sleutels te genereren
  13. Slaapstand geboden Dialect-klassen
  14. Het ondersteunt relaties zoals One-To-Many, One-To-One, Many-To-Many-Many-Many-To-One

nadelen

Met de voordelen heeft winterslaap ook minder nadelen. Dus hier zijn de nadelen van winterslaap:

  1. iets langzamer dan pure JDBC
  2. boilerplate code probleem
  3. genereer veel SQL-instructies in runtime
  4. Slaapstand is niet geschikt voor batchverwerking
  5. De slaapstand is traag omdat deze runtime-reflectie gebruikt
  6. Veel API om te leren
  7. Soms wordt debuggen en het afstemmen van prestaties moeilijk.
  8. Niet geschikt voor kleine projecten
  9. Staat meerdere invoegingen niet toe
  10. Genereert complexe quires met veel joins
  11. HQL-query's kunnen het PL / SQL-programma niet aanroepen

Conclusie

Dus met al deze onderwerpen moeten we ook weten over de toekomst van de winterslaap. We kunnen zeggen dat Hibernate nog steeds veel langer de dominante ORM-tool zal zijn, gezien het feit dat JPA snel aan het inhalen is. Mijn indruk is dat Hibernate de meest gebruikte implementatie van JPA is (vóór OpenJPA en EclipseLink), en ook dat de native of kern-API nog steeds krachtiger is dan JPA 2. Alleen al om die redenen denk ik dat het nog lang zal bestaan tijd. Het heeft de voorkeur om Spring MVC te gebruiken in de slaapstand, omdat dit het meest compatibel is met MVC. Met behulp van een persistentie raamwerk zoals Hibernate kunnen ontwikkelaars zich concentreren op het schrijven van bedrijfslogica code in plaats van het schrijven van een nauwkeurige en goede persistentie laag, waaronder het schrijven van de SQL Queries, JDBC Code, verbindingsbeheer, enz. Dus ik kan voorstellen om hibernate te gebruiken als het Java-raamwerk als het is het meest prominente Java-framework dat tegenwoordig wordt gebruikt.

Aanbevolen artikelen

Dit is een gids geweest voor What is Hibernate. Hier bespreken we de architectuur, functies, framework, voordelen en nadelen van Hibernate. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Vragen tijdens solliciteren bij Hibernate
  2. Wat is NumPy?
  3. Wat is Open winkelwagen?
  4. Struts 2 Sollicitatievragen
  5. Java-naamgevingsconventies