Belajar Ibatis (menggunakan Netbeans)
3 April 2009 at 08:03 | Posted in Uncategorized | 14 CommentsKemarin 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
Sekarang buat file XML konfigurasi untuk Ibatis. Klik kanan pada package testibatis (gambar bawah) –> new –> Other –> XML document

Tambah File XML
Kemudian pilih XML document

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
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
Leave a Reply
Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.
Kelebihan Ibatis dibanding JDBC apa ya?
Comment by hilda widyastuti— 8 April 2009 #
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.
Comment by yudiwbs— 8 April 2009 #
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
Comment by mbahsomo— 11 April 2009 #
Coba lihat code SqlConfig.java, disana tinggal disesuaikan saja lokasi dan nama file xml-nya.
Comment by yudiwbs— 11 April 2009 #
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?
Comment by yadi rosadi— 24 April 2009 #
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.
Comment by yudiwbs— 24 April 2009 #
Berbagi pengalaman aja ni. dulu saya pernah peke SP di iBatis. Cukup mudah menggunakannya.
Comment by Idham— 11 February 2010 #
Tlong donk, saya khan dah coba belajar ibatis, dah cukup ada penjelasan diatas. Gmn dengan hibernate? Minta penjelasannya donk.. Kalau bisa sekalian manipulasi datanya
)
Comment by EiChaty— 13 June 2009 #
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.
Comment by yudiwbs— 17 June 2009 #
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
Comment by HackerMpia— 26 August 2009 #
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.
Comment by cad_enter— 13 November 2009 #
[...] Posted Belajar Ibatis (menggunakan Netbeans) [...]
Pingback by Posted « harisx5— 11 January 2010 #
Satu lagi yang mengcopy paste isi blog saya
Comment by yudiwbs— 11 January 2010 #
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,,,
Comment by hendra— 12 March 2010 #