Jaka jest różnica między JPA a JDBC?


Odpowiedź 1:

JDBC jest standardowym narzędziem do bezpośredniego łączenia się z bazą danych i uruchamiania na niej SQL, na przykład wybierz * z TableName itp. Zestawy danych mogą zostać zwrócone, które użytkownik może obsłużyć w swojej aplikacji, i może wykonywać wszystkie zwykłe czynności, takie jak aktualizacja, usuwanie , wstawianie procedur itp. Jest to jedna z podstawowych technologii większości Java DBA (w tym dostawców JPA).

Jednym z głównych problemów związanych z tradycyjnymi aplikacjami JDBC jest to, że użytkownik może często mieć kiepski kod, w którym logika jest mieszana z SQL, występuje wiele mapowań między zestawami danych a obiektami itp.

JPA to oficjalne narzędzie do mapowania obiektowo-relacyjnego. JPA to technologia, która pozwala użytkownikowi mapować między obiektami w tabelach kodu i bazy danych. JPA może „ukryć” kod SQL przed deweloperem, aby wszystkie zajmowały się klasami Java, a dostawca umożliwia ich zapisanie i zdalne załadowanie. W większości przypadków pliki mapowania XML lub adnotacje na obiektach ustawiających i pobierających mogą być użyte do poinformowania dostawcy JPA. które pola w obiekcie użytkownika odwzorowują na które pola w DB. hibernacja jest najpopularniejszym dostawcą JPA.

kilka innych przykładów, w tym OpenJPA, toplink itp.

Hibernacja i inni popularni dostawcy JPA piszą SQL i używają JDBC do odczytu i zapisu zi do bazy danych.

Dziękuję Ci.

jeśli podoba ci się moja odpowiedź, głosuj za nią.


Odpowiedź 2:

Zrozumienie różnicy między obiema kwestiami byłoby trochę skomplikowane, jeśli jesteś początkującym. Myślę, że powinieneś zacząć od zrozumienia najpierw różnic między JDBC a Hibernacją. Mam nadzieję, że wiesz, czym jest JDBC, wciąż jako krótki opis: JDBC oznacza Java Database Connectivity. JDBC to Java API do połączenia i wykonania zapytania za pomocą db. Zapewnia sterowniki do połączenia z bazą danych. Za pomocą interfejsu API JDBC można uzyskać dostęp do danych tabelarycznych przechowywanych w dowolnej relacyjnej bazie danych. Za pomocą JDBC API możemy zapisywać, aktualizować, usuwać i pobierać dane z bazy danych.

Co to jest Hibernacja? Jest to framework w przeciwieństwie do JDBC, musisz zaimportować biblioteki Hibernacji przed użyciem, podczas gdy JDBC jest częścią samego J2SE. Hibernacja robi to samo, co JDBC, ale można powiedzieć, że Hibernacja to zaawansowany poziom JDBC. Hibernacja upraszcza tworzenie aplikacji Java do interakcji z bazą danych. Jest to narzędzie ORM, które mapuje obiekty Java za pomocą tabel db. Klasa java może reprezentować tabelę w db. Na przykład, jeśli zmapowałeś tabelę „emp_26” jako klasę Pracownika w Hibernacji, napisałbyś proste zapytanie obiektowe, aby pobrać wszystkich pracowników z tabeli prac_26: „z Pracownika” // w Hibernacji „wybierz * z emp_26” // w JDBC.

Hibernacja oferuje wiele funkcji, takich jak pamięć podręczna, mapowanie skojarzeń, mapowanie dziedziczenia, HQL, paginacja i wiele innych, które nie są dostępne w JDBC.

W przypadku JPA jest to specyfikacja, to zestaw klas i interfejsów. JPA potrzebuje narzędzia do jego wdrożenia, które może być hibernacją. Wdrażając JPA, możesz zrobić to samo, co Hibernacja, ale w formacie JPA.Jeśli JPA jest tańcem, Hibernacja lub inne narzędzie jest wymagane, aby zapewnić mu scenę taneczną. Nawiasem mówiąc, nie oznacza to, że Hibernacja nie może tańczyć bez JPA, Hibernacja również ma swój własny taniec.


Odpowiedź 3:

JDBC to standard bezpośredniego połączenia z bazą danych i uruchomienia na nim SQL - np. WYBIERZ * OD UŻYTKOWNIKÓW itp. Zestawy danych mogą zostać zwrócone, które możesz obsłużyć w swojej aplikacji, i możesz wykonywać wszystkie zwykłe czynności, takie jak WSTAW, USUŃ, uruchamianie procedur przechowywanych itp. Jest to jedna z podstawowych technologii zapewniających dostęp do baz danych Java (w tym dostawców JPA).

Jednym z problemów związanych z tradycyjnymi aplikacjami JDBC jest to, że często możesz mieć kiepski kod, w którym występuje wiele mapowań między zestawami danych a obiektami, logika jest pomieszana z SQL itp.

JPA jest standardem mapowania obiektowo-relacyjnego. Jest to technologia, która pozwala na mapowanie między obiektami w tabelach kodu i bazy danych. Może to „ukryć” SQL przed deweloperem, tak aby zajmowały się wyłącznie klasami Java, a dostawca pozwala na ich zapisanie i załadowanie w magiczny sposób. Przeważnie pliki mapowania XML lub adnotacje na obiektach pobierających i ustawiających mogą być użyte do poinformowania dostawcy JPA, które pola na mapie obiektu, do których pól w bazie danych. Najbardziej znanym dostawcą JPA jest Hibernacja, więc jest to dobre miejsce, aby zacząć od konkretnych przykładów.

Inne przykłady to OpenJPA, górny link itp.