Object Relational Mapping
description
Transcript of Object Relational Mapping
Object Relational Mapping
Kiki Ahmadilinuxgembel.wordpress.comYM : [email protected]
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