Kāda ir atšķirība starp JPA un JDBC?


Atbilde 1:

JDBC ir standarta rīks, lai tieši izveidotu savienojumu ar datu bāzi un palaistu SQL, piemēram, atlasiet * no TableName utt. Var tikt atgrieztas datu kopas, kuras lietotājs var apstrādāt savā lietotnē, un viņš var veikt visas parastās lietas, piemēram, atjaunināt, izdzēst , ievietojiet procedūras utt. Tā ir viena no pamatā esošajām tehnoloģijām, kas atbalsta lielāko daļu Java DBA (ieskaitot JPA nodrošinātājus).

Viena no galvenajām tradicionālo JDBC lietotņu problēmām ir tā, ka lietotājam bieži var būt kaut kāds viltīgs kods, kurā loģika tiek sajaukta ar SQL, notiek daudz kartēšana starp datu kopām un objektiem utt.

APA ir oficiāls objekta relācijas kartēšanas rīks. JPA ir tehnoloģija, kas ļauj lietotājam kartēt objektus kodu un datu bāzes tabulās. JPA var "paslēpt" SQL no izstrādātāja, lai visi tie darbotos Java klasēs, un pakalpojumu sniedzējs ļauj jums tos saglabāt un attālināti ielādēt. Pārsvarā XPA kartēšanas failus vai anotācijas setteros un getteros var izmantot, lai pateiktu JPA nodrošinātājam. kuri lauki lietotāja objektu kartē un kuriem laukiem DB. pārziemināšana ir vispopulārākais APA nodrošinātājs.

daži citi piemēri, ieskaitot OpenJPA, toplink utt.

Hibernēti un citi populāri JPA nodrošinātāji raksta SQL un izmanto JDBC, lai lasītu un rakstītu no un uz DB.

Paldies.

ja jums patīk mana atbilde, tad balsojiet par to.


Atbilde 2:

Būtu viegli sarežģīti saprast abu atšķirības, ja esat iesācējs. Es domāju, ka vispirms vajadzētu sākt saprast ar atšķirību starp JDBC un Hibernate. Es ceru, ka jūs zināt, kas ir JDBC, joprojām kā īss apraksts: JDBC apzīmē Java datu bāzes savienojumu. JDBC ir Java API, lai izveidotu savienojumu un izpildītu vaicājumu ar db. Tas nodrošina draiverus, lai izveidotu savienojumu ar db. Jūs varat izmantot JDBC API, lai piekļūtu tabulas datiem, kas glabājas jebkurā relāciju datu bāzē. Ar JDBC API palīdzību mēs varam saglabāt, atjaunināt, izdzēst un ielādēt datus no datu bāzes.

Tagad kas pārziemo? Atšķirībā no JDBC, tas ir ietvars, hibernācijas bibliotēku importēšanai pirms to izmantošanas, savukārt JDBC ir pašas J2SE sastāvdaļa. Hibernēts dara to pašu, kam ir izstrādāta JDBC, taču var teikt, ka hibernācija ir iepriekšējs JDBC līmenis. Hibernēts vienkāršo Java lietojumprogrammu izstrādi, lai mijiedarbotos ar datu bāzi. Tas ir ORM rīks, kas nozīmē, ka java objekti tiek kartēti ar db tabulām. Java klase var attēlot tabulu db. Piemēram, ja jūs hibernācijas kartītē “emp_26” norādījāt kā Darbinieku klasi, jūs uzrakstītu vienkāršu uz objektu orientētu vaicājumu, lai atvilktu visus darbiniekus no tabulas empl_26: “no darbinieka” // hibernācijā “atlasiet * no emp_26” // JDBC.

Ir ļoti daudz tādu funkciju, kuras hibernācija nodrošina, piemēram, kešatmiņu, asociāciju kartēšanu, mantojuma kartēšanu, HQL, lapu noformēšanu un vēl daudzas citas, kas JDBC nav pieejamas.

Nākot uz APA, tā ir specifikācija, tas ir klašu un saskarņu komplekts. Apvienotajai parlamentārajai asamblejai ir nepieciešams rīks, lai to ieviestu, un šis rīks var būt hibernēts. Īstenojot JPA, jūs varat darīt to pašu, ko dara Hibernate, bet JPA formātā. Ja JPA ir deja, tad Hibernate vai kāds cits rīks ir nepieciešams, lai tai nodrošinātu deju skatuvi. Starp citu, tas nenozīmē, ka pārziemināt nevar dejot bez JPA, arī pārziemot ir sava deja.


Atbilde 3:

JDBC ir standarts, lai tieši izveidotu savienojumu ar DB un darbinātu SQL pret to - piemēram, SELECT * FROM USERS, utt. Var tikt atgrieztas datu kopas, kuras varat apstrādāt savā lietotnē, un jūs varat veikt visas parastās darbības, piemēram, INSERT, DELETE, palaist glabātās procedūras utt. Tā ir viena no pamatā esošajām tehnoloģijām, kas nodrošina lielāko daļu piekļuves Java datu bāzēm (ieskaitot JPA nodrošinātājus).

Viena no problēmām, kas saistīta ar tradicionālajām JDBC lietotnēm, ir tā, ka bieži vien jums var būt kaut kāds crappy kods, kurā notiek daudz kartēšanu starp datu kopām un objektiem, loģika tiek sajaukta ar SQL utt.

JPA ir objekta relāciju kartēšanas standarts. Šī ir tehnoloģija, kas ļauj kartēt objektus kodu un datu bāzes tabulās. Tas var "slēpt" SQL no izstrādātāja, lai viss, ar kuriem viņi nodarbojas, būtu Java klases, un pakalpojumu sniedzējs ļauj jums tos saglabāt un maģiski ielādēt. Pārsvarā XML kartēšanas failus vai anotācijas uz getteriem un setteriem var izmantot, lai JPA nodrošinātājam pateiktu, kuri lauki jūsu objekta kartē ir saistīti ar kuriem laukiem DB. Slavenākais JPA nodrošinātājs ir pārzieminājis, tāpēc tā ir piemērota vieta, kur sākt konkrētu piemēru meklēšanu.

Citi piemēri ir OpenJPA, toplink utt.