Dear all Jugger,
Di sini akan menerangkan bagaimana mudah nya menggunakan ibatis,
ibatis itu seperti hibernate, tetapi ada fitur - fitur hibernate yang tidak ada di ibatis karena itu libary ibatis sangatlah kecil.
ibatis cocok bila aplikasi yang kita buat tidak terlalu rumit relasi tabel di database. ibatis itu sangat ringan, malahan lebih ringan dari hibernate.
ibatis juga cocok untuk aplikasi desktop (JSE)
oke sampe situ saja keterangan tentang ibatis, langsung aja jugger kita coding.
persiapan 1:
siapkan libary ibatis. dapat di download di http://ibatis.apache.org/
persiapan 2:
di sini akan ada 1 class untuk contoh nya.
pertama kita buat class Status berisi :
package model;
public class Status{
private int idStatus;
private String namaStatus;
( jangan lupa buat getter and setter nya)
}
Nah karena ibatis tidak seperti hibernate yang dengan otomatis membentuk tabel sendiri, maka kita harus membuat tabel dulu di database dengan nama database dbtest dan terdapat tabel yg seperti class tersebut.
pertama tabel status berisi field - field berikut:
1. IDSTATUS (int)
2. NAMASTATUS(varchar)
ok setelah tabel terbentuk langsung buat konfigurasi ibatis :
<?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>
<transactionManager type=”JDBC” commitRequired=”false”>
<dataSource type=”SIMPLE”>
<property name=”JDBC.Driver” value=”com.mysql.jdbc.Driver”/>
<property name=”JDBC.ConnectionURL” value=”jdbc:mysql://localhost/dbtest?autoReconnect=true”/>
<property name=”JDBC.Username” value=”root”/>
<property name=”JDBC.Password” value=”admin”/>
</dataSource>
</transactionManager>
<sqlMap resource=”model/Status.xml”/>
</sqlMapConfig>
xml tersebut di simpan dengan nama SqlMapConfig.xml, dan terserah diletakan di package manapun. setelah itu kita buat xml untuk class tersebut.
<?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=”Status”>
<typeAlias alias=”Status” type=”model.Status”/>
<resultMap id=”StatusResult” class=”Status”>
<result property=”idStatus” column=”IDSTATUS”/>
<result property=”namaStatus” column=”NAMASTATUS”/>
</resultMap>
=============================================
pengisian ( <insert></insert> ,<delete></delete> dsb)
=============================================
</sqlMap>
xml tersebut di simpan dengan nama Status.xml
untuk memanipulasi database memerlukan perintah2 sql yang akan ditulis pada masing - masing xml yang bersangkutan.
untuk insert data ke tabel menggunakan property insert :
<insert id=”insertStatus” parameterClass=”Status”>
insert into status(NAMASTATUS)values(#namaStatus#)
</insert>
perintah tersebut disisipkan pada Status.xml setelah tag </resultMap> dengan id bernama insertStatus. yang digunakan untul memanggil fungsi tersebut ke dalam method. pemanggilan di method sebagai berikut :
buat class StatusManager
package model;
public class StatusManager {
public void insertStatus(Status status) {
try{
IbatisUtil.sqlMapper().startTransaction(); IbatisUtil.sqlMapper().insert(”insertStatus”,status); << id dari xml IbatisUtil.sqlMapper().commitTransaction();
}catch(Exception e){
……..
}finally{
IbatisUtil.sqlMapper().endTransaction();
}
}
}
untuk pengetesan :
public static void main(String [] args){
Status status = new Status();
StatusManager statusManager = new StatusManager();
status.setNamaStatus(”Manager”);
try{
statusManager.insertStatus(status);
}catch(Exception e){
}
}
untuk perintah delete,select dan update sama dengan perintah insert yang membedakan:
delete memakai tag <delete> delete…</delete>, dengan pemanggilan IbatisUtil.sqlMapper().delete(”deleteStatus”,id (type data menurut class) );
update memakai tag <update>update…</update>, dengan pemanggilan IbatisUtil.sqlMapper().delete(”updateStatus”,status );
select memakai tag <select>select…</select>, karena ini mempunyai return maka >> return IbatisUtil.sqlMapper().queryForList(”selectAllStatus”); akan menggembalikan nilai dalam bentuk List atau collection lainnya.
return (Status)IbatisUtil.sqlMapper().queryForObject(”selectStatusByNama”,nama); akan menggembalikan nilai dalam bentuk object status.
demikian contoh ibatis yang sangat simple. akan ada beberapa kasus yang complex yang dapat di explore pada ibatis.
salam,
Ivan Prasetia
YM! : iphan_zeke_boy@yahoo.co.id