ຄວາມແຕກຕ່າງກັນລະຫວ່າງ JPA ແລະ JDBC ແມ່ນຫຍັງ?


ຕອບ 1:

JDBC ແມ່ນເຄື່ອງມືມາດຕະຖານ ສຳ ລັບການເຊື່ອມຕໍ່ໂດຍກົງກັບຖານຂໍ້ມູນແລະການເຮັດວຽກຂອງ SQL. ຕົວຢ່າງ, ເລືອກ * ຈາກ TableName, etc. ມັນສາມາດສົ່ງຄືນບັນທຶກທີ່ຜູ້ໃຊ້ສາມາດປະມວນຜົນໃນແອັບ their ຂອງພວກເຂົາໄດ້, ແລະພວກເຂົາສາມາດເຮັດທຸກວຽກປົກກະຕິເຊັ່ນການອັບເດດແລະລຶບອອກ.

ບັນຫາໃຫຍ່ຂອງແອັບ J JDBC ແບບດັ້ງເດີມແມ່ນຜູ້ໃຊ້ມັກຈະມີລະຫັດ shitty ທີ່ປະສົມປະສານຕາມເຫດຜົນກັບ SQL, ມີຫລາຍແຜນທີ່ລະຫວ່າງບັນທຶກແລະວັດຖຸ, ແລະອື່ນໆ.

JPA ແມ່ນເຄື່ອງມືທາງການ ສຳ ລັບການສ້າງແຜນທີ່ທີ່ກ່ຽວຂ້ອງກັບວັດຖຸ. JPA ແມ່ນເຕັກໂນໂລຢີທີ່ຊ່ວຍໃຫ້ຜູ້ໃຊ້ສາມາດວາງແຜນວັດຖຸໃນຕາຕະລາງລະຫັດແລະຖານຂໍ້ມູນ. JPA ສາມາດ "ເຊື່ອງ" SQL ຈາກນັກພັດທະນາ, ສະນັ້ນທຸກຢ່າງທີ່ກ່ຽວຂ້ອງກັບຊັ້ນຮຽນ Java, ແລະຜູ້ໃຫ້ບໍລິການຊ່ວຍໃຫ້ທ່ານສາມາດປະຫຍັດແລະໂຫຼດພວກມັນໄດ້ຈາກໄລຍະໄກ. ເວລາສ່ວນໃຫຍ່, ເອກະສານແຜນທີ່ XML ຫລືບັນທຶກກ່ຽວກັບເຄື່ອງພິມດີດແລະເຄື່ອງຮັບສາມາດໃຊ້ເພື່ອແຈ້ງໃຫ້ຜູ້ໃຫ້ບໍລິການ JPA. ຂົງເຂດໃດທີ່ຢູ່ໃນຈຸດປະສົງຂອງຜູ້ໃຊ້ຖືກມອບ ໝາຍ ໃຫ້ມີຂໍ້ມູນໃດທີ່ຢູ່ໃນຖານຂໍ້ມູນ? Hibernation ແມ່ນຜູ້ໃຫ້ບໍລິການ JPA ທີ່ນິຍົມທີ່ສຸດ.

ບາງຕົວຢ່າງອື່ນໆລວມທັງ OpenJPA, Topplink, ແລະອື່ນໆ.

Hibernate ແລະຜູ້ໃຫ້ບໍລິການ JPA ທີ່ມີຊື່ສຽງອື່ນໆຂຽນ SQL ແລະໃຊ້ JDBC ເພື່ອອ່ານແລະຂຽນຫາແລະຈາກຖານຂໍ້ມູນ.

ຂອບໃຈຫຼາຍໆ.

ຖ້າທ່ານມັກ ຄຳ ຕອບຂອງຂ້ອຍ, ແລ້ວຕົກລົງ.


ຕອບ 2:

ມັນຈະເປັນເລື່ອງທີ່ສັບສົນທີ່ຈະເຂົ້າໃຈຄວາມແຕກຕ່າງລະຫວ່າງສອງຢ່າງຖ້າທ່ານເປັນຜູ້ເລີ່ມຕົ້ນ. ຂ້ອຍຄິດວ່າເຈົ້າຄວນເຂົ້າໃຈຄວາມແຕກຕ່າງລະຫວ່າງ JDBC ແລະ Hibernate. ຂ້າພະເຈົ້າຫວັງວ່າທ່ານຈະຮູ້ວ່າ JDBC ແມ່ນຫຍັງ, ຍັງເປັນ ຄຳ ອະທິບາຍສັ້ນໆ: JDBC ຫຍໍ້ມາຈາກ Java Database Connectivity. JDBC ແມ່ນ Java API ເພື່ອເຊື່ອມຕໍ່ແລະເອີ້ນໃຊ້ ຄຳ ຖາມທຽບກັບຖານຂໍ້ມູນ. ມັນໃຫ້ຜູ້ຂັບຂີ່ ສຳ ລັບເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນ. ທ່ານສາມາດໃຊ້ JDBC API ເພື່ອເຂົ້າເຖິງຂໍ້ມູນ tabular ທີ່ເກັບໄວ້ໃນຖານຂໍ້ມູນທີ່ກ່ຽວຂ້ອງ. ການ ນຳ ໃຊ້ JDBC API, ພວກເຮົາສາມາດປະຫຍັດ, ປັບປຸງ, ລຶບແລະດຶງເອົາຂໍ້ມູນຈາກຖານຂໍ້ມູນ.

ຕອນນີ້ hibernation ແມ່ນຫຍັງ? ບໍ່ຄືກັບ JDBC, ທ່ານຕ້ອງ ນຳ ເຂົ້າຫໍສະ ໝຸດ Hibernate ກ່ອນທີ່ຈະ ນຳ ໃຊ້, ໃນຂະນະທີ່ JDBC ແມ່ນສ່ວນ ໜຶ່ງ ຂອງ J2SE ເອງ. Hibernate ເຮັດໃນສິ່ງທີ່ JDBC ຖືກອອກແບບມາ, ແຕ່ທ່ານສາມາດເວົ້າໄດ້ວ່າ Hibernate ແມ່ນລະດັບທີ່ກ້າວ ໜ້າ ຂອງ JDBC. Hibernation ເຮັດໃຫ້ການພັດທະນາໂປແກຼມ Java ງ່າຍຂື້ນເພື່ອການພົວພັນກັບຖານຂໍ້ມູນ. ມັນແມ່ນເຄື່ອງມື ORM, ໝາຍ ຄວາມວ່າມັນມອບວັດຖຸ Java ໃຫ້ກັບຕາຕະລາງ DB. ຊັ້ນ Java ສາມາດເປັນຕົວແທນຂອງຕາຕະລາງໃນ db. ຕົວຢ່າງ: ຖ້າທ່ານໄດ້ມອບຕາຕະລາງ emp_26 ໃຫ້ເປັນຊັ້ນພະນັກງານໃນ Hibernate, ຂຽນແບບສອບຖາມທີ່ມີຈຸດປະສົງງ່າຍໆເພື່ອໃຫ້ພະນັກງານທັງ ໝົດ ຈາກຕາຕະລາງ empl_26: "ຈາກພະນັກງານ" // ໃນ Hibernate "ເລືອກ * ຈາກ emp_26" // ໃນ JDBC.

ມີນະຮົກທີ່ມີຫຼາຍລັກສະນະທີ່ Hibernate ຕ້ອງສະ ເໜີ ເຊັ່ນ: cache, ການສ້າງແຜນທີ່, ການສ້າງແຜນທີ່ມູນມໍລະດົກ, HQL, ການຈັດລຽງ ລຳ ດັບແລະອື່ນໆທີ່ບໍ່ມີຢູ່ໃນ JDBC.

JPA ແມ່ນສະເພາະ, ຊຸດຂອງຫ້ອງຮຽນແລະອິນເຕີເຟດ. JPA ຕ້ອງການເຄື່ອງມືເພື່ອຈັດຕັ້ງປະຕິບັດມັນ, ແລະເຄື່ອງມືນີ້ສາມາດເອົາໄປນອນຫລັບໄດ້. ໂດຍການປະຕິບັດ JPA, ທ່ານສາມາດເຮັດຄືກັນກັບ Hibernate, ແຕ່ໃນຮູບແບບ JPA. ຖ້າ JPA ແມ່ນການເຕັ້ນ, Hibernate ຫຼືເຄື່ອງມືອື່ນແມ່ນຕ້ອງການໃຫ້ມັນມີເວທີເຕັ້ນ. ໂດຍວິທີທາງການ, ມັນບໍ່ໄດ້ຫມາຍຄວາມວ່າ Hibernate ບໍ່ສາມາດເຕັ້ນໂດຍບໍ່ມີ JPA, Hibernate ຍັງມີການເຕັ້ນຂອງຕົນເອງ.


ຕອບ 3:

JDBC ແມ່ນມາດຕະຖານ ສຳ ລັບການເຊື່ອມຕໍ່ໂດຍກົງກັບຖານຂໍ້ມູນແລະການເຮັດວຽກຂອງ SQL - ເຊັ່ນ: B. ການຄັດເລືອກ * ຈາກຜູ້ໃຊ້, ແລະອື່ນໆມັນສາມາດສົ່ງຄືນບັນທຶກທີ່ທ່ານສາມາດປະມວນຜົນໃນແອັບ your ຂອງທ່ານໄດ້, ແລະທ່ານສາມາດເຮັດທຸກວຽກປົກກະຕິເຊັ່ນ INSERT, DELETE. ປະຕິບັດຂັ້ນຕອນທີ່ເກັບໄວ້, ແລະອື່ນໆ. ນີ້ແມ່ນ ໜຶ່ງ ໃນເຕັກໂນໂລຢີທີ່ຕິດພັນ ສຳ ລັບການເຂົ້າເຖິງຖານຂໍ້ມູນ Java ສ່ວນໃຫຍ່ (ລວມທັງຜູ້ໃຫ້ບໍລິການ JPA).

ໜຶ່ງ ໃນບັນຫາທີ່ເກີດຂື້ນກັບແອັບ J JDBC ແບບດັ້ງເດີມແມ່ນພວກມັນມັກຈະມີລະຫັດ shitty ທີ່ມີການເຮັດແຜນທີ່ຫຼາຍຢ່າງລະຫວ່າງບັນທຶກແລະວັດຖຸ, ເຫດຜົນທີ່ປະສົມກັບ SQL, ແລະອື່ນໆ.

JPA ແມ່ນມາດຕະຖານ ສຳ ລັບການສ້າງແຜນທີ່ທີ່ກ່ຽວຂ້ອງກັບວັດຖຸ. ນີ້ແມ່ນເຕັກໂນໂລຢີທີ່ທ່ານສາມາດໃຊ້ເພື່ອວາງແຜນວັດຖຸໃນຕາຕະລາງລະຫັດແລະຖານຂໍ້ມູນ. ນີ້ຊ່ວຍໃຫ້ SQL ຖືກ "ເຊື່ອງ" ຈາກນັກພັດທະນາເພື່ອໃຫ້ມີພຽງແຕ່ຊັ້ນຮຽນ Java ເທົ່ານັ້ນທີ່ຖືກປົກຄຸມ. ຜູ້ໃຫ້ບໍລິການຊ່ວຍໃຫ້ທ່ານສາມາດຊ່ວຍປະຢັດພວກມັນແລະໂຫລດພວກມັນໄດ້ຢ່າງສະຫຼາດ. ໃນກໍລະນີຫຼາຍທີ່ສຸດ, ເອກະສານແຜນທີ່ XML ຫລືເອກະສານຊ້ອນທ້າຍແລະ ຄຳ ບັນຊີ setter ສາມາດຖືກ ນຳ ໃຊ້ເພື່ອບອກກັບຜູ້ໃຫ້ບໍລິການ JPA ວ່າມີຂໍ້ມູນໃດແດ່ທີ່ຢູ່ໃນວັດຖຸຂອງທ່ານຖືກວາງແຜນທີ່ຢູ່ໃນຖານຂໍ້ມູນ. ຜູ້ໃຫ້ບໍລິການ JPA ທີ່ຮູ້ຈັກດີທີ່ສຸດແມ່ນ Hibernate, ສະນັ້ນນີ້ແມ່ນຈຸດເລີ່ມຕົ້ນທີ່ດີ ສຳ ລັບຕົວຢ່າງສີມັງ.

ຕົວຢ່າງອື່ນໆແມ່ນ OpenJPA, Toplink, ແລະອື່ນໆ.