Tutorial Hibernate (java)

Hibernate adalah sebuah object-relational mapping (ORM) library untuk bahasa Java, menyediakan kerangka kerja untuk pemetaan model domain berorientasi objek ke database relasional tradisional. Hibernate memecahkan masalah impedansi objek-relasional ketidakcocokan dengan mengganti langsung terkait
ketekunan mengakses database dengan fungsi tingkat tinggi menangani objek.

Hibernate adalah perangkat lunak gratis yang didistribusikan di bawah Lisensi Publik Umum GNU Lesser.

Fitur utama hibernate adalah pemetaan dari kelas Java untuk tabel database (dan dari tipe data Java tipe data SQL). Hibernate juga menyediakan query data dan fasilitas pencarian. Hibernate menghasilkan panggilan SQL dan upaya untuk meringankan pengembang dari hasil set penanganan manual dan konversi objek dan menjaga aplikasi portabel untuk semua database SQL didukung dengan overhead kinerja sedikit. sumber wikipedia

Adapun langkah-langka untuk membuat aplikasi java sederhana dengan HIBERNATE :
  • buat database di mysql dengan nama databasenya dbkampus setelah buat databasenya tutup kembali mysqlnya ,,pertanya ? kenapa tidak buat tabelnya ? jawab karena disini kita memakai konsep dari ORM (Objek Relational Mapping).
  • buka Netbeans yang juga sudah terinstal sebelumnya, kemudian buat sebuah project baru dan beri nama Simple Aplikasi Hibernate.
  • setelah itu, klik kanan project kemudian pilih New -> Entity Class dan beri nama Entity Class tersebut dengan Mahasiswa. untuk package diberi nama  Entity. setelah itu Finish.

Setelah itu jadilah  sebuah Class Mahasiswa.java.Lalu ubah source code class mahasiswa tersebut menjadi seperti berikut :
package Entity;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

/**
 *
 * @author mamorost
 */
@Entity
public class Mahasiswa implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    @Column(name = "nim", length = 10, unique = true, nullable = true)
    private Long nim;
    @Column(name = "nama", length = 50, unique = false, nullable = false)
    private String nama;
    @Column(name = "progdi", length = 50, unique = false, nullable = true)
    private String progdi;
    @Column(name = "fakultas", length = 50, unique = false, nullable = false)
    private String fakultas;
    @Column(name = "alamat", length = 100, unique = false, nullable = false)
    private String alamat;
    @Column(name = "kota", length = 100, unique = false, nullable = false)
    private String kota;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getAlamat() {
        return alamat;
    }

    public void setAlamat(String alamat) {
        this.alamat = alamat;
    }

    public String getFakultas() {
        return fakultas;
    }

    public void setFakultas(String fakultas) {
        this.fakultas = fakultas;
    }

    public String getKota() {
        return kota;
    }

    public void setKota(String kota) {
        this.kota = kota;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public Long getNim() {
        return nim;
    }

    public void setNim(Long nim) {
        this.nim = nim;
    }

    public String getProgdi() {
        return progdi;
    }

    public void setProgdi(String progdi) {
        this.progdi = progdi;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Mahasiswa)) {
            return false;
        }
        Mahasiswa other = (Mahasiswa) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Entity.Mahasiswa[id=" + id + "]";
    }
}
  • kalau Class Mahasiswa sudah diubah, sekarang buat Hibernate konfigurasinya. Caranya yaitu : klik kanan project kemudian pilih New ->  Other -> lalu pada Categories pilih Hibernate dan pada Text sebelah kanan pilih Hibernate Configuration Wizard, lalu Next ->  Next lagi-> dan pada Database Connection, pilih database dbkampus yang sudah dibuat sebelumnya. setelah itu Finish.

  • Hasilnya Berupa File Hibernate.cfg.xml. buka tab xml sesuailan kode programnya menjadi :
 
    org.hibernate.dialect.MySQLDialect
    com.mysql.jdbc.Driver
    jdbc:mysql://localhost:3306/dbkampus
    root
    update
   
 

  •  lanjutkan dengan membuat sebuah class Interface baru dengan cara klik kanan project kemudian pilih New -> Java Interface dan beri nama dengan MahasiswaInterface. untuk package nya diberi nama Interface..lalu ubah code programnya menjadi sbb:
package Interface;

import Entity.Mahasiswa;
import java.util.List;

/**
 *
 * @author mamorost
*/
public interface MahasiswaInterface {

    void insert(Mahasiswa mahasiswa);

    void update(Mahasiswa mahasiswa);

    void delete(Mahasiswa mahasiswa);

    Mahasiswa getMahasiswaByID(Long ID);

    List listMahasiswa();
}

  • setelah class Interface dibuat, sekarang waktunya membuat DAO . caranya yaitu klik kanan project kemudian pilih New -> Java Class dan beri nama MahasiswaDAO.untuk packagenya diberi nama DAO.ubah lagi code programnya menjadi sbb:
package DAO;

import Entity.Mahasiswa;
import Interface.MahasiswaInterface;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

/**
 *
 * @author mamorost
*/
public class MahasiswaDAO implements MahasiswaInterface {

    private SessionFactory facktory;

    public MahasiswaDAO(SessionFactory facktory) {
        this.facktory = facktory;
    }

    public void insert(Mahasiswa mahasiswa) {
        Session session = facktory.openSession();
        try {
            session.beginTransaction();
            session.save(mahasiswa);
            session.getTransaction().commit();
        } catch (IllegalStateException ex) {
            session.getTransaction().rollback();
            JOptionPane.showMessageDialog(null, ex);
        } finally {
            session.close();
        }
    }

    public void update(Mahasiswa mahasiswa) {
        Session session = facktory.openSession();
        try {
            session.beginTransaction();
            session.update(mahasiswa);
            session.getTransaction().commit();
        } catch (IllegalStateException ex) {
            session.getTransaction().rollback();
            JOptionPane.showMessageDialog(null, ex);
        } finally {
            session.close();
        }
    }

    public void delete(Mahasiswa mahasiswa) {
        Session session = facktory.openSession();
        try {
            session.beginTransaction();
            session.delete(mahasiswa);
            session.getTransaction().commit();
        } catch (IllegalStateException ex) {
            session.getTransaction().rollback();
            JOptionPane.showMessageDialog(null, ex);
        } finally {
            session.close();
        }
    }

    public Mahasiswa getMahasiswaByID(Long ID) {
        Session session = facktory.openSession();
        session.beginTransaction();
        Mahasiswa mahasiswa = null;
        try {
            mahasiswa = (Mahasiswa) session.load(Mahasiswa.class, ID);
            session.getTransaction().commit();
        } catch (Exception ex) {
            session.getTransaction().rollback();
            JOptionPane.showMessageDialog(null, ex);
        }
        return mahasiswa;
    }

    public List listMahasiswa() {
        Session session = facktory.openSession();
        session.beginTransaction();
        List list = new ArrayList();
        try {
            list = session.createQuery("FROM Mahasiswa order by nim ASC").list();
            session.getTransaction().commit();
        } catch (IllegalStateException ex) {
            session.getTransaction().rollback();
            JOptionPane.showMessageDialog(null, ex);
        }
        return list;
    }
}

  • sekarang buat sebuah Class lagi dengan cara klik kanan project kemudian New -> Java Class dan beri nama class nya dengan HibernateUtil.untuk packagenya diberi nama Util. ubah lagi codenya sbb:
package Util;

import DAO.MahasiswaDAO;
import Interface.MahasiswaInterface;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

/**
 *
 * @author mamorost
 */
public class HibernateUtil {

    private static final SessionFactory sessionFactory;
    private static final MahasiswaInterface mhsInter;

    static {
        sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
        mhsInter = new MahasiswaDAO(sessionFactory);
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public static MahasiswaInterface getMahasiswa() {
        return mhsInter;
    }
}

  • Hal terakhir yang dilakukan adalah membuat Class Main. buat sebuah Java Class baru dan beri nama Main…setelah itu ubah codingnya menjadi :
import Entity.Mahasiswa;
import Interface.MahasiswaInterface;
import Util.HibernateUtil;

public class Main {

    public static void main(String[] args) {
        try {
            MahasiswaInterface mhsInter = HibernateUtil.getMahasiswa();
            Mahasiswa mhs = new Mahasiswa();
            mhs.setNim(Long.parseLong("682006017"));
            mhs.setNama("Galberto Tuwondila");
            mhs.setProgdi("Sistem Informasi");
            mhs.setFakultas("Teknologi Informasi");
            mhs.setAlamat("Seruni");
            mhs.setKota("Salatiga");
            //Untuk Menambahkan Data....
            mhsInter.insert(mhs);
            //Untuk Mengubah Data.....
            mhsInter.update(mhs);
            //untuk Menghapus Data.....
            mhsInter.delete(mhs);

        } catch (Exception e) {
            System.out.println("Error : " + e);
        }
    }
}

  • Selesai, saatnya menjalankan programnya : 
Hasil Eksekusi Table Mahasiswa pada MySQL

 
"Dengan menggunakan ORM maka dengan otomatis tabel beserta datanya akan dibuat didatabase"


The End

    0 komentar:

    Post a Comment