Differenza tra JDBC e Hibernate

JDBC vs Hibernate

Java Database Connectivity (noto anche come JDBC) è un'API appositamente creata per il linguaggio di programmazione Java. Definisce come un client è in grado di accedere a un database fornendo metodi per interrogare e aggiornare i dati in un database. È orientato in modo più specifico verso i database relazionali. È stato introdotto per la prima volta sul mercato come parte della piattaforma Java 2, Standard Edition, versione 1.1 (o J2SE). È stato fornito in bundle con un JDBC di implementazione di riferimento al bridge ODBC, abilitando le connessioni con l'API a qualsiasi origine dati accessibile ODBC nell'ambiente host JVM.

Hibernate è una libreria di mappatura object oriented (o una libreria ORM) creata appositamente per il linguaggio Java. Fornisce una struttura per mappare un modello di dominio orientato agli oggetti a un database relazionale tradizionale. Risolve anche problemi di disallineamento dell'impedenza relazionale dell'oggetto, cioè problemi in cui un sistema di gestione del database relazionale (o RDBMS) viene utilizzato da un programma scritto in un linguaggio o stile di programmazione orientato agli oggetti. Ciò avviene sostituendo gli accessi al database relativi alla persistenza diretta con funzioni di gestione di alto livello. È un software open source gratuito ed è distribuito sotto Licenza Pubblica Generica Minore GNU.

JDBC funziona consentendo l'esistenza e l'utilizzo di una varietà di implementazioni dalla stessa applicazione. Fornisce un meccanismo tramite il quale i pacchetti Java corretti vengono caricati e registrati dinamicamente con JDBC Driver Manager, che viene utilizzato come factory di connessione, di sorta, che crea connessioni JDBC. Queste connessioni supportano la creazione e l'esecuzione di dichiarazioni. Possono essere dichiarazioni di aggiornamento (gli SQL CREATE, INSERT, UPDATE e DELETE, ad esempio). Possono anche essere istruzioni di query come SELECT. Una connessione JDBC può anche richiamare procedure memorizzate, ovvero quelle procedure che sono memorizzate nel dizionario dei dati del database.

Hibernate funziona principalmente per eseguire il mapping dalle classi Java alle tabelle del database, nonché dai tipi di dati Java ai tipi di dati SQL. Fornisce inoltre funzionalità di ricerca e recupero dei dati. È in grado di generare chiamate SQL, sollevando lo sviluppatore dalla gestione manuale dei risultati e dalla conversione degli oggetti. Ciò mantiene l'applicazione portatile in tutti i database SQL supportati tramite la libreria. Associa le classi Java alle tabelle del database configurando un file XML (in cui Hibernate è in grado di generare codice sorgente scheletrico per le classi di persistenza) o utilizzando Java Annotation (che rende la precedente azione moot). Hibernate supporta anche la mappatura dei tipi di valore personalizzati, che rende possibili tre scenari specifici: sovrascrivendo il tipo SQL predefinito, scelto da Hibernate quando si associa una colonna a una proprietà; mappare Java Enum alle colonne come se fossero proprietà regolari; e mappare una singola proprietà su più colonne.

Sommario:

1. JDBC è un'API che definisce in che modo un client può accedere a un database; Hibernate è una libreria ORM che fornisce una struttura per mappare un modello di dominio orientato agli oggetti a un database relazionale tradizionale.

2. JDBC consente a varie implementazioni di esistere e utilizzate dalla stessa applicazione; Mappe di ibernazione da classi Java a tabelle di database.