Senin, 11 November 2013

Load hibernate.cfg.xml Dari Folder Lain

Malam ini mau tulis tentang load hibernate.cfg.xml pada folder / package yang berbeda. Terkadang pada saat run aplikasi yang menggunakan framework hibernate, kita mungkin dapat error "hibernate.cfg.xml not found". Kemungkinan, ketika menjalankan fungsi configure(), file hibernate.cfg.xml tidak terbaca pathnya.
Nah caranya cukup mudah, misalnya kita punya struktur seperti gambar di bawah ini


Lalu isi hibernate.cfg.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>
    <!-- a SessionFactory instance listed as /jndi/name -->
  <session-factory>
    <property name="hibernate.connection.driver_class">

       org.postgresql.Driver
    </property>
    <property name="hibernate.dialect">

        org.hibernate.dialect.PostgreSQLDialect
    </property>
    <property name="hibernate.connection.url">jdbc:postgresql:dboprek</property>
    <property name="hibernate.connection.pool_size">1</property>
    <property name="hibernate.connection.username">ardi</property>
    <property name="hibernate.connection.password">ardi</property>
    <property name="hibernate.show_sql">false</property>
    <property name="hibernate.query.factory_class">

       org.hibernate.hql.classic.ClassicQueryTranslatorFactory
    </property>
    <mapping resource="beans/Mahasiswa.hbm.xml" />
    </session-factory>
</hibernate-configuration>

Maka pada saat di konfigure, kita perlu seting path hibernate.cfg.xml menggunakan class File. Seperti pada Main.java di bawah ini

import java.io.File;
import java.io.IOException;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import beans.Mahasiswa;

public class Main {
    public static void main(String[] args) {
        SessionFactory factory = null;
        Session session = null;
        File file = new File("src/beans/hibernate.cfg.xml");

        Mahasiswa mhs = new Mahasiswa();
        mhs.setNama("Ardi");
        mhs.setUmur(25);
        try {
            factory = new Configuration().configure(file).buildSessionFactory();
            session = factory.openSession();
            session.beginTransaction();
            session.save(mhs);
            session.beginTransaction().commit();
        } catch (HibernateException hex) {
            System.out.println("Err HBM Exception");
            hex.printStackTrace();
        }
    }
}
Bisa dilihat pada kode di atas, kita buat object file. Lalu lempar object file ke fungsi configure(), untuk dijadikan sebegai factory session hibernate.
Perlu diinget, jika ingin menaruh file hibernate.cfg.xml dengan path yang tidak umum, hal yang harus diperhatikan adalah pada saat maaping resourcenya. Karena mesti disesuaikan terhadap hibernate.cfg.xml.
Mudah bukan. Kalau bingung bisa lihat di link ini.
Sekian dan wassalam :senyum

0 komentar:

Posting Komentar