«

»

Mar 16

[Java] Integrasi Spring + Hibernate Framework (Part 2)

Artikel ini adalah lanjutan dari artikel sebelumnya yang membahas tentang bagaimana caranya mengintegrasikan Spring dan Hibernate. Jika kamu belum membaca artikel sebelumnya, silahkan baca terlebih dahulu.  Dalam artikel kali ini kita akan membuat konfigurasi hibernate dan spring, lalu dengan konfigurasi Spring tersebut kita akan membuat class untuk meng-inject bean yang sudah di daftarkan ke dalam program kita.

Sebelumnya mari kita membuat konfigurasi untuk hibernate, jika kita membuat program ini menggunakan netbeans, kita bisa dengan mudah membuat konfigurasi dengan plugin Hibernate yang sudah ada di netbeans, tapi dengan eclipse, kita harus mendownload plugin yang bernama Hibernate Tools terlebih dahulu. Jika plugin tersebut sudah tersedia di eclipse kesayangan anda (hehehe….), Tinggal ikuti saja wizard nya lalu akan terbuat script xml seperti 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.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password">xxxxxxxx</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/springhibernate</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
   	<property name="hibernate.hbm2ddl.auto">update</property>
 
   	<mapping class="com.kusandriadi.mahasiswa.bean.Mahasiswa" />
    </session-factory>
</hibernate-configuration>

Disitu ada property untuk mendaftarkan driver, password, username, dll. username dan password harus diisi sesuai dengan pengaturan mysql komputer anda, perhatikan juga port mysql, mungkin di setiap komputer ada yang menginstall dengan port yang berbeda. Disitu juga ada property “hibernate.hbm2ddl.auto“, property ini digunakan jika kita ingin hibernate men-generate table sendiri dari class Mahasiswa yang kita buat di artikel sebelumnya yang telah di mapping menggunakan persistence. Jangan lupa, kita juga harus mendaftarkan class Mahasiswa pada konfigurasi Hibernate. Anyway, Sebenarnya kita bisa saja meng-inject property dari konfigurasi hibernate ini melalui spring, tapi itu sendiri kembali kepada selera masing-masing, banyak jalan menuju roma…hehehe. Setelah selesai dengan konfigurasi hibernate, kita akan membuat konfigurasi untuk Spring, kurang lebih seperti ini :

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
 
       <tx:annotation-driven/>
 
   	   <bean class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
   	   	id="sessionFactory">
   	   		<property name="configLocation" value="classpath:com/kusandriadi/mahasiswa/conf/hibernate.cfg.xml"/>
   	   </bean>
 
   	   <bean class="org.springframework.orm.hibernate3.HibernateTransactionManager"
   	   	id="transactionManager">
   	   		<property name="sessionFactory" ref="sessionFactory" />
   	   </bean>
 
   	   <bean class="com.kusandriadi.mahasiswa.dao.inject.MahasiswaDaoInject"
   	   	id="mahasiswaDao">
        	        <property name="sessionFactory" ref="sessionFactory"/>
 	    </bean>
</beans>

Untuk memproses transaksi di dalam class, konfigurasi transaksi harus di buat dan di daftarkan, dalam hal ini <tx:annotation-driven/> akan mengatur semua transaksi. Selebihnya kita hanya mendaftarkan bean AnnotationSessionFactoryBean dan HibernateTransactionManager, jangan lupa juga untuk mendaftarkan bean MahasiswaDaoInject, pada kelas tersebut di inject sessionFactory dari AnnotationSessionFactoryBean.

Setelah selesai membuat file konfigurasi untuk Hibernate dan Spring, sekarang kita akan membuat class yang akan memanggil bean yang berada di konfigurasi Spring yang kemudian akan di inject ke dalam program.

package com.kusandriadi.mahasiswa.util;
 
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
import com.kusandriadi.mahasiswa.dao.MahasiswaDao;
 
public class SpringUtilities {
 
	private static ApplicationContext applicationContext;
 
	public static ApplicationContext getApplicationContext(){
		applicationContext = new ClassPathXmlApplicationContext("com/kusandriadi/mahasiswa/conf/mahasiswa.xml");
		return applicationContext;
	}
 
	public static MahasiswaDao getMahasiswaDao(){
		return (MahasiswaDao)getApplicationContext().getBean("mahasiswaDao");
	}
 
}

getApplicationContext() akan mengembalikan obyek ApplicationContext kepada method yang memanggilnya, jangan lupa di isi dengan classpath dimana konfigurasi Spring anda berada. Sedangkan getMahasiswaDao() akan mengembalikan bean/obyek yang telah di inject oleh Spring.

hmm, sepertinya cukup disini dulu artikel ini, next kita akan membahas tentang bagaimana melakukan proses membaca ataupun manipulasi database dengan menggunakan Spring dan Hibernate. Saya tidak pandai menulis, jadi mohon maaf jika ada beberapa kata yang sulit dimengerti atau agak rancu, saya sangat mengharapkan kritik dan saran dari kalian semua, See you on the next article. Thank you…

Regards

1 ping

  1. KusAndriadi.com » Blog Archive » [Java] Integrasi Spring + Hibernate Framework (Part 3)

    [...] [Java] Integrasi Spring + Hibernate Framework (Part 2) [...]

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Get Adobe Flash playerPlugin by wpburn.com wordpress themes