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 :

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

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.
Sangat bermanfaat mas, walaupun saya belum begitu memahami. Saya akan belajar dari dasar mengenai framework. Semoga tulisannya semakin inspiratif dan menambah motivasi.
woi ki, hahahah terima kasih sudah berkunjung … by the way KLCH gimana hahahahah …
KLCH aman terkendali mas hee. Semoga mas gufron selalu ada waktu untuk terus memposting tutorial yang sangat bermanfaat untuk newbie seperti saya dan semoga Allah swt membalas semua kebaikan mas gufron kelak. heee
amin ya Allah … =))
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
wih ada mas azis …
ada disini mas
http://www.informit.com/articles/article.aspx?p=353736&seqNum=4
sama disini juga mas ada ;
https://community.jboss.org/wiki/HowToConfigureTheC3P0ConnectionPool
heheh e
wah mantap gan. ane bisa bljar banyak nih di web ente gan. pertamax gan
Lu kagak pertamax kali …. udah ada yang pertamaxin lebih dulu d tulisan ini