Kakva je razlika između JPA i JDBC?


Odgovor 1:

JDBC je standardni alat za izravno povezivanje s bazom podataka i pokretanje SQL-a na primjer, primjerice odaberite * iz TableName-a itd. Vrati se skupovi podataka koje korisnik može obraditi u svojoj aplikaciji, a on može raditi sve uobičajene stvari poput ažuriranja, brisanja , umetnite postupke itd. To je jedna od temeljnih tehnologija koja stoji iza većine Java DBA (uključujući JPA davatelje).

Jedan od glavnih problema tradicionalnih JDBC aplikacija je taj što korisnik često može imati neki ludi kod kod kojeg se logika miješa sa SQL-om, događa se mnogo mapiranja između skupova podataka i objekata itd.

JPA je službeni alat za objektno relacijsko preslikavanje. JPA je tehnologija koja korisniku omogućuje mapiranje između objekata u tablicama koda i baze podataka. JPA može "sakriti" SQL od programera tako da sve čime se oni bave unutar Java klasa, a pružatelj vam omogućuje spremanje i učitavanje na daljinu. Datoteke ili bilješke XML za mapiranje ili bilješke na programima settera i gettera uglavnom se mogu upotrijebiti za najavu pružatelja usluga JPA. koja polja na korisničkoj mapi objekta, koja polja u DB-u. hibernacija je najpopularniji pružatelj JPA.

neki drugi primjeri, uključujući OpenJPA, toplink itd.

Hibernacija i ostali popularni dobavljači za JPA pišu SQL i koriste JDBC za čitanje i pisanje iz i u DB.

Hvala vam.

ako vam se sviđa moj odgovor, tada ga pozovite.


Odgovor 2:

Bilo bi malo složeno razumjeti razliku između obojega ako ste početnik. Mislim da bi trebao započeti razumijevanjem razlike između JDBC-a i hibernacije. Nadam se da znate što je JDBC, još uvijek kao kratki opis: JDBC označava Java Database Connectivity. JDBC je Java API za povezivanje i izvršavanje upita s db-om. Upravljačkim programima omogućuje povezivanje s db-om. Možete koristiti JDBC API za pristup tabličnim podacima pohranjenim u bilo kojoj relacijskoj bazi podataka. Pomoću JDBC API-ja možemo iz baze podataka spremiti, ažurirati, izbrisati i dohvatiti podatke.

Što je hibernacija? To je okvir za razliku od JDBC, uv uvesti hibernacijske knjižnice prije nego što ga upotrebljavate, dok je JDBC dio samog J2SE. Hibernata čini isto ono za što je JDBC razvijen, ali u možete reći da je hibernacija napredna razina JDBC-a. Hibernacija pojednostavljuje razvoj Java aplikacije za interakciju s bazom podataka. To je ORM alat, znači da preslikava java objekte s db tablicama. Java klasa može predstavljati tablicu u db-u. Na primjer, ako ste preslikali tablicu "emp_26" kao klasu zaposlenika u hibernaciji, tada biste napisali jednostavan objektno-orijentirani upit da biste dohvatili sve zaposlenike iz tablice empl_26: "iz zaposlenika" // u hibernaciji "odaberite * iz emp_26" // u JDBC.

Postoji mnogo mogućnosti koje Hibernate nudi poput predmemorije, mapiranja asocijacija, mapiranja nasljedstva, HQL-a, pagmentacije i mnogih drugih koji nisu dostupni u JDBC-u.

Dolazimo do JPA, to je specifikacija, to je skup klasa i sučelja. JPA treba alat koji će ga implementirati i koji može biti u stanju hibernacije. Primjenom JPA-e možete učiniti isto što i Hibernate, ali u formatu JPA. Ako je JPA ples, Hibernata ili neki drugi alat potreban je za plesnu pozornicu. Usput ne znači da Hibernate ne može plesati bez JPA, i Hibernate ima svoj ples.


Odgovor 3:

JDBC je standard za izravno povezivanje s DB-om i pokretanje SQL-a protiv njega - npr. ODABIR * OD KORISNIKA, itd. Vraćaju se skupovi podataka s kojima možete rukovati u svojoj aplikaciji, a možete raditi i sve uobičajene stvari poput INSERT, DELETE, pokretanje pohranjenih procedura itd. To je jedna od temeljnih tehnologija koja stoji iza većine Java baza podataka (uključujući JPA davatelje).

Jedno od problema s tradicionalnim JDBC aplikacijama je to što često možete imati neki lud kod na kojem se događa mnogo mapiranja između skupova podataka i objekata, logika se miješa sa SQL-om itd.

JPA je standard za objektno relacijsko preslikavanje. Ovo je tehnologija koja vam omogućuje mapiranje između objekata u tablicama koda i baze podataka. Ovo može "sakriti" SQL od programera, tako da sve čime se bave predstavljaju Java klase, a pružatelj vam omogućuje spremanje i magično učitavanje. Datoteke ili bilješke XML mapiranja ili napomene na getterima i seterima uglavnom se mogu koristiti za navođenje dobavljaču JPA koja polja na vašoj objektnoj mapi i koja polja u DB-u. Najpoznatiji JPA pružatelj je hibernacije, pa je to dobro mjesto za početak konkretnih primjera.

Ostali primjeri uključuju OpenJPA, toplink itd.