Saturday, July 11, 2015

Contoh Sederhana Aplikasi CRUD Menggunakan Hibernate

Saturday, July 11, 2015

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.

Written by

We are Creative Blogger Theme Wavers which provides user friendly, effective and easy to use themes. Each support has free and providing HD support screen casting.

1 comments:

 

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

Back To Top