Was ist der Unterschied zwischen JPA und JDBC?


Antwort 1:

JDBC ist ein Standardtool zum direkten Herstellen einer Verbindung zu einer Datenbank und zum Ausführen von SQL. Wählen Sie beispielsweise * aus TableName usw. aus. Es können Datensätze zurückgegeben werden, die der Benutzer in seiner App verarbeiten kann, und er kann alle üblichen Aufgaben wie Aktualisieren und Löschen ausführen Es ist eine der zugrunde liegenden Technologien hinter den meisten Java-DBAs (einschließlich JPA-Anbietern).

Ein Hauptproblem bei herkömmlichen JDBC-Apps besteht darin, dass Benutzer häufig einen beschissenen Code haben, in dem Logik mit SQL gemischt ist, viele Zuordnungen zwischen Datensätzen und Objekten auftreten usw.

JPA ist ein offizielles Tool für Object Relational Mapping. JPA ist eine Technologie, mit der Benutzer Objekte in Code- und Datenbanktabellen zuordnen können. JPA kann das SQL vor dem Entwickler "verbergen", sodass alles, was mit Java-Klassen zu tun hat, und der Anbieter ermöglicht es Ihnen, sie zu speichern und remote zu laden. Meist können XML-Zuordnungsdateien oder Anmerkungen zu Setzern und Gettern verwendet werden, um den JPA-Anbieter zu informieren. Welche Felder im Benutzerobjekt werden welchen Feldern in der Datenbank zugeordnet? Der Ruhezustand ist der beliebteste JPA-Anbieter.

Einige andere Beispiele, einschließlich OpenJPA, Topplink usw.

Hibernate und andere beliebte Anbieter für JPA schreiben SQL und verwenden JDBC zum Lesen und Schreiben von und in die Datenbank.

Vielen Dank.

Wenn dir meine Antwort gefällt, dann stimme sie zu.


Antwort 2:

Es wäre etwas komplex, den Unterschied zwischen beiden zu verstehen, wenn Sie ein Anfänger sind. Ich denke, Sie sollten zunächst den Unterschied zwischen JDBC und Hibernate verstehen. Ich hoffe, Sie wissen, was JDBC ist, immer noch als kurze Beschreibung: JDBC steht für Java Database Connectivity. JDBC ist eine Java-API zum Verbinden und Ausführen der Abfrage mit der Datenbank. Es bietet Treiber für die Verbindung mit der Datenbank. Sie können die JDBC-API verwenden, um auf Tabellendaten zuzugreifen, die in einer beliebigen relationalen Datenbank gespeichert sind. Mithilfe der JDBC-API können wir Daten aus der Datenbank speichern, aktualisieren, löschen und abrufen.

Was ist nun Ruhezustand? Im Gegensatz zu JDBC müssen Sie die Hibernate-Bibliotheken importieren, bevor Sie sie verwenden, während JDBC Teil von J2SE selbst ist. Hibernate macht dasselbe, wofür JDBC entwickelt wurde, aber Sie können sagen, dass Hibernate eine fortgeschrittene Stufe von JDBC ist. Der Ruhezustand vereinfacht die Entwicklung einer Java-Anwendung für die Interaktion mit der Datenbank. Es handelt sich um ein ORM-Tool, dh es ordnet die Java-Objekte den DB-Tabellen zu. Eine Java-Klasse kann eine Tabelle in db darstellen. Wenn Sie beispielsweise die Tabelle "emp_26" als Employee-Klasse in Hibernate zugeordnet haben, schreiben Sie eine einfache objektorientierte Abfrage, um alle Mitarbeiter aus der Tabelle empl_26 abzurufen: "from Employee" // in Hibernate "select * from emp_26" // in JDBC.

Es gibt verdammt viele Funktionen, die Hibernate bietet, wie Cache, Zuordnungszuordnung, Vererbungszuordnung, HQL, Paginierung und vieles mehr, die in JDBC nicht verfügbar sind.

Bei JPA handelt es sich um eine Spezifikation, eine Reihe von Klassen und Schnittstellen. JPA benötigt ein Tool, um es implementieren zu können, und dieses Tool kann in den Ruhezustand versetzt werden. Durch die Implementierung von JPA können Sie dasselbe tun wie Hibernate, jedoch im Format von JPA. Wenn JPA ein Tanz ist, ist Hibernate oder ein anderes Tool erforderlich, um ihm eine Tanzbühne bereitzustellen. Übrigens heißt das nicht, dass Hibernate nicht ohne JPA tanzen kann, Hibernate hat auch einen eigenen Tanz.


Antwort 3:

JDBC ist ein Standard zum direkten Herstellen einer Verbindung zu einer Datenbank und zum Ausführen von SQL - z. B. SELECT * FROM USERS usw. Es können Datensätze zurückgegeben werden, die Sie in Ihrer App verarbeiten können, und Sie können alle üblichen Aufgaben wie INSERT, DELETE, ausführen. Ausführen gespeicherter Prozeduren usw. Dies ist eine der zugrunde liegenden Technologien für den meisten Java-Datenbankzugriff (einschließlich JPA-Anbietern).

Eines der Probleme bei herkömmlichen JDBC-Apps besteht darin, dass Sie häufig einen beschissenen Code haben, bei dem viele Zuordnungen zwischen Datensätzen und Objekten auftreten, Logik mit SQL gemischt wird usw.

JPA ist ein Standard für die objektrelationale Zuordnung. Dies ist eine Technologie, mit der Sie Objekte in Code- und Datenbanktabellen zuordnen können. Dadurch kann SQL vor dem Entwickler "ausgeblendet" werden, sodass nur Java-Klassen behandelt werden. Der Anbieter ermöglicht es Ihnen, sie zu speichern und auf magische Weise zu laden. In den meisten Fällen können XML-Zuordnungsdateien oder Anmerkungen zu Gettern und Setzern verwendet werden, um dem JPA-Anbieter mitzuteilen, welche Felder in Ihrem Objekt welchen Feldern in der Datenbank zugeordnet sind. Der bekannteste JPA-Anbieter ist Hibernate, daher ist dies ein guter Ausgangspunkt für konkrete Beispiele.

Andere Beispiele sind OpenJPA, Toplink usw.