saya akan mencoba berbagi ke teman” tentang cara menkoneksikan database MS Access dengan Hibernate. tentunya kita memerlukan Hibernate Dialect yang mendukung MS Access agar koneksi bisa dijalankan. sejauh ini, Hibernate 3 atau versi terbarunya belum menyediakan Dialect untuk MS Access.. namun kita dapat membuat Class tambahan untuk dialect MS Access yang diturunkan dari Dialect Hibernate. untuk mempelajari pola pembuatan Dialect dan propertiesnya bisa dilihat dan dipelajari pada link Hibernate.

langsung aja kita buat file koneksinya.. disini saya menggunakan Netbeans IDE 6.9.1 dengan JDK 1.5 dan MS Access 2000.. pertama, buat database baru di MS Access dengan nama dbAccess tanpa disertai table.. setelah itu letakan file dbAccess.mdb tersebut di Drive yang teman” tentukan. misalkan saya meletakannya di drive E:\dbAccess.mdb

lalu langkah kedua yaitu buat project baru di Netbeans dengan nama MSAccessHibernate. kemudian buatkan lagi Class baru dan beri nama AccessDialect. setelah itu ubah sourcecode class nya seperti berikut :

public class AccessDialect extends Dialect {
    public AccessDialect() {
        super();
        registerColumnType(Types.BIT, "BIT");
        registerColumnType(Types.BIGINT, "INTEGER");
        registerColumnType(Types.SMALLINT, "SMALLINT");
        registerColumnType(Types.TINYINT, "BYTE");
        registerColumnType(Types.INTEGER, "INTEGER");
        registerColumnType(Types.CHAR, "VARCHAR(1)");
        registerColumnType(Types.VARCHAR, "VARCHAR($l)");
        registerColumnType(Types.FLOAT, "DOUBLE");
        registerColumnType(Types.DOUBLE, "DOUBLE");
        registerColumnType(Types.DATE, "DATETIME");
        registerColumnType(Types.TIME, "DATETIME");
        registerColumnType(Types.TIMESTAMP, "DATETIME");
        registerColumnType(Types.VARBINARY, "VARBINARY($l)");
        registerColumnType(Types.NUMERIC, "NUMERIC");

        getDefaultProperties().setProperty(Environment.STATEMENT_BATCH_SIZE, NO_BATCH);
        getDefaultProperties().setProperty(Environment.DIALECT, "true");
        getDefaultProperties().setProperty(Environment.AUTOCOMMIT, "true");
    }
}

kemudian buatkan lagi Class baru dan beri nama Class tersebut dengan MyData lalu ubah sourcecode nya seperti ini :

public class MyData {

    private int id;
    private String nama;

    public int getId() {
        return id;
    }

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

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }
}

Setelah kedua Class tersebut dimodifikasi, kemudian buatkan Hibernate Configurasinya. dengan cara klik kanan Project lalu pilih New -> Other -> Hibernate -> Hibernate Configuration Wizard. lalu di Next terus hingga Finish. kemudian ubah source code programnya XML nya 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.dialect">AccessDialect</property>
        <property name="hibernate.connection.driver_class">sun.jdbc.odbc.JdbcOdbcDriver</property>
        <property name="hibernate.connection.url">jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=e:\\dbAccess.mdb</property>
        <property name="hbm2ddl.auto">update</property>
    </session-factory>
</hibernate-configuration>

untuk hibernate Dialectnya disesuaikan dengan Class AccessDialect yang sudah dibuat sebelumnya sedangkan untuk Hibernate Connection Url disesuaikan dengan letak file database DbAccess.mdb pada pengaturan sebelumnya. setelah itu buatkan lagi sebuah Hibernate Mapping dengan cara klik kanan project kemudian pilih New -> other -> hibernate -> Hibernate Mapping Wizard. lalu klik Next hingga Finish. kemudian ubah kode XML nya seperti ini :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="MyData" table="tData">
        <id name="id" column="id_data">
            <generator class="native"/>
        </id>
        <property name="nama" column="name" type="string" length="100"/>
    </class>
</hibernate-mapping>

langkah terakhir adalah membuat sebuah class main untuk menjalankan file koneksinya. class main tersebut dinamai dengan Main kemudian ubah code programnya seperti ini :

public class Main {
    public static void main(String[] args) {
        try {
            SessionFactory sfac = new Configuration().configure().buildSessionFactory();
            Session sesi = sfac.getCurrentSession();
            sesi.beginTransaction();
        } catch (Exception e) {
        }
    }
}

setelah itu Jalankan projectnya sehingga dengan otomatis akan ditambahkan table beserta fieldnya pada database MS Access yang sudah dibuat sebelumnya.. selamat mencoba.. semoga membantu🙂