Care este diferența dintre JPA și JDBC?


Răspunsul 1:

JDBC este un instrument standard pentru conectarea directă la o bază de date și rularea SQL împotriva acesteia, de exemplu, selectează * din TableName, etc. Seturile de date pot fi returnate pe care utilizatorul le poate gestiona în aplicația sa și poate face toate lucrurile obișnuite, cum ar fi actualizarea, ștergerea , introduceți proceduri etc. Este una dintre tehnologiile care stau la baza majorității DBA Java (inclusiv a furnizorilor JPA).

Una dintre problemele majore ale aplicațiilor JDBC tradiționale este aceea că utilizatorul poate avea adesea un cod neplăcut în care logica este amestecată cu SQL, apar multe mapări între seturi de date și obiecte etc.

JPA este un instrument oficial pentru maparea relațională a obiectelor. JPA este o tehnologie care permite utilizatorului să se asocieze între obiectele din tabelele de cod și baza de date. JPA poate „ascunde” SQL de la dezvoltator, astfel încât toate acestea se ocupă în cadrul claselor Java, iar furnizorul vă permite să le salvați și să le încărcați de la distanță. În mare parte, fișiere de mapare XML sau adnotări pe seteri și getter pot fi utilizate pentru a spune furnizorului JPA. care câmpuri pe harta obiectului utilizatorului către câmpurile din DB. hibernate este cel mai popular furnizor JPA.

câteva alte exemple, inclusiv OpenJPA, toplink etc.

Hibernarea și alți furnizori populari pentru JPA scriu SQL și utilizează JDBC pentru a citi și scrie de la și către DB.

Mulțumesc.

dacă îți place răspunsul meu, atunci dă-l cu votul.


Răspunsul 2:

Ar fi ușor complex să înțelegem diferența dintre ambele, dacă ești începător. Cred că mai întâi ar trebui să începi înțelegând diferența dintre JDBC și Hibernate. Sper să știți ce este JDBC, tot ca o descriere breif: JDBC reprezintă conectivitatea bazelor de date Java JDBC este o API Java pentru a conecta și executa interogarea cu db. Acesta oferă drivere pentru a se conecta cu db. Puteți utiliza API-ul JDBC pentru a accesa date tabulare stocate în orice bază de date relațională. Cu ajutorul API-ului JDBC, putem salva, actualiza, șterge și prelua date din baza de date.

Acum ce este Hibernate? Este un cadru spre deosebire de JDBC, trebuie să importați bibliotecile Hibernate înainte să îl utilizați, în timp ce JDBC este o parte a J2SE în sine. Hibernate face același lucru pentru care este dezvoltat JDBC, dar puteți spune că Hibernate este un nivel avansat al JDBC. Hibernate simplifică dezvoltarea aplicației Java pentru a interacționa cu baza de date. Este un instrument ORM, înseamnă că mapează obiectele java cu tabelele db. O clasă java poate reprezenta un tabel în db. De exemplu, dacă ați mapat tabela „emp_26” ca clasă de angajați în Hibernate, atunci ați scrie o interogare simplă orientată pe obiecte pentru a prelua toți angajații din tabela empl_26: „din Angajat” // în Hibernat ”selectați * din emp_26” // în JDBC.

Există o mulțime de funcții pe care le oferă Hibernate, cum ar fi cache, asociere, mapare moștenire, HQL, paginarea cu multe altele care nu sunt disponibile în JDBC.

Venind la JPA, este o specificație, este un set de clase și interfețe. JPA are nevoie de un instrument pentru a-l implementa și acela poate fi Hibernat. Prin implementarea JPA, puteți face la fel ceea ce face Hibernate, dar în formatul JPA. Dacă JPA este un dans, atunci Hibernate sau un alt instrument este necesar pentru a-i oferi o scenă de dans. Așa cum nu înseamnă că Hibernate nu poate dansa fără JPA, Hibernate are și propriul său dans.


Răspunsul 3:

JDBC este un standard pentru conectarea directă la o DB și rularea SQL împotriva acesteia - de ex. SELECT * DE LA UTILIZATORI, etc. Seturile de date pot fi returnate pe care le puteți gestiona în aplicația dvs. și puteți face toate lucrurile obișnuite, cum ar fi INSERT, DELETE, executați proceduri stocate etc. Este una dintre tehnologiile care stau la baza accesului bazelor de date Java (inclusiv furnizorilor JPA).

Una dintre problemele cu aplicațiile JDBC tradiționale este că de multe ori puteți avea un cod neplăcut în care apar multe mapări între seturi de date și obiecte, logica este amestecată cu SQL etc.

JPA este un standard pentru maparea relațională a obiectelor. Aceasta este o tehnologie care vă permite să faceți o mapare între obiectele din tabelele de cod și baza de date. Acest lucru poate „ascunde” SQL de la dezvoltator, astfel încât tot ceea ce au de a face sunt clase Java, iar furnizorul vă permite să le salvați și să le încărcați magic. În mare parte, fișiere de mapare XML sau adnotări pe getters și setters pot fi utilizate pentru a spune furnizorului JPA care câmpuri pe harta obiectului dvs. către ce câmpuri în DB. Cel mai cunoscut furnizor JPA este Hibernate, deci este un loc bun pentru a începe pentru exemple concrete.

Alte exemple includ OpenJPA, toplink etc.