Hibernate - Arsitektur
Hibernate memiliki arsitektur berlapis yang membantu pengguna untuk beroperasi tanpa harus mengetahui API yang mendasarinya. Hibernate menggunakan database dan data konfigurasi untuk menyediakan layanan persistensi (dan objek persisten) ke aplikasi.
Berikut ini adalah tampilan tingkat tinggi dari Arsitektur Aplikasi Hibernasi.
Berikut ini adalah tampilan rinci dari Arsitektur Aplikasi Hibernate dengan kelas inti yang penting.
Hibernate menggunakan berbagai Java API yang ada, seperti JDBC, Java Transaction API (JTA), dan Java Naming and Directory Interface (JNDI). JDBC menyediakan tingkat dasar abstraksi fungsionalitas yang umum untuk database relasional, memungkinkan hampir semua database dengan driver JDBC didukung oleh Hibernate. JNDI dan JTA memungkinkan Hibernate diintegrasikan dengan server aplikasi J2EE.
Bagian berikut memberikan penjelasan singkat dari masing-masing objek kelas yang terlibat dalam Arsitektur Aplikasi Hibernasi.
Objek Konfigurasi
Objek Konfigurasi adalah objek Hibernasi pertama yang Anda buat di aplikasi Hibernasi apa pun. Biasanya dibuat hanya sekali selama inisialisasi aplikasi. Ini mewakili file konfigurasi atau properti yang dibutuhkan oleh Hibernate.
Objek Konfigurasi menyediakan dua komponen kunci -
Database Connection- Ini ditangani melalui satu atau lebih file konfigurasi yang didukung oleh Hibernate. File-file ini adalahhibernate.properties dan hibernate.cfg.xml.
Class Mapping Setup - Komponen ini membuat koneksi antara kelas Java dan tabel database.
Objek SessionFactory
Objek konfigurasi digunakan untuk membuat objek SessionFactory yang pada gilirannya mengkonfigurasi Hibernate untuk aplikasi menggunakan file konfigurasi yang disediakan dan memungkinkan objek Session dibuat. SessionFactory adalah objek thread aman dan digunakan oleh semua thread aplikasi.
SessionFactory adalah objek kelas berat; biasanya dibuat selama aplikasi dijalankan dan disimpan untuk digunakan nanti. Anda akan membutuhkan satu objek SessionFactory per database menggunakan file konfigurasi terpisah. Jadi, jika Anda menggunakan banyak database, Anda harus membuat beberapa objek SessionFactory.
Objek Sesi
Sesi digunakan untuk mendapatkan koneksi fisik dengan database. Objek Session ringan dan dirancang untuk dibuat instance-nya setiap kali diperlukan interaksi dengan database. Objek persisten disimpan dan diambil melalui objek Sesi.
Objek sesi tidak boleh dibuka untuk waktu yang lama karena biasanya tidak aman untuk thread dan harus dibuat serta dimusnahkan sesuai kebutuhan.
Objek Transaksi
Transaksi mewakili satu unit kerja dengan database dan sebagian besar RDBMS mendukung fungsionalitas transaksi. Transaksi dalam Hibernate ditangani oleh manajer transaksi dan transaksi yang mendasarinya (dari JDBC atau JTA).
Ini adalah objek opsional dan aplikasi Hibernasi dapat memilih untuk tidak menggunakan antarmuka ini, melainkan mengelola transaksi dalam kode aplikasinya sendiri.
Objek Kueri
Objek kueri menggunakan string SQL atau Hibernate Query Language (HQL) untuk mengambil data dari database dan membuat objek. Sebuah contoh Query digunakan untuk mengikat parameter query, membatasi jumlah hasil yang dikembalikan oleh query, dan terakhir untuk mengeksekusi query.
Objek Kriteria
Objek kriteria digunakan untuk membuat dan menjalankan kueri kriteria berorientasi objek untuk mengambil objek.