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