ORM (Object Relational Mapping) [Wiki] adalah suatu metode/teknik pemrograman yang digunakan untuk mengkonversi data dari lingkungan bahasa pemrograman berorientasi objek (OOP) dengan lingkungan database relasional. Seperti kita ketahui, dalam aplikasi enterprise kedua lingkungan tersebut berada pada sistem yang berbeda, yaitu OOP berada pada sisi pemrograman aplikasi, sedangkan database relasional berada pada sisi sistem database. Misi utama dari ORM ini adalah menjembatani kedua sistem yang berbeda tersebut.

ORM memiliki kemampuan untuk menciptakan objek database virtual, yaitu suatu model database yang di representasikan kedalam sebuah objek pada bahasa pemrograman OOP. Berikut ini adalah beberapa kelebihan yang dimiliki ORM, yaitu:

  • Mempercepat pengembangan program. Contohnya, mengurangi perulangan kode query, memudahkan pemakaian karena tabel-tabel ter-representasikan dalam bentuk objek
  • Membuat akses data menjadi lebih abstrak dan portable. Hal ini dikarenakan ORM menghandle pen-generate-an syntax SQL berdasarkan vendor database-nya.
  • Mensupport pengkapsulan business rule pada lapisan Data Access.
  • Mengenerate boilerplate code (unit kode yang reusable) untuk fungsi dasar CRUD (Create,Read,Update,Delete).

Berikut ini saya berikan dua contoh program Java (ORM dan Non ORM) untuk koneksi dan manipulasi data pada Database. Contoh ini saya ambil dari blog sebelah.

Tanpa ORM :


String host = "localhost";
String db = "kiki";
String user = "root";
String pass = "";
String driver = "com.mysql.jdbc.Driver";
String koneksi = "";

koneksi = "jdbc:mysql://"  + host + ":3306/" + db + "?user=" + user +"&password=" + pass;

Class.forName(driver).newInstance();
Connection con = DriverManager.getConnection(koneksi);
Statement stmt = con.createStatement();

String ReqUser =  request.getParameter("username");
String ReqPass = request.getParameter("password");
String QUERY_INSERT = "INSERT INTO Mahasiswa VALUES (“ +ReqUser+ “,” +ReqPass+” )””

Dengan ORM :


public void tambahMhs (){

Mahasiswa ophex = new Mahasiswa();
ophex.setNRP(1);
ophex.setNama("ophex");
ophex.setPassword("mbuh");

HibernateUtil
 .getSessionFactory()
 .getCurrentSession().save(ophex);

 }

Metode yang paling umum dari ORM adalah memetakan Tabel atau query kedalam class Java berupa POJO atau Java Beans. Deskripsi lengkap POJO bisa dilihat di Wiki . Dapat dikatakan, POJO adalah class java yang hanya berisi variabel dan method setter getter tanpa ada method proses lainnya.

Contoh POJO :


public class  Mahasiswa {
 private String NIM;
 private String nama;
 private String alamat;

 public String getNIM() {
 return this.NIM;
 }
 public String getNama()  {
 return this.nama;
 }
 public String getAlamat()  {
 return this.alamat;
 }
 public void setNIM(String NIM) {
 this.NIM = NIM;
 }
 public void setNama(String nama) {
 this.nama = nama;
 }
 public void setAlamat(String alamat) {
 this.alamat = alamat;
 }
 }

Advertisement