Pada dasarnya, data dalam suatu aplikasi disimpan dalam suatu basis data relasional. Software basis data yang digunakan untuk keperluan tersebut pada dasarnya merupakan software basis data yang dikelola dengan perintah SQL (Structured Query Language). Beberapa contoh software tersebut diantaranya adalah MySQL, PostgreSQL, Oracle, HSQLDB, dan lain-lain. Untuk mengakses persistent data yang tersimpan dalam basis data, diperlukan suatu API yang dikenal dengan istilah JDBC. Setiap software basis data mempunyai driver JDBC yang memungkinkan pemrogram untuk mengakses persistent data menggunakan Java. Dengan demikian, program Java yang dibuat menggunakan query SQL yang kemudian diteruskan ke JDBC dan pada akhirnya akan diteruskan oleh driver JDBC ke basis data yang bersangkutan.
Penggunaan SQL dalam Java atau bahasa-bahasa pemrograman berorientasi obyek lainnya mendatangkan berbagai kemungkinan masalah. Berbagai masalah yang muncul tersebut dikenal dengan impedance mismatch. ketidaksesuaian antara basisdata relasional yang berbasis pada paradigma matematis dengan PBO yang merupakan paradigma di tataran rekayasa peranti lunak serta ketidaksesuaian berbagai tipe data membuat pengelolaan data persistent ini menjadi hal yang kompleks.
ORM (Object/Relational Mapping) merupakan teknik pemrograman untuk memetakan tabel suatu basis data relasional ke suatu class serta memungkinkan untuk mengelola perbedaan sistem tipe pada basis data relasional dengan bahasa pemrograman berorientasi obyek. Untuk mengimplementasikan ORM ini, terdapat berbagai software dari berbagai vendor. Beberapa diantaranya adalah Hibernate, TopLink Essentials, EclipseLink, iBatis, dan lain-lain.
Banyaknya vendor yang memproduksi software ORM menyebabkan implementasi yang berbeda-beda sehingga menyulitkan para pemrogram. Kondisi tersebut menyebabkan JCP (Java Community Process) membuat standardisasi yang dimasukkan ke dalam EJB 3. Standar tersebut adalah JPA (Java Persistence API). Hibernate saat ini juga mengimplementasikan JSR 220 JPA. Dengan menggunakan JPA, terdapat keseragaman dalam mengatasi masalah persistence sehingga tidak terlalu menyulitkan pemrogram dalam mengembangkan aplikasi. Secara konsepsual, hubungan antara komponen-komponen untuk
persistence ini adalah sebagai berikut:
No comments:
Post a Comment
Berikanlah Komentar, saran dan Kritik yang membangun "