koneksi Microsoft Access dengan Hibernate


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 🙂

Advertisements

8 thoughts on “koneksi Microsoft Access dengan Hibernate

  1. Thank you so much!! I have just discovered this wonderful artist and his works. They’re so serene and soothing, I use them on my desktop at work. It’s hard to find information written in English about him, though..anyone have any good links? Thanks again!!

  2. alo kak mau nanya saya kan lg buat proect database marketing.
    database saya access programnya pake VS2010 tapi C#.
    Saya lg bingung neh sama codingnya.
    klo pas masuk login biar isa muncul misal perusahaan A akan habis masa kontraknya 25 hr lg, semisal perusahaan A itu mulai kontrak tgl 1Januari2010-1Januari2011 itu gmn ya?
    tapi kalo perusahaan lainnya kontraknya sampai 2th lebih itu gimana ya cara menghitungnya?
    tyus kalau nantinya masukin client baru biar isa nantinya mucul kaya yang diatas jg gmn?

    hehehhe…
    saya sudah megutak-atik tapi tetep aja gak isa.
    tolong kak bantuannya,hampir deadline soalnya…
    makasih bangettttt….
    GBU

      1. untuk koneksi ke Microsoft Access dengan Hibernate kadang bermasalah karena koneksi pertamanya msh terus brjalan..berbeda jika menggunakan ODBC.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s