Minggu, 10 November 2013

Hibernate di Eclipse

Di postingan sebelumnya sudah dibahas mengenai hibernate di netbeans. Kali ini kita akan mencoba memakai hibernate di eclipse. Bahan yang perlu dipersiapkan adalah;
- Eclipse (saya menggunakan eclipse juno) 
- Hibernate versi 3.6 bisa didownload di link ini
- Jdk-1.6
Setelah mendownload library hibernate, kita seting path user librarynya di eclipse. Library yang diset antara lain;
- hibernate3.jar
- antlr-2.7.6.jar
- commons-collections-3.1.jar
- dom4j-1.6.jar
- javassist-3.12.0.GA.jar
- jta-1.1.jar
- slf4-api-1.6.1.jar
- hibernate-jpa-2.0-api-1.0.1.Final.jar

Cara buat user library ; Window -> Preferences -> Java -> Build Path -> User Libraries -> Klik New. Buat nama library, lalu klik Add External Jars.. untuk memasukan library di atas. Seperti gambar di bawah ini

Kita buat database, kali ini saya menggunakan postgresql. Nama database dboprek dan memiliki 1 tabel, yakni tbl_mhs. Kira-kira seperti ini gambarannya.


Setelah buat user library, kita buat project baru TestHibernate. Kemudian kita import user library hibernate tadi dan library untuk postgresql. Seperti gambar di bawah ini

Kemudian kita buat hibernate.cfg.xml dan letakkan file tersebut pada folder src.
<?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>
    <!-- a SessionFactory instance listed as /jndi/name -->
  <session-factory>
    <property name="hibernate.connection.driver_class">

       org.postgresql.Driver
    </property>
    <property name="hibernate.dialect">

        org.hibernate.dialect.PostgreSQLDialect
    </property>
    <property name="hibernate.connection.url">jdbc:postgresql:dboprek</property>
    <property name="hibernate.connection.pool_size">1</property>
    <property name="hibernate.connection.username">ardi</property>
    <property name="hibernate.connection.password">ardi</property>
    <property name="hibernate.show_sql">false</property>
    <property name="hibernate.query.factory_class">

       org.hibernate.hql.classic.ClassicQueryTranslatorFactory
    </property>
    <mapping resource="beans/Mahasiswa.hbm.xml" />
    </session-factory>
</hibernate-configuration>


Lalu buat file Mahasiswa.hbm.xml dan Mahasiswa.java, kira seperti ini

Mahasiswa.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping
  SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping>

    <class name="beans.Mahasiswa" table="tbl_mhs">
        <id name="id" column="id" type="java.lang.Long">
            <generator class="sequence">
                <param name="sequence">mhs_sequence</param>
            </generator>
        </id>
        <property name="nama" type="java.lang.String" length="50"></property>
        <property name="umur" type="java.lang.Integer"></property>
    </class>

</hibernate-mapping>


Mahasiswa.java
package beans;

public class Mahasiswa {
    Long id;
    String nama;
    int umur;
   
    public void setId(Long id) {
        this.id = id;
    }   
    public Long getId() {
        return id;
    }   
    public void setNama(String nama) {
        this.nama = nama;       
    }   
    public String getNama() {
        return nama;
    }   
    public void setUmur(int umur) {
        this.umur = umur;
    }   
    public int getUmur() {
        return umur;
    }
}


Lalu buat class Main.java, untuk ngetest store object ke database via hibernate.
Main.java
import java.io.File;
import java.io.IOException;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import beans.Mahasiswa;

public class Main {
    public static void main(String[] args) {
        SessionFactory factory = null;
        Session session = null;
        File file = new File("src/hibernate.cfg.xml");

        Mahasiswa mhs = new Mahasiswa();
        mhs.setNama("Ardi");
        mhs.setUmur(25);
        try {
            factory = new Configuration().configure(file).buildSessionFactory();
            session = factory.openSession();
            session.beginTransaction();
            session.save(mhs);
            session.beginTransaction().commit();
        } catch (HibernateException hex) {
            System.out.println("Err HBM Exception");
            hex.printStackTrace();
        }
    }
}


Jika class Main dirun, maka akan muncul output print pada console seperti di bawah ini
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.


Perlu diketahui bahwa output print di atas tidak error. Hanya warning dari eclipse juno terhadap library slf4j. Lalu jika kita lihat pada tbl_mhs, maka object pada kode di atas sudah masuk ke tabel.


Cukup mudah bukan, sekian dari saya. Kalau ada yang kurang mengerti silahkan cari di google.
Wassalam :senyum

0 komentar:

Posting Komentar