(java) Hibernate

History Hibernate : Hibernate di temukan oleh seorang Programmer yang mencari celah kekurangan yang ada pada pemograman Yaitu Gavin King , Pak Gavin King terasa bosan dengan menulis berulang kali untuk membuat koneksi ataupun query yang akan di gunakan , tidak tahu dbms apa yang di gunakan pada teknologi hirbernate hingga pak Gavin dapat mencetuskan teknologi ini

itus sedikit cerita tentang hibernate , sekarang penjelasan sendiri . Hibernate adalah sebuah framework ORM (Object Relation Mapping) dalam java. Hibernate memudahkan developer untuk bekerja dengan model. Dengan Hibernate, tabel-tabel yang ada di Database dapat direpresentasikan ke dalam class-class dalam Java. Setiap anda membuat aplikasi java yang terhubung dengan database anda pasti mengetik yang namanya query sql, connection, statement / prepare statement, resultset, dll. Dan itu dilakukan secara berulang-ulang.
Nah dengan Hibernate masalah koneksi database di handle menjadi satu file yang biasanya dinamai hibernate.cfg.xml, itulah sedikit kemudahan dari hibernate untuk lebih jelasnya silahkan kunjungi web resmina langsung http://www.hibernate.org/

Setelah kita membahas hibernate dengan panjang lebar kita akan membuat contoh yang sangat sederhana , kita langsung ke TKP saja :

1. Buat table database seperti gambar di bawah ini

2. Create Projcet java dengan nama Hibernate

3. Tambahkan Libraries HIbernate ,persitance,dan Mysql

4. Create File HIbernate Configurasi pada Hibernate – HIbernate configuration dan tambahkan configurasi 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.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernatecoba</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password"/>
    <property name="hibernate.hbm2ddl.auto">update</property>
    <mapping resource="hibernate.hbm.xml"/>
  </session-factory>
</hibernate-configuration>

Sedikit pernjelasan pada konfigurasi di atas :
hibernate.connection.driver_class (Membuat koneksi data base)
hibernate.connection.url (Membuat URL Data base)
hibernate.connection.username (Membuat User data base)
hibernate.connection.password (membuat password data base)
hibernate.hbm2ddl.auto (membuat update query)
mapping resource=”hibernate.hbm.xml” (Membuat Alamat resource hibernate)

5. Create File Hibernate Maping pada file – Hibernate – HIbernate Mapping wizard

6. Create class dengan nama Person

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hibernate2.entitas;

/**
 *
 * @author aerdy
 */
public class Person {
     private int id;
    private String nama;
    private String telepon;
    private String alamat;

    public Person() {
    }

    public String getAlamat() {
        return alamat;
    }

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

    public int getId() {
        return id;
    }

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

    public String getNama() {
        return nama;
    }

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

    public String getTelepon() {
        return telepon;
    }

    public void setTelepon(String telepon) {
        this.telepon = telepon;
    }
}

7. Create Class dengan nama PersonDAO

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hibernate2.entitas;

import java.util.List;
import org.hibernate.HibernateException;

/**
 *
 * @author aerdy
 */
public interface PersonDAO {
      public void insert(Person person) throws HibernateException;

    public void update(Person person) throws HibernateException;

    public void delete(Person person) throws HibernateException;

    List  SelectAll() throws HibernateException;

    List GetByName(String nama) throws HibernateException;
}

8.Create Class dengan nama HIbernateUtil

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hibernate2.entitas;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;

/**
 *
 * @author aerdy
 */
public class HibernateUtil {
      private static final SessionFactory sessionFactory;
    private static final PersonDAO personDao;

    static {
        try {
            sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
            personDao = new PersonDAOImpl(sessionFactory);
        } catch (Throwable e) {
            System.err.println("Inisialisasi sessionFactory gagal "+e);
            throw new ExceptionInInitializerError(e);
        }
    }

    public static PersonDAO getPersonDao() {
        return personDao;
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}

10.Create Class Java PersonDAOImplement

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hibernate2.entitas;

import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author aerdy
 */
public class PersonDAOImpl implements PersonDAO{
     Session session;
    SessionFactory factory;
    Criteria criteria;

    public PersonDAOImpl(SessionFactory factory) {
        this.factory = factory;
    }

    public void insert(Person person) throws HibernateException {
        session = factory.openSession();
        try {
            session.beginTransaction();
            session.save(person);
            session.getTransaction().commit();
            System.out.println("Sukses kang!!!");
        } catch (Exception e) {
            session.getTransaction().rollback();
            e.printStackTrace();
        } finally{
            session.close();
            factory.close();
        }
    }

    public void update(Person person) throws HibernateException {
        session = factory.openSession();
        try {
            session.beginTransaction();
            session.update(person);
            session.getTransaction().commit();
            System.out.println("Sukses kang!!");
        } catch (Exception e) {
            session.getTransaction().rollback();
            e.printStackTrace();
        } finally {
            session.close();
            factory.close();
        }
    }

    public void delete(Person person) throws HibernateException {
        session = factory.openSession();
        try {
            session.beginTransaction();
            session.delete(person);
            session.getTransaction().commit();
        } catch (Exception e) {
            session.getTransaction().rollback();
            e.printStackTrace();
        } finally {
            session.close();
            factory.close();
        }
    }

    public List SelectAll() throws HibernateException {
        session = factory.openSession();
        try {
            criteria = session.createCriteria(Person.class);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            
        }
        return criteria.list();
    }

    public List GetByName(String nama) throws HibernateException {
        session = factory.openSession();
        try {
            criteria = session.createCriteria(Person.class).add(Restrictions.like("nama", nama, MatchMode.ANYWHERE));
            System.out.println("Sukses kang!!");
        } catch (HibernateException e) {
            e.printStackTrace();
        }
        return criteria.list();
    }
}

11. Create Class Java dengan nama PersonControl

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hibernate2.entitas;

import java.util.List;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author aerdy
 */
public class PersonController {
   Person person = new Person();
    PersonDAO personDAO = HibernateUtil.getPersonDao();
    String header[] = {"Id", "Nama", "Telepon", "Alamat"};

    public void insert(String nama, String telepon, String alamat){
        person.setNama(nama);
        person.setTelepon(telepon);
        person.setAlamat(alamat);
        personDAO.insert(person);
    }

    public void update(String id, String nama, String telepon, String alamat){
        person.setId(Integer.parseInt(id));
        person.setNama(nama);
        person.setTelepon(telepon);
        person.setAlamat(alamat);
        personDAO.update(person);
    }

    public void delete(String id, String nama, String telepon, String alamat){
        person.setId(Integer.parseInt(id));
        person.setNama(nama);
        person.setTelepon(telepon);
        person.setAlamat(alamat);
        personDAO.delete(person);
    }

    public void SelectAll(JTable table){
        List list = personDAO.SelectAll();
        Object data[][] = new Object[list.size()][4];
        int i = 0;
        for(Person manusia : list){
            data[i][0] = manusia.getId();
            data[i][1] = manusia.getNama();
            data[i][2] = manusia.getTelepon();
            data[i][3] = manusia.getAlamat();
            ++i;
        }
        table.setModel(new DefaultTableModel(data, header));
    }

    public void GetByName(String nama, JTable table){
        List list = personDAO.GetByName(nama);
        Object data[][] = new Object[list.size()][4];
        int i = 0;
        for(Person manusia : list){
            data[i][0] = manusia.getId();
            data[i][1] = manusia.getNama();
            data[i][2] = manusia.getTelepon();
            data[i][3] = manusia.getAlamat();
            ++i;
        }
        table.setModel(new DefaultTableModel(data, header));
    } 
}

12. Create View seperti di bawah ini

13. Tambakan scrip pada Button Button

Create Method Reset pada class view

private void reset() {
        dataTable();
        jTextField1.setText("");
        jTextField2.setText("");
        jTextField3.setText("");
        jTextField4.setText("");
        jTextField5.setText("");
    }

Button INSERT

 String nama = jTextField2.getText();
        String telepon = jTextField3.getText();
        String alamat = jTextField4.getText();
        new PersonController().insert(nama, telepon, alamat);
        reset();

Button DELETE

String id = jTextField1.getText();
        String nama = jTextField2.getText();
        String telepon = jTextField3.getText();
        String alamat = jTextField4.getText();
        new PersonController().delete(id, nama, telepon, alamat);
        reset();

Button UPDATE

String id = jTextField1.getText();
        String nama = jTextField2.getText();
        String telepon = jTextField3.getText();
        String alamat = jTextField4.getText();
        new PersonController().update(id, nama, telepon, alamat);
        reset();

Button CLEAR

reset();

Button SEARCE

        String cari = jTextField5.getText();
        new PersonController().GetByName(cari, jTable1);

Click Kanan Pada Jtable1 dan event – MouseandCLicked

int j = jTable1.getSelectedRow();
        String id = jTable1.getValueAt(j, 0).toString();
        String nama = jTable1.getValueAt(j, 1).toString();
        String telepon = jTable1.getValueAt(j, 2).toString();
        String alamat = jTable1.getValueAt(j, 3).toString();

        jTextField1.setText(id);
        jTextField2.setText(nama);
        jTextField3.setText(telepon);
        jTextField4.setText(alamat);

HASIL

Referensi :

Pakar Java
Muhammad Syauqil Ilmi

Advertisements

Published by

jarcode

hello I am jarcode

4 thoughts on “(java) Hibernate”

  1. insert data kita set data dengan menggunakan class entitas, sehingga data itu di tampung terlebih dahulu, ketika button insert di klik dia mengisi data entitas tersebut dengan memanggil parameter set,, dan method table ada pada saat membuat action mouse click …

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s