Spring 4 and Hibernate 4 Integration (using Oracle)

Oke weekend ini badan agak meriang, setelah kemarin kucing saya terkena pilek dan sepertinya nular ke saya jadi untuk weekend ini saya gunakan untuk exploring aja mudah – mudahan ada manfaatnya bagi nusa dan bangsa terlebih lagi untuk agama … (lebay dot com … xixixxi). oke guys tulisan ini adalah kelanjutan dari tulisan saya sebelumnya Spring 4 MVC Hello INDONESIA aka hello world jadi pada tulisan ini saya berasumsi anda telah memiliki program spring yang sudah bisa memanggil hello INDONESIA (hello world) dan kali ini kita akan mengintegrasikan program tersebut dengan Hibernate versi 4.3.1 (latest version pada saat tulisan ini dibuat). Untuk database nya sendiri biasanya saya menggunakan mysql (karena mainstream mudah untuk dipelajari) tapi karena kita menggunakan hibernate jadi tak perlu ragu untuk berganti RDBMS, kali ini saya menggunakan Oracle 11g Express Edition

Yang pertama kali harus disiapkan adalah tentunya library Hibernate .. untuk library hibernate anda bisa mendownload gratis dari link ini Hibernate Download , oh iya sekedar mengingatkan Hibernate itu sekarang banyak plugin nya seperti Hibernate Validator, Hibernate Search dan lain nya. yang kita download disini adalah Hibernate ORM

Selain Library Hibernate, kita juga memerlukan Driver Oracle (kalau di MySQL seperti MySQL Connector) dia yang menjembatani Java dengan database relational yang lebih spesifik, oleh karena itu setiap vendor RDBMS membuat library connector nya masing masing .. dan saya juga menggunakan library OJDBC 6 (ojdbc6.jar) yang bisa di download pada link ini Download Oracle Connector.

Setelah selesai mendownload library – library tersebut, masukkan library – library tersebut pada WEB-INF/lib .. oh iya untuk hibernate tidak perlu semua library nya dimasukkan (semua juga gpp sih, tergantung kepercayaan masing masing xixixi) cukup hanya yang terdapat didalam folder required dan optional/c3p0 saja. Saya berasumsi anda sudah mengetahui bagaimana cara menambahkan library pada Eclipse, jadi disini saya tidak menjelaskan nya lagi.

Setelah hal – hal diatas sudah dilakukan, buka file applicationContext.xml dan rubah menjadi 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:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd


http://www.springframework.org/schema/context


http://www.springframework.org/schema/context/spring-context-3.0.xsd


http://www.springframework.org/schema/mvc


http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

	<context:annotation-config />
	<context:component-scan base-package="com.spring.example" />
	<mvc:annotation-driven />  

	<import resource="hibernate-context.xml"/>
</beans>

Kemudian buat file bernama hibernate-context.xml pada direktori WEB-INF yang isinya adalah sebagai berikut :

<?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:p="http://www.springframework.org/schema/p"
       	xmlns:tx="http://www.springframework.org/schema/tx"
       	xmlns:context="http://www.springframework.org/schema/context"
       	xsi:schemaLocation="

http://www.springframework.org/schema/beans


http://www.springframework.org/schema/beans/spring-beans-3.0.xsd


http://www.springframework.org/schema/tx


http://www.springframework.org/schema/tx/spring-tx-3.0.xsd


http://www.springframework.org/schema/context


http://www.springframework.org/schema/context/spring-context-3.0.xsd

	   		">

	 <context:property-placeholder location="/resources/properties/config.properties" />
	<tx:annotation-driven transaction-manager="transactionManager" />	

	<!-- create Hibernate Session Factory -->
	<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"
				 p:dataSource-ref="dataSource"
				 p:configLocation="${hibernate.config}"
				 p:packagesToScan="${scan.model}"/>

	<!-- create Data Source  -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
				destroy-method="close"
				p:driverClass="${jdbc.driverClassName}"
				p:jdbcUrl="${jdbc.url}"
				p:user="${jdbc.username}"
				p:password="${jdbc.password}"
				p:acquireIncrement="5"
				p:idleConnectionTestPeriod="60"
				p:maxPoolSize="100"
				p:maxStatements="50"
				p:minPoolSize="10" /> 

	<!--  Hibernate Transaction Manager -->
	 <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"
       			p:sessionFactory-ref="sessionFactory" /> 

</beans>

Pada code diatas ada beberapa point yakni SessionFactory, DataSource, dan HibernateTransactionManager, insya Allah nanti saya bahas pada tulisan yang berbeda mengenai 3 hal tersebut, fokus pada tulisan ini kita coba mengintegrasikan terlebih dahulu setelah itu baru hal hal penting (yang sangat teoritis) seperti ini akan saya bahas.

Kemudian buatlah file bernama config.properties yang diletakkan pada WebContent/resources/properties, adapun isi dari file config.properties tersebut adalah sebagai berikut :

# database properties
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:xe
jdbc.username=simplify
jdbc.password=12345678

#hibernate properties
hibernate.config=/WEB-INF/hibernate.cfg.xml

#scanning package
scan.model=scan.model=com.spring.example.model

Kemudian buatlah file bernama hibernate.cfg.xml yang terdapat pada direktori WEB-INF, adapun isi dari file tersebut adalah sebagai berikut :

<?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.Oracle10gDialect</property>
  <property name="show_sql">false</property>
  <property name="hbm2ddl.auto">create</property>
  </session-factory>
</hibernate-configuration>

pada file diatas terdapat code mengenai hibernate dialect, hibernate dialect adalah String yang digunakan hibernate untuk mengenali database yang dikoneksikan dengan dirinya, hibernate sudah sangat banyak support terhadap database database yang umum digunakan. Selain itu juga terdapat hbm2ddl.auto parameternya saya masukkan create yang berarti adalah Hibernate akan selalu meng create ulang table table yang terdapat pada database sesuai dengan object POJO yang di mapping. Dan itulah salah satu keunggulan hibernate, dia mampu mengcreate table lengkap dengan constraint nya sesuai dengan relasi mapping pada sisi Object POJO nya. Oleh karena itu kalau kita menggunakan hibernate kita tidak lagi bergantung pada satu RDBMS tertentu saja.

Oke setelah itu buat Class dengan nama ExampleObject.javapackage com.spring.example.model. adapun kode program untuk ExampleObject ini adalah sebagai berikut :

package com.spring.example.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class ExampleObject {

	@Id
	@GeneratedValue
	private Long id;

	@Column
	private String name;

	public ExampleObject(){}

	public Long getId() {
		return id;
	}

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

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

}

Finally struktur project nya akan menjadi seperti ini :

Struktur Project

Kemudian jalankan program dan anda bisa melihat pada TOAD bagaimana oracle telah meng create table nya.

example object 1

Oke finish… selamat melanjutkan perjuangan anda …. buat yang pengen praktis belajar nya … download project nya disini .. tinggal import aja … langsung ces pleng … Download Project

Dear teman teman kalau anda merasakan manfaat dari tulisan ini, saya tidak meminta anda untuk mengirimkan sejumlah uang sebagai donasi kepada saya, karena saya bisa mencarinya sendiri. Anda cukup membacakan surat Al – Fatihah kepada saya, kedua orang tua saya, keluarga saya dan seluruh kaum Muslimin Muslimat di seluruh penjuru dunia. Saya rasa tidak ada yang sulit hanya dengan membaca Surat Al – Fatihah (bagi anda yang Muslim). Atas doanya saya mengucapkan terima kasih.

8 thoughts on “Spring 4 and Hibernate 4 Integration (using Oracle)

  1. Sangat bermanfaat mas, walaupun saya belum begitu memahami. Saya akan belajar dari dasar mengenai framework. Semoga tulisannya semakin inspiratif dan menambah motivasi.

  2. Sangat bermanfaat, insyloh sy doakan dn bacakan fatihah.
    btw mau tanya:

    saya suka bingung manfaat
    p:maxPoolSize=”100″
    p:maxStatements=”50″
    p:minPoolSize=”10″ />

    bisa dijelaskan nggk? thx

Leave a Reply

Your email address will not be published. Required fields are marked *

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>