Hver er munurinn á JPA og JDBC?


svara 1:

JDBC er venjulegt tæki til að tengjast beint við gagnagrunn og keyra SQL. Veldu til dæmis * úr Taflaheiti o.s.frv. Það getur skilað skrám sem notandinn getur unnið úr í appinu sínu og hann getur sinnt öllum venjulegum verkefnum eins og að uppfæra og eyða.

Stórt vandamál með hefðbundin JDBC forrit er að notendur hafa oft shitty kóða sem blanda saman rökfræði við SQL, það er fullt af kortlagningu milli gagna og hluta og svo framvegis.

JPA er opinbert tæki til að kortleggja hlutatengsl. JPA er tækni sem gerir notendum kleift að kortleggja hluti í kóða- og gagnagrunnstöflum. JPA getur „falið“ SQL frá framkvæmdaraðila, svo allt sem tengist Java flokkum, og veitan leyfir þér að vista og hlaða þá lítillega. Oftast er hægt að nota XML kortlagningarskrár eða athugasemdir um gerðarbréf og bréf til að upplýsa JPA-veituna. Hvaða reiti í notendahlutnum er úthlutað til hvaða reita í gagnagrunninum? Dvala er vinsælasta veitan JPA.

Nokkur önnur dæmi, þar á meðal OpenJPA, Topplink osfrv.

Dvala og aðrir vinsælir JPA veitendur skrifa SQL og nota JDBC til að lesa og skrifa til og frá gagnagrunninum.

Þakka þér kærlega fyrir.

Ef þér líkar svar mitt, þá sammála þér.


svara 2:

Það væri svolítið flókið að skilja muninn á þessu tvennu ef þú ert byrjandi. Ég held að þú ættir fyrst að skilja muninn á JDBC og Hibernate. Ég vona að þú vitir hvað JDBC er, samt sem stutt lýsing: JDBC stendur fyrir Java Database Connectivity. JDBC er Java API til að tengja og keyra fyrirspurnina gegn gagnagrunninum. Það býður upp á rekla fyrir tengingu við gagnagrunninn. Þú getur notað JDBC API til að fá aðgang að töflugögnum sem geymd eru í hvaða venslagagnagrunni sem er. Með því að nota JDBC API getum við vistað, uppfært, eytt og sótt gögn úr gagnagrunninum.

Hvað er dvala núna? Ólíkt JDBC þarftu að flytja inn vetrardvalasöfnin áður en þú notar þau, meðan JDBC er hluti af J2SE sjálfu. Hibernate gerir það sem JDBC var hannað fyrir, en þú getur sagt að Hibernate er háþróað stig JDBC. Dvala einfaldar þróun Java forrits til að hafa samskipti við gagnagrunninn. Það er ORM tól, þ.e. það tengir Java hlutina við DB töflurnar. Java flokkur getur táknað töflu í db. Til dæmis, ef þú úthlutaðir emp_26 töflunni sem starfsmannaflokki í dvala, skrifaðu einfalda hlutbundna fyrirspurn til að fá alla starfsmenn frá töflunni empl_26: "frá starfsmanni" // í dvala "veldu * frá emp_26" // í JDBC.

Það eru helvíti af mörgum eiginleikum sem Hibernate býður upp á, svo sem skyndiminni, kortlagning kortlagningar, arfakortlagning, HQL, flöggun og fleira sem eru ekki í boði í JDBC.

JPA er forskrift, mengi flokka og tengi. JPA þarf tæki til að útfæra það og það er hægt að setja þetta tæki í svefn. Með því að útfæra JPA geturðu gert það sama og Vetrardvala en á JPA sniði. Ef JPA er dans er krafist dvala eða annars tól til að útvega honum dansleik. Við the vegur, það þýðir ekki að Hibernate geti ekki dansað án JPA, Hibernate hefur einnig sinn dans.


svara 3:

JDBC er staðall til að tengjast beint við gagnagrunn og keyra SQL - t.d. B. VELJA * FRA NOTANDA, osfrv. Það getur skilað skrám sem þú getur unnið úr í appinu þínu, og þú getur unnið öll venjuleg verkefni eins og INSERT, DELETE. Framkvæma geymdar verklagsreglur osfrv. Þetta er ein undirliggjandi tækni fyrir flesta Java gagnagrunnsaðgang (þ.mt JPA veitendur).

Eitt af vandamálunum við hefðbundin JDBC forrit er að þau hafa oft shitty kóða sem eru með fullt af kortlagningu milli gagna og hluta, rökfræði í bland við SQL osfrv.

JPA er staðall fyrir kortlagningu mótmæla. Þetta er tækni sem þú getur notað til að kortleggja hluti í kóða og gagnagrunnstöflum. Þetta gerir það að verkum að SQL er „falin“ fyrir verktaki þannig að aðeins Java flokkar eru fjallaðir. Þjónustuveitan gerir þér kleift að vista þær og hlaða þær með töfrum. Í flestum tilfellum er hægt að nota XML kortlagning skráa eða athugasemdir við bréf og setjara til að segja JPA veitunni hvaða reiti í hlutnum þínum er kortlagt hvaða reiti í gagnagrunninum. Þekktasti JPA framfærandinn er Hibernate, svo þetta er góður upphafspunktur fyrir steypu dæmi.

Önnur dæmi eru OpenJPA, Toplink osfrv.