Hibernate - Ringkasan ORM
Apa itu JDBC?
JDBC adalah singkatan dari Java Database Connectivity. Ini menyediakan satu set Java API untuk mengakses database relasional dari program Java. Java API ini memungkinkan program Java untuk menjalankan pernyataan SQL dan berinteraksi dengan database yang sesuai dengan SQL.
JDBC menyediakan arsitektur yang fleksibel untuk menulis aplikasi database independen yang dapat berjalan pada platform yang berbeda dan berinteraksi dengan DBMS yang berbeda tanpa modifikasi apapun.
Pro dan Kontra JDBC
Kelebihan JDBC | Kontra JDBC |
---|---|
Pemrosesan SQL yang bersih dan sederhana Performa bagus dengan data besar Sangat bagus untuk aplikasi kecil Sintaksnya sederhana sehingga mudah dipelajari |
Rumit jika digunakan dalam proyek besar Overhead pemrograman besar Tidak ada enkapsulasi Sulit untuk menerapkan konsep MVC Kueri adalah khusus DBMS |
Mengapa Object Relational Mapping (ORM)?
Ketika kita bekerja dengan sistem berorientasi objek, ada ketidaksesuaian antara model objek dan database relasional. RDBMS merepresentasikan data dalam format tabel sedangkan bahasa berorientasi objek, seperti Java atau C # merepresentasikannya sebagai grafik objek yang saling berhubungan.
Pertimbangkan Kelas Java berikut dengan konstruktor yang tepat dan fungsi publik terkait -
public class Employee {
private int id;
private String first_name;
private String last_name;
private int salary;
public Employee() {}
public Employee(String fname, String lname, int salary) {
this.first_name = fname;
this.last_name = lname;
this.salary = salary;
}
public int getId() {
return id;
}
public String getFirstName() {
return first_name;
}
public String getLastName() {
return last_name;
}
public int getSalary() {
return salary;
}
}
Pertimbangkan objek di atas untuk disimpan dan diambil ke dalam tabel RDBMS berikut -
create table EMPLOYEE (
id INT NOT NULL auto_increment,
first_name VARCHAR(20) default NULL,
last_name VARCHAR(20) default NULL,
salary INT default NULL,
PRIMARY KEY (id)
);
Masalah pertama, bagaimana jika kita perlu memodifikasi desain database kita setelah mengembangkan beberapa halaman atau aplikasi kita? Kedua, memuat dan menyimpan objek dalam database relasional menghadapkan kita pada lima masalah ketidakcocokan berikut -
Sr.No. | Ketidakcocokan & Deskripsi |
---|---|
1 | Granularity Kadang-kadang Anda akan memiliki model objek, yang memiliki lebih banyak kelas daripada jumlah tabel yang sesuai dalam database. |
2 | Inheritance RDBMS tidak mendefinisikan sesuatu yang mirip dengan Warisan, yang merupakan paradigma alami dalam bahasa pemrograman berorientasi objek. |
3 | Identity Sebuah RDBMS mendefinisikan dengan tepat satu gagasan tentang 'kesamaan': kunci utama. Java, bagaimanapun, mendefinisikan identitas objek (a == b) dan persamaan objek (a.equals (b)). |
4 | Associations Bahasa berorientasi objek mewakili asosiasi menggunakan referensi objek sedangkan RDBMS mewakili asosiasi sebagai kolom kunci asing. |
5 | Navigation Cara Anda mengakses objek di Java dan di RDBMS pada dasarnya berbeda. |
Itu Object-Relasional Mapping (ORM) adalah solusi untuk menangani semua ketidaksesuaian impedansi di atas.
Apa itu ORM?
ORM adalah singkatan dari Object-Relasional Mapping (ORM) adalah teknik pemrograman untuk mengubah data antara database relasional dan bahasa pemrograman berorientasi objek seperti Java, C #, dll.
Sistem ORM memiliki keunggulan berikut dibandingkan JDBC biasa -
Sr.No. | Keuntungan |
---|---|
1 | Mari kode bisnis mengakses objek daripada tabel DB. |
2 | Menyembunyikan detail kueri SQL dari logika OO. |
3 | Berdasarkan JDBC 'under the hood.' |
4 | Tidak perlu berurusan dengan implementasi database. |
5 | Entitas didasarkan pada konsep bisnis daripada struktur database. |
6 | Manajemen transaksi dan pembuatan kunci otomatis. |
7 | Pengembangan aplikasi yang cepat. |
Solusi ORM terdiri dari empat entitas berikut -
Sr.No. | Solusi |
---|---|
1 | API untuk melakukan operasi CRUD dasar pada objek kelas persisten. |
2 | Bahasa atau API untuk menentukan kueri yang merujuk ke kelas dan properti kelas. |
3 | Fasilitas yang dapat dikonfigurasi untuk menentukan metadata pemetaan. |
4 | Sebuah teknik untuk berinteraksi dengan objek transaksional untuk melakukan pemeriksaan kotor, pengambilan asosiasi yang lambat, dan fungsi pengoptimalan lainnya. |
Framework Java ORM
Ada beberapa kerangka kerja persisten dan opsi ORM di Java. Kerangka kerja persisten adalah layanan ORM yang menyimpan dan mengambil objek ke dalam database relasional.
- Kacang Badan Enterprise JavaBeans
- Objek Data Java
- Castor
- TopLink
- Musim semi DAO
- Hibernate
- Dan masih banyak lagi