Cili është ndryshimi midis JPA dhe JDBC?


përgjigje 1:

JDBC është një mjet standard për t'u lidhur drejtpërdrejt me një bazë të dhënash dhe për të drejtuar SQL. Për shembull, zgjidhni * nga TabelaName, etj. Ai mund të kthejë të dhëna që përdoruesi mund të përpunojë në aplikacionin e tij, dhe ata mund të kryejnë të gjitha detyrat e zakonshme si azhurnimi dhe fshirja.Ai është një nga teknologjitë themelore që fshihet pas shumicës së DBA-ve Java (përfshirë ofruesit e JPA).

Një problem i madh me aplikacionet tradicionale JDBC është se përdoruesit shpesh kanë kodin e ndyrë që përzien logjikën me SQL, shumë mospërputhje midis regjistrave dhe objekteve, etj.

JPA është një mjet zyrtar për hartëzimin e marrëdhënieve të objekteve. JPA është një teknologji që lejon përdoruesit të hartojnë objektet në tabelat e kodeve dhe bazës së të dhënave. JPA mund të "fshehë" SQL nga zhvilluesi, kështu që gjithçka që lidhet me klasat e Java, dhe ofruesi ju lejon t'i ruani dhe ngarkoni ato nga distanca. Shumica e kohës, skedarët e hartave XML ose shënimet e përcaktuesve dhe marrësve mund të përdoren për të informuar ofruesin JPA. Cilat fusha në objektin e përdoruesit janë caktuar në cilat fusha në bazën e të dhënave? Letargji është ofruesi më i popullarizuar JPA.

Disa shembuj të tjerë përfshirë OpenJPA, Topplink, etj.

Hibernate dhe ofruesit e tjerë të njohur JPA shkruajnë SQL dhe përdorin JDBC për të lexuar dhe shkruar në dhe nga baza e të dhënave.

Faleminderit shume

Nëse ju pëlqen përgjigja ime, atëherë pajtohuni.


përgjigje 2:

Do të ishte pak komplekse të kuptoni ndryshimin midis të dyve nëse jeni fillestar. Unë mendoj se së pari duhet të kuptoni ndryshimin midis JDBC dhe Hibernate. Shpresoj ta dini se çfarë është JDBC, ende si një përshkrim i shkurtër: JDBC qëndron për lidhjen e bazës së të dhënave Java. JDBC është një API Java për të lidhur dhe drejtuar pyetjen kundër bazës së të dhënave. Ajo siguron drejtuesit për t'u lidhur me bazën e të dhënave. Ju mund të përdorni API JDBC për të hyrë në të dhënat tabelare të ruajtura në çdo bazë të dhënash relacionale. Duke përdorur API JDBC, ne mund të ruajmë, azhurnojmë, fshijmë dhe marrim të dhënat nga baza e të dhënave.

Isfarë është letargji tani? Për dallim nga JDBC, duhet të importoni bibliotekat e Hibernate para se t'i përdorni, ndërsa JDBC është pjesë e vetë J2SE. Hibernate bën atë që është krijuar për JDBC, por mund të thoni që Hibernate është një nivel i përparuar i JDBC. Hibernimi thjeshton zhvillimin e një aplikacioni Java për të bashkëvepruar me bazën e të dhënave. Shtë një mjet ORM, d.m.th. ai cakton objektet Java në tabelat DB. Një klasë Java mund të përfaqësojë një tabelë në db. Për shembull, nëse e keni caktuar tabelën emp_26 si një klasë Punonjësish në Hibernate, shkruani një pyetje të thjeshtë të orientuar nga objekti për të marrë të gjithë punonjësit nga tabela empl_26: "nga Employee" // in Hibernate "zgjidhni * nga emp_26" // in JDBC.

Ekzistojnë një ferr për shumë karakteristika që Hibernate ofron, si cache, hartografimi i hartave, hartat e trashëgimisë, HQL, pagination, dhe më shumë që nuk janë të disponueshme në JDBC.

JPA është një specifikim, një grup klasa dhe ndërfaqe. JPA ka nevojë për një mjet për ta zbatuar atë, dhe ky mjet mund të vihet në gjumë. Duke zbatuar JPA, ju mund të bëni të njëjtën gjë si Hibernate, por në formatin JPA. Nëse JPA është një valle, Hibernate ose një mjet tjetër kërkohet që ta sigurojë atë një fazë vallëzimi. Nga rruga, kjo nuk do të thotë që Hibernate nuk mund të kërcejë pa JPA, Hibernate gjithashtu ka edhe vallëzimin e saj.


përgjigje 3:

JDBC është një standard për t'u lidhur drejtpërdrejt me një bazë të dhënash dhe për të ekzekutuar SQL - p.sh. B. SELECT * NGA PERSRDORUESIT, etj. Mund të kthejë rekorde që mund të përpunoni në aplikacionin tuaj, dhe ju mund të bëni të gjitha detyrat e zakonshme si INSERT, DELETE. Ekzekutoni procedurat e ruajtura, etj. Kjo është një nga teknologjitë themelore për shumicën e aksesit në bazën e të dhënave Java (përfshirë ofruesit e JPA).

Një nga problemet me aplikacionet tradicionale të JDBC është se ata shpesh kanë kodin e ndyrë që ka shumë mospërputhje midis regjistrimeve dhe objekteve, logjikë e përzier me SQL, etj.

JPA është një standard për hartëzimin objekt-relacion. Kjo është një teknologji që mund të përdorni për të hartuar objektet në tabelat e kodeve dhe bazës së të dhënave. Kjo lejon që SQL të "fshihet" nga zhvilluesi në mënyrë që të mbulohen vetëm klasa Java. Ofruesi ju lejon t'i ruani ato dhe t'i ngarkoni ato me magji. Në shumicën e rasteve, skedarët e hartave XML ose komentet e marrësve dhe vendosësve mund të përdoren për t'i thënë ofruesit të JPA cilat fusha në objektin tuaj janë të regjistruara në cilat fusha në bazën e të dhënave. Ofruesi më i njohur i JPA është Hibernate, kështu që kjo është një pikënisje e mirë për shembuj konkret.

Shembuj të tjerë janë OpenJPA, Toplink, etj.