dear all jugger,
maaf ada ralat pada artikel ibatis yg pertama. di class status manager ada statement IbatisUtil……. nah itu tidak akan muncul dikarenakan kita belum membuat class IbatisUtil nya. nah sekarang kita buat class nya :
package model;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import java.io.IOException;
import java.io.Reader;
public class IbatisUtil {
private static SqlMapClient sqlMapper = null;
static {
try {
Reader reader = Resources.getResourceAsReader(”model/SqlMapConfig.xml”);
sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
throw new RuntimeException(”Something bad happened while building the SqlMapClient instance.” + e, e);
}
}
public static SqlMapClient sqlMapper(){
return sqlMapper;
}
}
nah sekarang terbentuk class IbatisUtil yg dapat di panggil di Status Manager.
ok sekarang jugger kita lanjut ke bagian 2 yaitu bagaimana menggunakan relasi many-to-one , one-to-many , many-to-many, one to one. pada bagian ini akan dibahas many to one dan bagian ini merupakan terusan bagian ibatis 1.
persiapan 1
sekarang kita buat class bernama User:
package model;
public class User{
private int idUser;
private String userName;
private String password;
private Status status;
(jangan lupa buat getter and setter nya)
}
sekarang buat tabel nya dengan field-field berikut:
IDUSER (int)
USERNAME (varchar)
PASSWORD (varchar)
STATUS ID (int) >> di buat foreign key ke tabel status
setelah itu buat konfigurasi xml untuk class User
PUBLIC “-//ibatis.apache.org//DTD SQL Map 2.0//EN”
“http://ibatis.apache.org/dtd/sql-map-2.dtd”>
xml di atas disimpan dengan nama User.xml dan jangan lupa kita cantumkan juga property nya di SqlMapConfig.xml dengan
perhatikan di bawah result map pada User.xml ada tambahan property
NB : select itu ada 2 jenis yang satu akan mengembalikan nilai berupa object class danyang satu akan mengembalikan nilai berupa collection, caranya sama tinggal kita ubah aja pada property nya menjadi
perhatikan pada parameter #status.idStatus# ini akan mendapat property idStatus dari tabel status.
sekarang kita coba insert ke tabel user, dan jangan lupa buat pada class StatusManager method yg akan mengembalikan nilai berupa object status dengan parameter id.
package model;
public class UserManager{
public void updateUser(User user){
try{
IbatisUtil.sqlMapper().startTransaction();
IbatisUtil.sqlMapper().insert(”insertUser”,user);
IbatisUtil.sqlMapper().commitTransaction();
}catch(Exception e){
………
}finally{
IbatisUtil.sqlMapper().endTransaction();
}
}
}
sekarang kita test:
package model;
public class Test{
public static void main(String [] args){
StatusManager statusManager = new StatusManager();
UserManager userManager = new UserManager();
User user = new User();
try{
Status status = statusManager.loadStatusById(1);
user.setUserName(”admin”);
password.setPassword(”rahasia”);
status.setStatus(status);
userManager.insertUser(user);
}catch(Exception e){
………….
}
}
}
dengan contoh yang simple diatas yang berelasi many to one dapat memberi arahan bagaimana menggunakan ibatis dengan mudah pada kasus yang lain, seperti one to many , many to many , one to one.
semoga bermanfaat.
Salam,
Ivan Prasetia
YM! : iphan_zeke_boy@yahoo.co.id
