Apa perbedaan antara JPA dan JDBC?


Jawaban 1:

JDBC adalah alat standar untuk menghubungkan ke Database secara langsung dan menjalankan SQL melawannya misalnya pilih * dari TableName, dll. Kumpulan data dapat dikembalikan yang dapat ditangani pengguna di aplikasinya, dan ia dapat melakukan semua hal yang biasa seperti memperbarui, menghapus , menyisipkan prosedur, dll. Ini adalah salah satu teknologi yang mendasari di belakang sebagian besar Java DBA (termasuk penyedia JPA).

Salah satu masalah utama dengan aplikasi JDBC tradisional adalah bahwa pengguna sering dapat memiliki beberapa kode jelek di mana logika dicampur dengan SQL, banyak pemetaan antara set data dan objek terjadi, dll.

JPA adalah alat resmi untuk Pemetaan Relasional Objek. JPA adalah teknologi yang memungkinkan pengguna untuk memetakan antara objek dalam kode dan tabel database. JPA dapat "menyembunyikan" SQL dari pengembang sehingga semua yang mereka tangani dalam kelas Java, dan penyedia memungkinkan Anda untuk menyimpannya dan memuatnya dari jarak jauh. Sebagian besar, file pemetaan XML atau anotasi pada setter dan getter dapat digunakan untuk memberi tahu penyedia JPA. bidang mana pada objek pengguna memetakan bidang mana dalam DB. hibernate adalah penyedia JPA paling populer.

beberapa contoh lain termasuk OpenJPA, toplink, dll.

Hibernate dan penyedia populer lainnya untuk JPA menulis SQL dan menggunakan JDBC untuk membaca dan menulis dari dan ke DB.

Terima kasih.

jika Anda suka jawaban saya maka upvote.


Jawaban 2:

Akan sedikit rumit untuk memahami perbedaan antara keduanya jika Anda seorang pemula. Saya pikir Anda harus memulai dengan memahami perbedaan antara JDBC dan Hibernate terlebih dahulu. Saya harap Anda tahu apa itu JDBC, masih sebagai deskripsi singkat: JDBC singkatan dari Java Database Connectivity. JDBC adalah Java API untuk menghubungkan dan mengeksekusi kueri dengan db. Ini menyediakan driver untuk terhubung dengan db. Anda dapat menggunakan JDBC API untuk mengakses data tabular yang disimpan dalam basis data relasional apa pun. Dengan bantuan JDBC API, kami dapat menyimpan, memperbarui, menghapus, dan mengambil data dari basis data.

Sekarang apa itu Hibernate? Ini adalah kerangka kerja seperti JDBC, Anda harus mengimpor perpustakaan Hibernate sebelum Anda menggunakannya, sementara JDBC adalah bagian dari J2SE itu sendiri. Hibernate melakukan hal yang sama dengan apa yang dikembangkan JDBC, tetapi Anda dapat mengatakan Hibernate adalah level lanjutan dari JDBC. Hibernate menyederhanakan pengembangan aplikasi Java untuk berinteraksi dengan database. Ini adalah alat ORM, berarti memetakan objek java dengan tabel db. Kelas java dapat mewakili tabel dalam db. Misalnya, jika Anda memetakan tabel "emp_26" sebagai kelas Karyawan di Hibernate maka Anda akan menulis kueri berorientasi objek sederhana untuk mengambil semua karyawan dari tabel empl_26: "from Employee" // in Hibernate "select * from emp_26" // in JDBC.

Ada banyak fitur yang disediakan Hibernate seperti cache, pemetaan asosiasi, pemetaan warisan, HQL, pagination dan banyak lagi yang tidak tersedia di JDBC.

Datang ke JPA, ini adalah spesifikasi, ini adalah sekumpulan kelas & antarmuka. JPA membutuhkan alat untuk mengimplementasikannya dan alat itu bisa Hibernate. Dengan menerapkan JPA, Anda dapat melakukan hal yang sama seperti yang dilakukan Hibernate, tetapi dalam format JPA. Jika JPA adalah tarian maka Hibernate atau beberapa alat lain diperlukan untuk memberikannya panggung dansa. Ngomong-ngomong itu bukan berarti Hibernate tidak bisa menari tanpa JPA, Hibernate juga punya tarian sendiri.


Jawaban 3:

JDBC adalah standar untuk menghubungkan ke DB secara langsung dan menjalankan SQL - misalnya SELECT * FROM USERS, dll. Kumpulan data dapat dikembalikan yang dapat Anda tangani di aplikasi Anda, dan Anda dapat melakukan semua hal yang biasa seperti INSERT, DELETE, menjalankan prosedur tersimpan, dll. Ini adalah salah satu teknologi yang mendasari di balik sebagian besar akses basis data Java (termasuk penyedia JPA).

Salah satu masalah dengan aplikasi JDBC tradisional adalah Anda sering dapat memiliki kode jelek di mana banyak pemetaan antara set data dan objek terjadi, logika dicampur dengan SQL, dll.

JPA adalah standar untuk Pemetaan Relasional Objek. Ini adalah teknologi yang memungkinkan Anda untuk memetakan antara objek dalam kode dan tabel database. Ini dapat "menyembunyikan" SQL dari pengembang sehingga semua yang mereka tangani adalah kelas Java, dan penyedia memungkinkan Anda untuk menyimpannya dan memuatnya secara ajaib. Sebagian besar, file pemetaan XML atau anotasi pada getter dan setter dapat digunakan untuk memberi tahu penyedia JPA bidang mana pada peta objek Anda ke bidang mana dalam DB. Penyedia JPA paling terkenal adalah Hibernate, jadi ini adalah tempat yang baik untuk memulai contoh konkret.

Contoh lain termasuk OpenJPA, toplink, dll.