Ano ang pagkakaiba ng JPA at JDBC?


sagot 1:

Ang JDBC ay isang pamantayang tool para sa pagkonekta sa isang Database nang direkta at pagpapatakbo ng SQL laban dito halimbawa piliin ang * mula sa TableName, atbp. Ang mga set ng data ay maaaring ibalik kung aling gumagamit ang maaaring hawakan sa kanyang app, at magagawa niya ang lahat ng mga karaniwang bagay tulad ng pag-update, tanggalin , magpasok ng mga pamamaraan, atbp Ito ay isa sa mga pinagbabatayan na teknolohiya sa likod ng karamihan sa Java DBA (kabilang ang mga nagbibigay ng JPA).

Ang isang pangunahing isyu sa tradisyonal na JDBC apps ay ang gumagamit ay maaaring madalas na magkaroon ng ilang crappy code kung saan ang logic ay halo-halong may SQL, maraming pagma-map sa pagitan ng mga set ng data at mga bagay na nangyari, atbp.

Ang JPA ay isang opisyal na tool para sa Pag-ugnay ng Object Relapping. Ang JPA ay isang teknolohiya na nagpapahintulot sa gumagamit na mag-mapa sa pagitan ng mga bagay sa mga talahanayan ng code at database. Ang JPA ay maaaring "itago" ang SQL mula sa nag-develop upang ang lahat ng kanilang pakikitungo sa loob ng mga klase ng Java, at pinapayagan ka ng provider na i-save ang mga ito at mai-load ang mga ito nang malayuan. Kadalasan, ang XML na mga mapa ng mga file o annotation sa mga setters at getter ay maaaring magamit upang sabihin sa JPA provider. kung saan patlang sa mapa ng object ng gumagamit kung saan patlang sa DB. ang hibernate ay ang pinakasikat na provider ng JPA.

ilang iba pang mga halimbawa kabilang ang OpenJPA, toplink, atbp.

Ang hibernate at iba pang tanyag na mga tagabigay ng serbisyo para sa JPA ay sumulat ng SQL at gumamit ng JDBC upang mabasa at magsulat mula sa at sa DB.

Salamat.

kung gusto mo ang aking sagot pagkatapos ay upvote ito.


sagot 2:

Ito ay magiging bahagyang kumplikado upang maunawaan ang pagkakaiba-iba ng parehong kung ikaw ay isang baguhan. Sa tingin ko u dapat magsimula sa pamamagitan ng pag-unawa sa pagkakaiba sa pagitan ng JDBC at Hibernate. Inaasahan kong alam mo kung ano ang JDBC, pa rin bilang isang paglalarawan ng breif: JDBC ay nakatayo para sa Java Database Connectivity. Ang JDBC ay isang Java API upang kumonekta at nagsasagawa ng query sa db. Nagbibigay ito ng mga driver upang kumonekta sa db. Maaari mong gamitin ang JDBC API upang ma-access ang data ng tabular na nakaimbak sa anumang database ng pamanggit. Sa tulong ng JDBC API, mai-save, i-update, tanggalin at makuha ang data mula sa database.

Ngayon ano ang hibernate? Ito ay isang balangkas na hindi katulad ng JDBC, u pag-import ng mga librarya ng hibernate bago gamitin ito, habang ang JDBC ay isang bahagi ng J2SE mismo. Ginagawa ng hibernate ang parehong bagay kung ano ang binuo ng JDBC, ngunit maaari mong sabihin ang Hibernate ay isang advance na antas ng JDBC. Ginagawang simple ng hibernate ang pag-unlad ng aplikasyon ng Java upang makipag-ugnay sa database.Ito ay isang tool sa ORM, nangangahulugan ito na mapa ang mga bagay ng java gamit ang mga db talahanayan. Ang isang klase ng java ay maaaring kumatawan sa isang mesa sa db. Halimbawa, kung na-mapa mo ang talahanayan ng "emp_26" bilang klase ng Empleyado sa Hibernate pagkatapos ay magsulat ka ng isang simpleng query na nakatuon sa object upang makuha ang lahat ng mga empleyado mula sa empl_26 talahanayan: "mula sa Empleyado" // sa Hibernate "piliin ang * mula sa emp_26" // in JDBC.

Mayroong impiyerno na maraming mga tampok na ibinibigay ng Hibernate tulad ng cache, asosasyon-pagmamapa, pamana-pagmamapa, HQL, pagination n maraming iba pa na hindi magagamit sa JDBC.

Pagdating sa JPA, ito ay isang detalye, ito ay isang hanay ng mga klase at mga interface. Kailangan ng JPA ng isang tool upang maipatupad ito at ang tool na iyon ay maaaring maging hibernate. Sa pamamagitan ng pagpapatupad ng JPA, maaari mong gawin ang parehong ginagawa ng hibernate, ngunit sa format ng JPA.If JPA ay isang sayaw pagkatapos ang hibernate o ilang iba pang tool ay kinakailangan upang bigyan ito ng isang sayaw-yugto. Sa pamamagitan ng paraan ay hindi nangangahulugang ang sayaw ng hibernate ay hindi maaaring sumayaw nang walang JPA, nakuha rin ng hibernate ang sariling sayaw.


sagot 3:

Ang JDBC ay isang pamantayan para sa pagkonekta sa isang DB nang direkta at pagpapatakbo ng SQL laban dito - hal. PUMILI * MULA SA MGA GAMIT, atbp. Maaaring ibalik ang mga set ng data na maaari mong hawakan sa iyong app, at magagawa mo ang lahat ng mga karaniwang bagay tulad ng INSERT, DELETE, magpatakbo ng mga naka-imbak na pamamaraan, atbp Ito ay isa sa mga pinagbabatayan na teknolohiya sa likod ng karamihan sa pag-access sa database ng Java (kabilang ang mga nagbibigay ng JPA).

Ang isa sa mga isyu sa tradisyonal na JDBC apps ay maaari kang madalas na magkaroon ng ilang crappy code kung saan maraming mga pagma-map sa pagitan ng mga set ng data at mga bagay na nangyayari, ang logic ay halo-halong sa SQL, atbp.

Ang JPA ay isang pamantayan para sa Pagpapalitan ng Object Relapping. Ito ay isang teknolohiya na nagbibigay-daan sa iyo upang mag-mapa sa pagitan ng mga bagay sa mga talahanayan ng code at database. Maaari nitong "itago" ang SQL mula sa nag-develop upang ang lahat ng pakikitungo nila ay mga klase sa Java, at pinapayagan ka ng provider na i-save ang mga ito at mag-load ang mga ito nang magically. Kadalasan, ang XML na mga mapa ng mga file o annotation sa mga getter at setters ay maaaring magamit upang sabihin sa JPA provider na patlang sa iyong object map kung saan patlang sa DB. Ang pinakatanyag na tagapagbigay ng JPA ay ang hibernate, kaya magandang lugar na magsisimula para sa mga kongkretong halimbawa.

Ang iba pang mga halimbawa ay kinabibilangan ng OpenJPA, toplink, atbp.