Belajar Ibatis (menggunakan Netbeans)

3 April 2009 at 08:03 | Posted in Uncategorized | 14 Comments

Kemarin saya mencoba Ibatis, framework untuk datamapping. Selama ini aplikasi Java yang saya buat langsung menggunakan JDBC saja karena memang aplikasinya kecil.

Sayangnya setelah mencoba beberapa tutorial Ibatis yang ada di internet, tidak ada yang menjelaskan secara mudah dan ringkas penggunaan Ibatis pada Netbeans. Butuh lumayan lama untuk membuat versi sederhana (ala “hello world”) dengan Ibatis. Masalah yang muncul adalah pengaturan classpath yang membuat getResourceAsReader gagal. Netbeans selalu mencari di /build/classes,  sehingga perlu ditambahkan beberapa penyesuaian.

Yang akan saya tulis di blog ini adalah tutorial yang paling minimalis yang menggunakan Ibatis. Aplikasinya menggunakan Netbeans (Windows). Tujuannya untuk referensi saya pribadi, jadi yang tidak-suka-tidak-boleh protes, walaupun silahkan saja memberikan masukan 😛 Tapi syukur juga kalau posting ini dapat bermanfaat bagi orang lain.

Asumsikan MySQL dan Netbeans sudah ada di komputer. Ibatis dapat didownload di ibatis.apache.org. Buat database baru dengan nama dbtest dengan satu table Mahasiswa sebagai berikut:

create table mahasiswa ( id int auto_increment primary key, nim char(10), nama varchar(50) )

Isi dengan satu record:

insert into dbtest(nim,nama) values (‘1111′,’Budi’);

Kemudian buka Netbeans, buat new project, pilih Java Application. Beri nama “TestIbatis”. Lalu tambahkan dua library yang dibutuhkan, yaitu Ibatis dan MySQL driver. Pilih libraries (gambar bawah), klik kanan, pilih “Add Library” lalu pilih “mysql JDBC driver”. Kemudian klik kanan sekali lagi, pilih “Add JAR/Folder”, lalu masuk ke direktori Ibatis dan pilihlan ibatis-x.x.x.xxx.jar.

Isi Libraries

Isi Libraries

Sekarang buat file XML konfigurasi untuk Ibatis. Klik kanan pada package testibatis (gambar bawah) –> new –> Other –> XML document

Tambah File XML

Tambah File XML

Kemudian pilih XML document

Tambah XML

Tambah XML

Beri nama SqlMapConfig.xml dengan isi sebagai berikut. Jangan lupa sesuaikan nama database (di contoh ini  namanya dbtest), username dan password .

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
  PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
  "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
  <settings useStatementNamespaces="true"/>
<transactionManager type="JDBC">
    <dataSource type="SIMPLE">
<property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
<property name="JDBC.ConnectionURL"
        value="jdbc:mysql://localhost:3306/dbtest"/>
<property name="JDBC.Username" value="root"/>
<property name="JDBC.Password" value=""/>
    </dataSource>
  </transactionManager>
  <sqlMap resource="\testibatis\Mahasiswa.xml"/>
</sqlMapConfig>

Buat xml untuk table mahasiswa (caranya sama dengan buat xml diatas). Beri nama Mahasiswa.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="Mahasiswa">
<select id="getMahasiswa" parameterClass="String" resultClass="testibatis.Mahasiswa">
SELECT
    NIM as nim,
    NAMA as nama
FROM MAHASISWA
    WHERE NIM = #value#
</select>
</sqlMap>

Buat Mahasiswa.java (caranya sama dengan menambah xml document, tapi pilih tipe java class). Isi sebagai berikut

public class Mahasiswa {
   private String nim;
   private String nama;
}

Lalu klik kanan (gambar bawah), pilih refactor –> Encapsulate Field untuk membuat method setter dan getter.

Refactor

Refactor

Pilih semua create getter dan create setter.

Kemudian buat SqlConfig.java untuk membuat map

import java.io.*;
public class SqlConfig {
private static final SqlMapClient sqlMap;
static {
   try {
      String resource = "\\testibatis\\SqlMapConfig.xml";
      Reader reader = Resources.getResourceAsReader (resource);
      sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
   } catch (Exception e) {
      e.printStackTrace();
      throw new RuntimeException ("Error initializing MyAppSqlConfig class. Cause: " + e);
   }
}

public static SqlMapClient getSqlMapInstance () {
    return sqlMap;
}
}

Terakhir, di Main.java, tambahkan kode berikut:

import com.ibatis.sqlmap.client.SqlMapClient;

public class Main {
public static void main(String[] args) {
   System.out.println("Coba Ibatis");
   SqlMapClient sqlMap = SqlConfig.getSqlMapInstance();
   try {
        Mahasiswa M = (Mahasiswa) sqlMap.queryForObject("Mahasiswa.getMahasiswa", "1111");
        System.out.println(M.getNama());
   } catch (Exception e) {
      e.printStackTrace();
   }
}
}

Jalankan, dan program akan menampilkan ‘Budi”.

14 Comments »

RSS feed for comments on this post. TrackBack URI

  1. Kelebihan Ibatis dibanding JDBC apa ya?

  2. Saya juga baru mencoba sedikit. Menurut saya kelebihannya:

    – Memaksa agar SQL terpisah dengan program. Program yang SQL-nya tersebar dimana-mana cenderung sulit dibaca dan sql-nya sulit direuse.

    – Pemetaan ke objek lebih mudah. Data di DB di load ke objek, manipulasi objek lalu simpan lagi ke DB. Tanpa ibatis ini harus dilakukan manual.

  3. Nanya nih bos kalo saya pingin buat koneksinya dinamis jadi dari file ini misalnya bisa ngak setting SqlMapConfig.xml
    bukan
    tapi dari file ini yang ada di /home/mbahsomo/program/setting/ini
    misal😀
    atau mungkin dari sebuah class

  4. Coba lihat code SqlConfig.java, disana tinggal disesuaikan saja lokasi dan nama file xml-nya.

  5. Menarik pa, saya juga ingin coba…
    yang saya dengar ibatis itu seperti hibernate, tetapi ada fitur – fitur hibernate yang tidak ada di ibatis karena itu libary ibatis sangatlah kecil dan cocok sekali bila aplikasi yang kita buat tidak terlalu rumit relasi tabel di database.

    Tapi yang saya tanyakan jika kita menggunakan Ibatis kira-kira penggunaan stroe procedure masih kental ga?

    • IMO, justru kalau relasinya rumit setahu saya pakai hibernate-pun kembali ke SQL. Jadi kalau banyak query yg rumit, sepertinya ibatis lebih bagus. cmmiw.

      Tentang SP, saya belum pernah coba.

    • Berbagi pengalaman aja ni. dulu saya pernah peke SP di iBatis. Cukup mudah menggunakannya.😉

  6. Tlong donk, saya khan dah coba belajar ibatis, dah cukup ada penjelasan diatas. Gmn dengan hibernate? Minta penjelasannya donk.. Kalau bisa sekalian manipulasi datanya ;))

    • Sorry belum belajar, nggak selera begitu melihat HSQL hehe. Tapi rencananya saya mau mengadakan pelatihan Ibatis+Hibernate, jadi mungkin materi tentang Hibernate juga akan saya buat.

  7. Pak bisa tolong di bahas konsep penerapannya dalam aplikasi penjualan gak pak kalau bisa pakek Netebeans soalnya saya lagi tertarik dengan java netbeans from VB nih hehehe mau pindah java

  8. salam kenal mas yudi..
    saya mau tnya tentang cara memainkan file swf di netbeans,
    tolong kasih tutorialnya dong.
    & kirim ke emailku dcat_entersandman@yahoo.com
    trims.

  9. […] Posted Belajar Ibatis (menggunakan Netbeans) […]

    • Satu lagi yang mengcopy paste isi blog saya

  10. wah banyak juga nie pengguna ibatis,,, saya sendiri baru belajar pertama kali memang cukup sulit untuk memahami namun sedikit demi sedikit menarik juga untuk dipelajari,,,
    saya sendiri belajar menggunakan visual studio.
    lam kenal kawan,,,


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

Blog at WordPress.com.
Entries and comments feeds.

%d bloggers like this: