Che cos'è l'ibernazione?

Ufficialmente noto come Hibernate ORM, è uno strumento o un framework di mappatura relazionale ad oggetti per il linguaggio di programmazione Java. È il software gratuito con licenza GNU Lesser General Public License 2.1. Mira a fornire all'utente il framework per gestire la mappatura dell'impedenza relazionale agli oggetti. Gestisce anche accessi persistenti al database con funzioni di gestione degli oggetti di livello molto elevato. Si tratta di un framework middleware di Java utilizzato per la mappatura relazionale di oggetti e per eseguire una persistenza efficiente degli oggetti.

Architettura

Per saperne di più sull'ibernazione, dobbiamo comprendere la sua architettura che comprende:

  • Un codice dell'applicazione Java è costituito da tutte le classi, variabili e oggetti che definiscono la logica aziendale dell'applicazione. Queste classi comunicano con l'ibernazione.
  • Poi arriva l'ibernazione e i suoi principi fondamentali, con i quali possiamo persistere (archiviare o salvare e recuperare) gli oggetti delle nostre classi di livello aziendale comunicando con il livello del server di database.
  • Utilizza l'API core Java, JDBC (Java Database Connectivity), Java Transaction API (JTA), Java Naming and Directory Interface (JNDI) per comunicare con il database al fine di mantenere lo stato di un oggetto eseguendo lettura, creazione, aggiornamento, elimina (CRUD) operazioni.

Viene utilizzato essenzialmente per comunicare con il database. Qui creiamo solo alcune entità, che non è altro che una classe Java che creerà una tabella di database per noi nel database.

Struttura

Qui ci imbattiamo in una domanda sul perché utilizziamo il framework ibernato di java se abbiamo già i principi java di base. Quindi ecco la risposta a questo:

  • Utilizzati i migliori concetti JDBC come:
  1. Rowset invece di ResultSet
  2. DataSource (pool di connessioni) anziché DriverManager
  3. Operazioni batch anziché singole operazioni
  4. PreparedStatement invece di Statement
  • Il costo di sviluppo del progetto è ridotto a un grande fattore.
  • Nessuna perdita di memoria
  • Gestire associazioni come una-a-molte, ecc. È semplice e facile rispetto a lavorare con proprietà di raccolta come java.util.Set, List, Map.
  • Essendo un framework ORM, Hibernate otterrà tutti i suoi vantaggi:
  • Supporta cache di secondo livello
  • L'oggetto diventa un record e viceversa.
  • Supporta inoltre Object Query Language (HQL)
  • Supporta più generatori di chiavi primarie

Caratteristiche di Hibernate

Quindi tutto riguardava il framework java hibernate e la sua architettura, parliamo delle caratteristiche dell'ultima stalla hibernate rilasciata 57 giorni fa, cioè il 23 febbraio 2019. Sviluppata dal software Red Hat, è una piattaforma di macchina virtuale con molte funzionalità:

  • Supporta JMX e JCA.
  • Fornisce una funzionalità di integrazione J2EE.
  • Al momento dell'inizializzazione del sistema genera SQL.
  • Facoltativamente, fornire pool di connessioni interne e cache delle istruzioni preparata.
  • Supporta il blocco ottimistico con versioning.
  • Fornisce il recupero del join esterno.
  • Presenta l'inizializzazione Lazy.
  • Fornisce cache a livello di sessione e cache di secondo livello opzionale.
  • Fornisce architettura cache a doppio strato.
  • Generazione automatica della chiave primaria.
  • Supporta il duro concetto di chiavi composite.
  • Supporta il concetto di oggetto distaccato.
  • Introduce il concetto di Dirty Checking automatico.
  • Fornisce persistenza trasparente senza elaborazione del codice byte.
  • Fornisce mappature di oggetti / relazioni. Ecco diverse strategie di mappatura O / R come multi-oggetto per mappatura a riga singola,
  • Associazioni polimorfiche, associazione bidirezionale, filtro di associazione. Fornisce inoltre documenti di mappatura XML.
  • Fornisce diversi linguaggi di query orientati agli oggetti.
  • Linguaggio di query Hibernate minimale orientato agli oggetti (HQL), query SQL native
  • Elevato concetto di criteri orientato agli oggetti.

Perché usiamo Hibernate

Qui c'erano tutte le ultime funzionalità di ibernazione. Segue il problema per cui lo usiamo, quindi ecco i motivi per cui preferiamo usare l'ibernazione:

  • Gestione delle transazioni
  • associazioni
  • Eredità
  • Sospensione della cache
  • versioning
  • Funzionalità di controllo
  • Supporto annotazione JPA
  • Pool di connessioni
  • Evitare blocchi try-catch
  • Evitare il caricamento lento
  • Riduce il codice di ripetizione

vantaggi

Informando tutto sull'ibernazione, ora è il momento di discutere l'agenda principale che è i vantaggi e gli svantaggi dell'uso dell'ibernazione. Coprendo l'argomento iniziamo con i vantaggi dell'ibernazione che sono i seguenti:

  1. ORM: la manutenzione è semplice ed economica.
  2. Persistenza trasparente
  3. Database indipendente
  4. HQL: le funzioni avanzate di HQL come l'impaginazione e la profilazione dinamica non sono presenti in SQL. Quindi possiamo usarlo in letargo.
  5. Memorizzazione nella cache a doppio strato
  6. Proprietà versione
  7. Open source e software gratuito
  8. La scalabilità è semplice
  9. Caricamento lento: il concetto di caricamento lento recupera solo l'oggetto necessario richiesto per l'esecuzione di un'applicazione.
  10. Facile da imparare
  11. Supporta anche raccolte come Elenco, Set, Mappa.
  12. capacità di generare chiavi primarie
  13. Hibernate ha fornito classi dialettali
  14. Supporta relazioni come uno-a-molti, uno-a-uno, molti-a-molti-a-molti, molti-a-uno

svantaggi

Con i vantaggi, l'ibernazione ha anche molti meno svantaggi. Quindi, ecco gli svantaggi dell'ibernazione:

  1. leggermente più lento del puro JDBC
  2. problema codice caldaia
  3. generare molte istruzioni SQL in fase di esecuzione
  4. Hibernate non è adatto per l'elaborazione in batch
  5. L'ibernazione è lenta perché utilizza la riflessione del tempo di esecuzione
  6. Molte API da imparare
  7. A volte il debug e il tuning delle prestazioni diventano difficili.
  8. Non adatto a piccoli progetti
  9. Non consente inserti multipli
  10. Genera query complesse con molti join
  11. Le query HQL non possono chiamare il programma PL / SQL

Conclusione

Quindi, con tutti questi argomenti trattati, dobbiamo anche conoscere il futuro dell'ibernazione. Possiamo dire che Hibernate sarà ancora lo strumento ORM dominante per molto più tempo dato che l'APP sta recuperando rapidamente. La mia impressione è che Hibernate sia l'implementazione più ampiamente utilizzata di JPA (prima di OpenJPA ed EclipseLink), e anche che l'API nativa o di base è ancora più potente di JPA 2. Per questi motivi, penso che rimarrà in circolazione per un lungo periodo tempo. È molto preferibile utilizzare Spring MVC in letargo in quanto è MVC più compatibile. L'uso di un framework di persistenza come Hibernate consente agli sviluppatori di concentrarsi sulla scrittura di codice di logica aziendale anziché scrivere un livello di persistenza accurato e buono che includa la scrittura di query SQL, codice JDBC, gestione delle connessioni, ecc. Quindi posso suggerire di utilizzare l'ibernazione come framework java come è il framework java più importante utilizzato al giorno d'oggi.

Articoli consigliati

Questa è stata una guida a What is Hibernate. Qui discutiamo l'architettura, le caratteristiche, il quadro, i vantaggi e gli svantaggi di Hibernate. Puoi anche dare un'occhiata ai seguenti articoli per saperne di più -

  1. Hibernate Interview Questions
  2. Che cos'è NumPy?
  3. Cos'è Open Cart?
  4. Struts 2 Domande di intervista
  5. Convenzioni di denominazione Java

Categoria: