Showing posts with label Hibernate. Show all posts
Showing posts with label Hibernate. Show all posts

Saturday, July 11, 2015

Contoh Sederhana Aplikasi CRUD Menggunakan Hibernate

Persiapan

  • Berdoa sebelum melakukan aktifitas
  • Download dan Install Java Editor Eclipse
  • Download program Hibernate
  • Download dan Install Oracle Database
  • Kopi dan Snack untuk menemani Anda coding

1. Membuat Kelas POJO


Buatlah kelas POJO (Plant Old Java Object) dengan nama Pegawai.java seperti di bawah ini :

package com.nursalim.hibernate;

public class Pegawai {
 
 private String kodePegawai;
 private String namaPegawai;
 private int umur;
 private String alamat;
 private String gender;
 private String departemen;
 
 public Pegawai(String kodePegawai, String namaPegawai, int umur, String alamat, String gender, String departemen){
  this.kodePegawai = kodePegawai;
  this.namaPegawai = namaPegawai;
  this.umur = umur;
  this.alamat = alamat;
  this.gender = gender;
  this.departemen = departemen;
 }
 
 public String getKodePegawai() {
  return kodePegawai;
 }
 public void setKodePegawai(String kodePegawai) {
  this.kodePegawai = kodePegawai;
 }
 public String getNamaPegawai() {
  return namaPegawai;
 }
 public void setNamaPegawai(String namaPegawai) {
  this.namaPegawai = namaPegawai;
 }
 public int getUmur() {
  return umur;
 }
 public void setUmur(int umur) {
  this.umur = umur;
 }
 public String getAlamat() {
  return alamat;
 }
 public void setAlamat(String alamat) {
  this.alamat = alamat;
 }
 public String getGender() {
  return gender;
 }
 public void setGender(String gender) {
  this.gender = gender;
 }
 public String getDepartemen() {
  return departemen;
 }
 public void setDepartemen(String departemen) {
  this.departemen = departemen;
 }
 
 
}

2. Membuat Tabel Di Database


Buatlah tabel di database Oracle dengan nama "pegawai" dengan menjalankan script di bawah ini:

CREATE TABLE PEGAWAI
(
  ID_PEGAWAI    VARCHAR2(10 BYTE)               NOT NULL,
  NAMA_PEGAWAI  VARCHAR2(30 BYTE)               NOT NULL,
  UMUR          NUMBER(3)                       NOT NULL,
  ALAMAT        VARCHAR2(30 BYTE)               NOT NULL,
  GENDER        CHAR(1 BYTE),
  DEPARTEMEN    VARCHAR2(5 BYTE)
)

3. Membuat File Mapping pegawai.hbm.xml


Buatlah file mapping dengan nama pegawai.hbm.xml untuk mapping antara kelas POJO dengan tabel "pegawai".


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate‐mapping PUBLIC
"‐//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate‐mapping>
    <class name="com.nursalim.hibernate.Pegawai" table="PEGAWAI">
          <property name="kodePegawai" column="id_pegawai" type="string" />
          <property name="namaPegawai" column="nama_pegawai" type="string" />
          <property name="umur" column="umur" type="int" />
          <property name="alamat" column="alamat" type="string" />
          <property name="gender" column="gender" type="string" />
          <property name="departemen" column="departemen" type="string" />
    </class>
</hibernate‐mapping>

4. Membuat File Konfigurasi Hibernate

Buatlah file konfigurasi hibernat (hibernate.cfg.xml) untuk menyimpan konfigurasi hibernate seperti di bawah ini:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
 <session-factory>
  <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
  <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
  <property name="hibernate.connection.username">nano</property>
  <property name="hibernate.connection.password">nano</property>
  <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
  <property name="show_sql">true</property>
  <mapping resource="com/nursalim/hibernate/Pegawai.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>

5. Membuat Program Java Untuk Aplikasi CRUD

Buatlah program Java dengan nama PegawaiCRUD.java, yang digunakan untuk membuat program aplikasi CRUD (Create Read Update Delete)

package com.nursalim.hibernate;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.itextpdf.text.pdf.PdfStructTreeController.returnType;

public class PegawaiCRUD {
 private static SessionFactory sessionFactory;
 
 public static void main(String[] args){
  Pegawai pegawai = new Pegawai();
  
  try{
   sessionFactory = new Configuration().configure().buildSessionFactory();
   
  }catch(ExceptionInInitializerError ex){
   ex.printStackTrace();
  }
  
  // add new pegawai
  PegawaiCRUD pegawaiCRUD = new PegawaiCRUD();
  pegawaiCRUD.tambahPegawai("011","Danang", 30, "Kali Pasung", "L", "IT");
  
  //get pegawai with id 011
  pegawai = pegawaiCRUD.getPegawai("011");
  
  //update with id 011
  pegawaiCRUD.updatePegawai(pegawai, "Danang Kosing", 35, "Kali Mukti", "L", "FIN");
  
  //delete pegawai with id 011
  pegawaiCRUD.deletePegawai(pegawai);
  
 }
 
 public void tambahPegawai(String kodePegawai, String namaPegawai, int umur, String alamat, String gender, String departemen){
  Session session = sessionFactory.openSession();
  Transaction trx = null;
  try{
   trx = session.beginTransaction();
   Pegawai pegawai = new Pegawai(kodePegawai, namaPegawai, umur, alamat, gender, departemen);
   session.save(pegawai);
   trx.commit();
   
   System.out.println("Record has been succesfully inserted");
  }catch(HibernateException he){
   if(trx != null){
    trx.rollback();
   }
   
   he.printStackTrace();
  }finally{
   session.close();
  }
 }
 
 public Pegawai getPegawai(String kodePegawai){
  Session session = sessionFactory.openSession();
  
  Transaction trx = null;
  Pegawai pegawai = new Pegawai();
  
  try{
   trx = session.beginTransaction();
   
   pegawai = (Pegawai) session.get(Pegawai.class, kodePegawai);
   
   System.out.println("ID pegawai == "+pegawai.getKodePegawai());
   System.out.println("Nama pegawai == "+pegawai.getNamaPegawai());
   System.out.println("Umur pegawai == "+pegawai.getUmur());
   System.out.println("Alamat pegawai == "+pegawai.getAlamat());
   System.out.println("Gender pegawai == "+pegawai.getGender());
   System.out.println("Departemen pegawai == "+pegawai.getDepartemen());
  }catch(HibernateException he){
   if(trx != null){
    trx.rollback();
   }
  }finally{
   session.close();
  }
  
  return pegawai;
 }
 
 public void updatePegawai(Pegawai pegawai, String namaPegawai, int umur, String alamat, String gender, String departemen){
  Session session = sessionFactory.openSession();
  
  Transaction trx = null;
  
  try{
   trx = session.beginTransaction();
   
   pegawai.setNamaPegawai(namaPegawai);
   pegawai.setUmur(umur);
   pegawai.setAlamat(alamat);
   pegawai.setGender(gender);
   pegawai.setDepartemen(departemen);
   
   session.update(pegawai);
   trx.commit();
   
   System.out.println("Record has been succesfully updated");
   
  }catch(HibernateException he){
   if(trx != null){
    trx.rollback();
   }
  }finally{
   session.close();
  }
 }
 
 public void deletePegawai(Pegawai pegawai){
  Session session = sessionFactory.openSession();
  Transaction trx = null;
  
  try{
   trx = session.beginTransaction();
   
   session.delete(pegawai);
   trx.commit();
   
   System.out.println("Record has been succesfully deleted");
   
  }catch(HibernateException he){
   if(trx != null){
    trx.rollback();
   }
  }finally{
   session.close();
  }
 }
}

8. Review Project Structure


9. Running


Coba Anda compile dan jalankan kelas PegawaiCRUD.java diatas, kalau tidak ada error maka akan keluar output seperti di bawah ini:

Hibernate: insert into PEGAWAI (nama_pegawai, umur, alamat, gender, departemen, ID_PEGAWAI) values (?, ?, ?, ?, ?, ?)
Record has been succesfully inserted
Hibernate: insert into PEGAWAI (nama_pegawai, umur, alamat, gender, departemen, ID_PEGAWAI) values (?, ?, ?, ?, ?, ?)
Record has been succesfully inserted
Hibernate: insert into PEGAWAI (nama_pegawai, umur, alamat, gender, departemen, ID_PEGAWAI) values (?, ?, ?, ?, ?, ?)
Record has been succesfully inserted
Hibernate: select pegawai0_.ID_PEGAWAI as ID_PEGAWAI1_0_0_, pegawai0_.nama_pegawai as nama_pegawai2_0_0_, pegawai0_.umur as umur3_0_0_, pegawai0_.alamat as alamat4_0_0_, pegawai0_.gender as gender5_0_0_, pegawai0_.departemen as departemen6_0_0_ from PEGAWAI pegawai0_ where pegawai0_.ID_PEGAWAI=?
ID pegawai == 011
Nama pegawai == Danang
Umur pegawai == 30
Alamat pegawai == Kali Pasung
Gender pegawai == L
Departemen pegawai == IT
Hibernate: update PEGAWAI set nama_pegawai=?, umur=?, alamat=?, gender=?, departemen=? where ID_PEGAWAI=?
Record has been succesfully updated
Hibernate: select pegawai_.ID_PEGAWAI, pegawai_.nama_pegawai as nama_pegawai2_0_, pegawai_.umur as umur3_0_, pegawai_.alamat as alamat4_0_, pegawai_.gender as gender5_0_, pegawai_.departemen as departemen6_0_ from PEGAWAI pegawai_ where pegawai_.ID_PEGAWAI=?
Hibernate: delete from PEGAWAI where ID_PEGAWAI=?
Record has been succesfully deleted


                                                    ~~~## Hibernate Tutorial ##~~~

Sekian tutorial singkat tentang Contoh Sederhana Aplikasi CRUD Menggunakan Hibernate. Semoga bermanfaat & Happy Learning Hibernate.

 

© 2015 {Ora~Kelar} | Ora Kelar Kelar. All rights resevered. Designed by Templateism

Back To Top