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.
- name = nama variabel pada class yang akan
- <property> = konfigurasi untuk attribut database.
- name = nama variabel pada class
akan dijadikan kolom pada tabel.
- name = nama variabel pada class
Sehingga untuk class mahasiswa. Struktur database yang akan terbentuk adalah seperti dibawah.
Fyuhh. Bersambung lagi deh ke postingan selanjutnya. Semangat ya temen temen.
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
waduh son!!
aq masih kurang jelas maslah pertanyaanmu…
kamu YM aq aja yach…
: )
nice article…tp kok di putus2 ya…aq bingung baca nya…hehehe. keep writing yauw…^_^
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