ibatis 셋팅하기
1. 다운로드
http://www.apache.org -> iBatis -> JAVA -> Download iBATIS Java 2.3.4
2. 라이브러리 설치
다운받은 파일 압축을 풀고 lib폴더에 jar 파일(1개)을 프로젝트의 WEB-INF/lib 폴더에 복사
3. common 클래스 작성
DAO에서 상속받아 쉽게 쓰기위한 서포트 클래스( sqlMapConfig 로드하기 위한 )를 미리 작성한다
common 패캐지에 BaseDAO.java 를 생성한다
package common;
import java.io.IOException;
import java.io.Reader;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public abstract class BaseDAO
{
/*
* iBATIS : SQL Data Mapper
* Sql.MapConfig.xml 을 읽어들여서 sqlMapper 를 만든다.
* */
protected static SqlMapClient sqlMapper;
static {
try {
Reader reader = Resources.getResourceAsReader("common/SqlMapConfig.xml");
sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
// Fail fast.
throw new RuntimeException(
"Something bad happened while building the SqlMapClient instance." + e, e);
}
}
}
4. iBATIS 기본 세팅 파일 ( SqlMapConfig.xml )
common 패키지에 SqlMapConfig.xml 파일을 아래처럼 작성한다
( 압축푼 폴더의 simple_example\com\mydomain\data\SqlMapConfig.xml 참조.. )
<?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>
<!-- DataSource 설정 -->
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="SIMPLE">
<property name="JDBC.Driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@127.0.0.1:1521:java" />
<property name="JDBC.Username" value="scott" />
<property name="JDBC.Password" value="tiger" />
</dataSource>
</transactionManager>
<!-- sqlMap 리소스 파일 -->
<sqlMap resource="member/Member.xml" />
</sqlMapConfig>
5. sqlMap 파일 생성
일반적으로 테이블 별로 파일을 생성한다
member 패키지에 Member.xml 파일을 아래처럼 작성한다
( member.MemberVO 클래스는 테이블과 데이타 맵핑을 위해 반드시 필요하다.
Bean객체처럼 컬럼명과 같은이름의 속성과 get/set 메소드를 가지고 있어야한다 )
<?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="Member">
<!-- 클래스 별칭 지정 -->
<typeAlias alias="Member" type="member.MemberVO"/>
<!-- 회원 정보 가져오기 -->
<select id="member.read" parameterClass="String" resultClass="Member">
select * from member where userid=#userid#
</select>
</sqlMap>
6. DAO 작성
member 패키지에 BaseDAO를 상속받는 MemeberDAO를 생성하여
sqlMap에 select문을 호출하여 회원정보를 가져온다
package member;
import java.sql.SQLException;
import common.BaseDAO;
public class MemberDAO extends BaseDAO {
//해당 userid를 가진 회원의 정보를 가져온다
public MemberVO memberRead(String userid) throws SQLException {
return (MemberVO) sqlMapper.queryForObject("member.read",userid);
}
}
출처 : http://egloos.zum.com/slog2/v/3570480











