Apakah perbezaan antara JPA dan JDBC?


Jawapan 1:

JDBC adalah alat standard untuk menyambung ke Pangkalan Data secara langsung dan menjalankan SQL terhadapnya misalnya memilih * dari TableName, dan lain-lain. Set data boleh dikembalikan yang pengguna boleh mengendalikan dalam aplikasinya, dan dia boleh melakukan semua perkara biasa seperti kemas kini, memadam , memasukkan prosedur, dan sebagainya. Ini adalah salah satu teknologi yang mendasari kebanyakan DBA Java (termasuk penyedia JPA).

Satu isu utama dengan aplikasi JDBC tradisional ialah pengguna sering boleh mempunyai beberapa kod jelek di mana logik bercampur dengan SQL, banyak pemetaan antara set data dan objek berlaku, dan lain-lain.

JPA adalah alat rasmi untuk Pemetaan Relasi Objek. JPA adalah teknologi yang membolehkan pengguna memetakan antara objek dalam kod dan jadual pangkalan data. JPA boleh "menyembunyikan" SQL dari pemaju supaya semua yang mereka hadapi dalam kelas Java, dan pembekal membolehkan anda menyimpannya dan memuatkannya dari jauh. Kebanyakannya, fail pemetaan XML atau anotasi pada penetas dan getters boleh digunakan untuk memberitahu pembekal JPA. bidang mana pada peta objek pengguna yang mana bidang dalam DB. hibernate adalah penyedia JPA paling popular.

beberapa contoh lain termasuk OpenJPA, toplink, dll.

Hibernate dan penyedia popular lain untuk JPA menulis SQL dan menggunakan JDBC untuk membaca dan menulis dari dan ke DB.

Terima kasih.

jika anda menyukai jawapan saya kemudian upvote itu.


Jawapan 2:

Ia akan menjadi sedikit rumit untuk memahami perbezaan bw kedua-duanya jika anda seorang pemula. Saya fikir anda harus bermula dengan memahami perbezaan antara JDBC dan Hibernate terlebih dahulu. Saya harap anda tahu apa JDBC adalah, masih sebagai penerangan breif: JDBC bermaksud Sambungan Pangkalan Data Java. JDBC adalah API Java untuk menyambung dan melaksanakan pertanyaan dengan db. Ia menyediakan pemandu untuk menyambung dengan db. Anda boleh menggunakan API JDBC untuk mengakses data jadual yang disimpan dalam pangkalan data relasi mana pun. Dengan bantuan API JDBC, kami boleh menyimpan, mengemas kini, memadam dan mengambil data dari pangkalan data.

Sekarang apa yang Hibernate? Ini rangka kerja tidak seperti JDBC, anda boleh mengimport perpustakaan Hibernate sebelum menggunakannya, sementara JDBC adalah sebahagian daripada J2SE itu sendiri. Hibernate melakukan perkara yang sama seperti apa yang dibangunkan oleh JDBC, tetapi anda boleh mengatakan Hibernate adalah tahap awal JDBC. Hibernate memudahkan pembangunan aplikasi Java untuk berinteraksi dengan pangkalan data.Ia adalah alat ORM, bermakna ia memetakan objek java dengan jadual db. Kelas java boleh mewakili jadual di db. Sebagai contoh, jika anda memetakan jadual "emp_26" sebagai kelas Kakitangan di Hibernate maka anda akan menulis pertanyaan yang berorientasikan objek mudah untuk mengambil semua pekerja dari jadual empl_26: "dari Pekerja" // dalam Hibernate "pilih * dari emp_26" // dalam JDBC.

Terdapat banyak ciri yang disediakan oleh Hibernate seperti cache, pemetaan persatuan, pemetaan warisan, HQL, penomboran n banyak lagi yang tidak tersedia di JDBC.

Datang ke JPA, itu satu spesifikasi, ia satu set kelas & antara muka. JPA memerlukan alat untuk melaksanakannya dan alat itu boleh Hibernate. Dengan melaksanakan JPA, anda boleh melakukan perkara yang sama seperti Hibernate, tetapi dalam format JPA.Jika JPA adalah tarian maka Hibernate atau beberapa alat lain diperlukan untuk memberikannya sebagai tarian. Dengan cara ini tidak bermakna Hibernate tidak boleh menari tanpa JPA, Hibernate juga mendapat tarian sendiri.


Jawapan 3:

JDBC adalah satu standard untuk menyambung ke DB langsung dan menjalankan SQL terhadapnya - mis. SELECT * FROM PENGGUNA, dan lain-lain. Set data boleh dikembalikan yang anda boleh mengendalikan dalam aplikasi anda, dan anda boleh melakukan semua perkara biasa seperti INSERT, DELETE, menjalankan prosedur tersimpan, dan lain-lain. Ini adalah salah satu teknologi yang mendasari akses kebanyakan pangkalan data Java (termasuk penyedia JPA).

Salah satu isu dengan aplikasi JDBC tradisional adalah bahawa anda sering boleh mempunyai beberapa kod jelek di mana banyak pemetaan antara set data dan objek berlaku, logik bercampur dengan SQL, dll.

JPA adalah standard untuk Pemetaan Relasi Objek. Ini adalah teknologi yang membolehkan anda memetakan antara objek dalam kod dan jadual pangkalan data. Ini boleh "menyembunyikan" SQL dari pemaju supaya semua yang mereka hadapi adalah kelas Java, dan pembekal membolehkan anda menyimpannya dan memuatkannya secara ajaib. Kebanyakannya, fail pemetaan XML atau anotasi pada getters dan setters boleh digunakan untuk memberitahu pembekal JPA yang bidang pada peta objek anda di mana bidang dalam DB. Penyedia JPA yang paling terkenal adalah Hibernate, jadi ia adalah tempat yang baik untuk memulakan contoh konkrit.

Contoh lain termasuk OpenJPA, toplink, dll.