Unterschied zwischen JDBC und Hibernate

JDBC vs. Hibernate

Java Database Connectivity (auch bekannt als JDBC) ist eine speziell für die Programmiersprache Java entwickelte API . Es definiert, wie ein Client auf eine Datenbank zugreifen kann, indem Methoden zum Abfragen und Aktualisieren von Daten in einer Datenbank bereitgestellt werden. Es ist spezifischer auf relationale Datenbanken ausgerichtet. Es wurde erstmals als Teil der Java 2 Platform, Standard Edition, Version 1. 1 (oder J2SE) auf dem Markt eingeführt. Es wurde mit einer Referenzimplementierung JDBC zu ODBC-Bridge gebündelt und ermöglichte Verbindungen mit der API zu jeder ODBC-zugänglichen Datenquelle in der JVM-Hostumgebung.

Hibernate ist eine objektorientierte Mapping-Bibliothek (oder ORM-Bibliothek), die speziell für die Sprache Java entwickelt wurde. Es bietet einen Rahmen für die Zuordnung eines objektorientierten Domänenmodells zu einer traditionellen relationalen Datenbank. Es löst auch Objektrelationsimpedanz-Fehlanpassungsprobleme, dh Probleme, bei denen ein relationales Datenbankmanagementsystem (oder RDBMS) von einem Programm verwendet wird, das in einer objektorientierten Programmiersprache oder einem objektorientierten Programmierstil geschrieben ist. Dies wird erreicht, indem direkte Persistenz-bezogene Datenbankzugriffe durch hochgradige Handhabungsfunktionen ersetzt werden. Es ist kostenlos, Open-Source-Software und wird unter der GNU Lesser General Public License vertrieben.

JDBC funktioniert dadurch, dass eine Vielzahl von Implementierungen existieren und von derselben Anwendung verwendet werden können. Sie stellt einen Mechanismus bereit, mit dem die korrekten Java-Pakete dynamisch geladen und im JDBC-Treiber-Manager registriert werden. Dieser JDBC-Treiber-Manager wird sozusagen als Verbindungsfabrik verwendet, die JDBC-Verbindungen erstellt. Diese Verbindungen unterstützen das Erstellen und Ausführen von Anweisungen. Sie können Update-Anweisungen sein (zum Beispiel die SQL-Befehle CREATE, REPLACE, UPDATE und DELETE). Sie können auch Abfrageanweisungen wie SELECT sein. Eine JDBC-Verbindung kann auch gespeicherte Prozeduren aufrufen, dh solche Prozeduren, die im Datenbankdatenwörterbuch gespeichert sind.

Hibernate dient hauptsächlich dazu, Java-Klassen auf Datenbanktabellen sowie von Java-Datentypen auf SQL-Datentypen abzubilden. Es bietet auch Datenabfrage und Abrufmöglichkeiten. Es ist in der Lage, SQL-Aufrufe zu generieren, wodurch der Entwickler von der manuellen Ergebnismengenbehandlung und Objektkonvertierung entlastet wird. Dadurch bleibt die Anwendung für alle SQL-Datenbanken portierbar, die von der Bibliothek unterstützt werden. Sie ordnet Java-Klassen den Datenbanktabellen zu, indem sie eine XML-Datei (in der Hibernate in der Lage ist, skelettierten Quellcode für die Persistenzklassen zu generieren) oder Java-Annotation (die die vorherige Aktion erzwingt) konfiguriert. Hibernate unterstützt auch das Mapping von benutzerdefinierten Werttypen, wodurch drei spezifische Szenarien möglich sind: Überschreiben des Standard-SQL-Typs, der von Hibernate beim Zuordnen einer Spalte zu einer Eigenschaft gewählt wird; Mapping von Java Enum auf Spalten, als wären sie reguläre Eigenschaften; und Zuordnen einer einzelnen Eigenschaft zu mehreren Spalten.

Zusammenfassung:

1. JDBC ist eine API, die definiert, wie ein Client auf eine Datenbank zugreifen kann. Hibernate ist eine ORM-Bibliothek, die ein Framework für die Zuordnung eines objektorientierten Domänenmodells zu einer traditionellen relationalen Datenbank bereitstellt.

2. JDBC ermöglicht, dass verschiedene Implementierungen existieren und von derselben Anwendung verwendet werden; Hibernate maps von Java-Klassen zu Datenbanktabellen.