Banyak sekali kegunaan spring dikehidupan kita sehari-hari. ada yang berfungsi sebagai AOP, yang digunakan sebagai BeanFactory atau suatu Factory untuk membuat Bean. ada IoC atau lebih dikenal dengan Injection of Controller ada juga yang berfungsi sebagai ORM yaitu Object Relational Mapping.
Untuk Konsep AOP(Aspect Oriented Programming) merupakan konsep yang mengimplementasikan Aspect Annotation yang digunakan untuk join column.
nah sekarang bagaimana dengan konsep ORM?sama halnya di AOP spring ORM juga untuk mapping relational table column atau join column didalam sebuah database.
sample :
<!-- mapping files -->
<mapping class="org.training.meruvian.hibernate.Kategori"/>
mapping class tersebut dideklarasikan untuk memetakan object yang bernama Kategori.
ok. sebelum kita mapping object yang nantinya akan dijadikan schema. langkah awal yang harus kita lakukan adalah koneksi database. banyak cara yang bisa digunakan untuk mengkoneksikan applikasi kita dengan database seperti:
1. Menggunakan Connection Pooling menggunakan Connection manual.
2. Menggunakan Hibernate Configuration.
untuk memudahkan kita untuk memilah-milah mana yang termasuk konfigurasi dan mana yang termasuk class java/object kita maka kita buat package di project kita. terserah namanya bisa diganti apa saja, cuman saya biasa membuat config, java, dan template.hehehe...

nah sekarang kita mulai dengan sebuah hibernate.cfg.xml yang digunakan sebagai configuration dari database connectivity sekaligus mapping untuk program applikasi kita.
sebelumnya jangan lupa untuk memasukkan library atau file yang mempunyai ext .jar yang dibutuhkan seperti :

hibernate.cfg.xml
<?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 name="HibernateSessionFactory">
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">tulalit</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate</property>
<property name="hibernate.connection.username">root</property>
<!-- mapping files -->
<mapping class="org.training.meruvian.hibernate.Kategori"/>
</session-factory>
</hibernate-configuration>
nah setelah membuat hibernate.cfg.xml di config kita harus membuat object class yang telah ter-mapping di <mapping class="org.training.meruvian.hibernate.Kategori"/> dengan nama Kategori.java dimana ini akan didefinisikan sebagai object yang nantinya akan digunakan pada proses transaksi di database.
Kategori.java
@Entity() // ini menjelaskan tentang type entity annotation
@Table(name="tb_kategori" ) // menjelaskan tentang nama dari sebuah schema dari object
@Inheritance(strategy=InheritanceType.SINGLE_TABLE) // type inheritance untuk single
public class Kategori extends DefaultPersistence{ // extends ke superclass defaultpersistence
private String name;
private String description;
// setter getter here
default persistence adalah persistence unit untuk membuat atau generate id secara automatically.
@MappedSuperclass
public class DefaultPersistence {
private String id;
@Id@GeneratedValue(generator="system-uuid" )
@GenericGenerator(name="system-uuid",strategy="uuid" )
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
setelah itu kita buat ant build.xml dimana xml ini merupakan file yang digunakan untuk meng-create schema ke database.
build.xml
<project name="bbook2hibernate" default="schemaexport">
<target name="init">
<property name="bb2h.base" value="/home/Mila/workspace/hibernate/Hibernate"/>
<property name="bb2h.lib" value="${bb2h.base}/lib"/>
<property name="bb2h.bin" value="${bb2h.base}/bin"/>
<property name="bb2h.source" value="${bb2h.base}/src"/>
</target>
<target name="schemaexport" depends="init">
<taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask">
<classpath>
<fileset dir="${bb2h.lib}">
<include name="**/*.jar"/>
</fileset>
<path location="${bb2h.bin}"/>
</classpath>
</taskdef>
<hibernatetool destdir="${bb2h.bin}">
<annotationconfiguration configurationfile="${bb2h.source}/config/hibernate.cfg.xml"/>
<hbm2ddl
drop="true"
console="false"
create="true"
outputfilename="bb2h-ddl.sql"
delimiter=";"
export="true"
/>
</hibernatetool>
</target>
</project>