Object Relational Mapping

Post on 12-Jan-2016

25 views 2 download

description

Object Relational Mapping. Kiki Ahmadi linuxgembel.wordpress.com YM : gembel_linux jug-bonek@yahoogroups.com. ORM ?. Teknik memetakan database menggunakan object Jembatan antara OOP dengan RDBMS Poupuler di Java. Kenapa ORM ?. Menghindarkan programmer dari kode SQL - PowerPoint PPT Presentation

Transcript of Object Relational Mapping

Object Relational Mapping

Kiki Ahmadilinuxgembel.wordpress.comYM : gembel_linuxjug-bonek@yahoogroups.com

ORM ? Teknik memetakan database

menggunakan object Jembatan antara OOP

dengan RDBMS Poupuler di Java

ORM

Mahasiswa

Database

Kenapa ORM ? Menghindarkan programmer dari kode

SQL Memisahkan kode SQL dari logika aplikasi Mempermudah Maintenance Menghindari ketergantungan aplikasi

terhadap vendor database

Non 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+” )””

ORM

Tidak ada kode SQL pada Source Code Tidak ada ketergantungan terhadap DB server Baris kode lebih sedikit

public void tambahMhs (){

Mahasiswa ophex = new Mahasiswa();ophex.setNRP(1);ophex.setNama("ophex");ophex.setPassword("mbuh");HibernateUtil.getSessionFactory().getCurrentSession().save(ophex);

}

ORM pada JAVA

HIBERNATE

Oracle Toplink Essentials

EclipseLink

Open JPA

Apache IBATIS

ORMMahasiswa.javaprivate int NRPprivate String Nama

public int getNRP ()

public void setNama (Strinng nama)

Database Mahasiswa

MahasiswaDAO.java

public void insertMahasiswa(Mahasiswa mhs)

public Mahasiswa getMahasiswa(int NRP)

public void deleteMahasiswa(Mahasiswa mhs)

public void updateMahasiswa(Mahasiswa mhs)

Cara Kerja ORM Database dipetakan

menggunakan POJO Proses CRUD

dilakukan menggunakan DAO

POJO ? Plain Old Java Object

Mahasiswa

NRP intNama varcharPassword varchar

public class Mahasiswa {

private int NRP;private String Nama;private String password;

public String getNama() {return Nama;

}public int getNRP() {

return NRP;}public String getPassword() {

return password;}public void setNama(String nama) {

Nama = nama;}public void setNRP(int nrp) {

NRP = nrp;}public void setPassword(String password) {

this.password = password;}

DAO ? Data Access Object

public class MahasiswaDAO {

public void tambahMhs (){

Mahasiswa ophex = new Mahasiswa();

ophex.setNRP(1);ophex.setNama("ophex");ophex.setPassword("mbuh");

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

} }

Hibernate Framework ORM paling populer di java Didevelop oleh JBoss Memetakan POJO dengan Tabel

Hibernate Mapping

Mahasiswa.java

Mahasiswa.hbm.xmlTabel

Mahasiwa

hibernate.cfg.xml

Apache Ibatis Framework ORM Mapping POJO ke QUERY Sehingga satu POJO bisa memetakan lebih

dari satu tabel

Ibatis Mapping

User.java

User.xml

SqlMapConfig.xml