Tutorial : First Step To Hibernate Part 2

Biarkan aku menjaga perasaan ini
menjaga segenap cinta yang telah kau beri
engkau pergi aku takkan pergi
kau menjauh aku takkan jauh
sebenarnya diriku masih mengharapkanmu
– Menjaga Hati, Yovie Nuno

Setelah membuat class mahasiswa pada tutorial sebelumnya. Sekarang kita akan mulai membuat HibernateUtil, Servlet dan file xml konfigurasi.

Buat class HibernateUtil
Class ini hanya berisi inisialisasi awal hibernate session. Digunakan untuk mempermudah saja.

package beans;
import org.hibernate.*;
import org.hibernate.cfg.*;

public class HibernateUtil {
    private static final SessionFactory sessionFactory;

    static {
        try {
            // Create the SessionFactory from hibernate.cfg.xml
            sessionFactory = new Configuration().configure().buildSessionFactory();
        } catch (Throwable ex) {
            // Make sure you log the exception, as it might be swallowed
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }

}

Buat Servlet untuk melakukan proses simpan data mahasiswa
Selanjutnya, kita buat servlet yang didalamnya menangkap request dari form dan menyimpan data mahasiswa kedalam database. Untuk mempersingkat, kita hanya akan mengoverride method doGet dari class HttpServlet. Sehingga servlet ini hanya kan merespons form yang bertype GET.

package beans;

import javax.servlet.http.*;
import javax.servlet.ServletException;

import org.hibernate.Hibernate;

import java.io.*;
import java.util.*;

public class MahasiswaSimpanServlet extends HttpServlet  {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        // TODO Auto-generated method stub
        PrintWriter out = resp.getWriter();

        try{

            HibernateUtil.getSessionFactory().getCurrentSession().beginTransaction();

            String reqNama = req.getParameter("nama");
            String reqNrp = req.getParameter("nrp");

            TambahDanSimpanMahasiswa(reqNrp, reqNama);
            out.println("SUKSES!!!!");

            HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().commit();

        }catch(Exception e){

             HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback();
             out.println(e);
             out.println("gagal");
             throw new ServletException(e);

        }

    }

    public void TambahDanSimpanMahasiswa(String NRP, String Nama){

        Mahasiswa mhs = new Mahasiswa();
        mhs.setNama(Nama);
        mhs.setNrp(NRP);
        HibernateUtil.getSessionFactory().getCurrentSession().save(mhs);

    }

}

Method TambahDanSimpanMahasiswa() digunakan untuk membuat instance baru mahasiswa dan menyimpannya dengan memanggil method.

HibernateUtil.getSessionFactory().getCurrentSession().save(mhs);

Dengan Hibernate kita juga dapat melakukan transaction dengan mudah. Dapat dilihat pada method doGet, terdapat beginTransaction() ,commit() dan rollback().

Masukkan semua file .class pada direktori WEB-INF/classes.

Hasil kompilasi dari semua file .java yang kita buat tadi, Masukkan kedalam direktori WEB-INF/classes.

Buat file Mahasiswa.hbm.xml di dalam direktori WEB-INF/classes
File xml ini digunakan untuk mengatur bagaimana class Mahasiswa diterjemahkan kedalam database.

 
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="beans.Mahasiswa" table="mahasiswa">
        <id name="id" column="ID_MHS">
            <generator class="increment"/>
        </id>
        <property name="Nama"/>
        <property name="Nrp"/>
          </class>

</hibernate-mapping>

berikut penjelasan untuk masing masing tag.

  •  <hibernate-mapping> standar konfigurasi, harus ditulis.
  • <class> konfigurasi untuk class java yang digunakan
    • name = nama class yang akan digunakan.
    • table = nama tabel yang akan dibuat di database
  • <id>= konfigurasi untuk id/ primary key tabel.
    • name = nama variabel pada class  yang akan
      digunakan sebagai id database.
    • column = nama kolom yang dibuat.
  •   <property> = konfigurasi untuk attribut database.
    • name =  nama variabel pada class
      akan dijadikan kolom pada tabel.

Sehingga untuk class mahasiswa. Struktur database yang akan terbentuk adalah seperti dibawah.

struktur.jpg

Fyuhh. Bersambung lagi deh ke postingan selanjutnya. Semangat ya temen temen.

5 thoughts on “Tutorial : First Step To Hibernate Part 2

  1. thx atas contohnya

    tp aq ad masalah sama get transaksi.
    symbol : method getTransaction()
    location: interface org.hibernate.classic.Session
    HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback();

    jadi commit sama rollback-nya tidak bisa

    aq buat variabel tx bertipe org.hibernate.Transaction
    tx = HibernateUtil.getSessionFactory().getCurrentSession().beginTransaction();

    tx.commit();
    tx.rollback();

    commit sama rollbacknya udah bisa

  2. Dengan Hibernate kita juga dapat melakukan transaction dengan mudah. Dapat dilihat pada method doGet, terdapat beginTransaction() ,commit() dan rollback().

    gw suka bagian ini.
    makasi lo, tulisanna menarik.
    tetep nulis ya.ditunggu lanjutannya.
    hahaha

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 )

Facebook photo

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

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.