wiki:ibatissetup

iBatis 셋팅

다운로드

  • 다운로드 사이트 :  http://ibatis.apache.org/
  • 자바 메뉴에서 다운로드한다. 본문에서 사용할 버전은 2.2 (DAO 지원)

라이브러리 복사

압축해제 후 라이브러리 파일은 WEB-INF/lib로 복사한다.

설정 파일

SqlMapConfig?.xml 설정

  • transactionManager에서 jdbc 설정한다. (드라이버, url, user, pass 등)
  • 사용할 sqlMap 패스를 설정한다.
<?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>
  <!-- Configure a built-in transaction manager.  If you're using an
       app server, you probably want to use its transaction manager
       and a managed datasource -->
  <transactionManager type="JDBC" commitRequired="false">
    <dataSource type="SIMPLE">
      <property name="JDBC.Driver" value="oracle.jdbc.OracleDriver"/>
      <property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@127.0.0.1:1521:XE"/>
      <property name="JDBC.Username" value="soomang"/>
      <property name="JDBC.Password" value="1234"/>
    </dataSource>
  </transactionManager>
  <!-- List the SQL Map XML files. They can be loaded from the
       classpath, as they are here (com.domain.data...) -->
  <sqlMap resource="kr/shop/persist/data/Product.xml"/>
  <!-- List more here...
  <sqlMap resource="com/mydomain/data/Order.xml"/>
  <sqlMap resource="com/mydomain/data/Documents.xml"/>
  -->
</sqlMapConfig>

SqlMap? : 테이블이름.xml

  • SqlMapConfig?.xml 에서 정의한 sqlMap 파일을 해당 패스에 생성한다.
  • Product.xml 예제는 여기 참조
  • model 클래스의 메소드에서 SqlMapper? 생성

DAO 패턴 설정

  1. SqlMap?.xml (Member.xml)생성
  2. SqlMapConfig?.xml 추가
  3. dao.xml (인터페이스와 구현체 추가)
  4. DaoInterface? 생성
  5. Dao 생성
  6. DaoConfig?.java 사용
  7. DaoService?.java 생성
  8. DaoServiceAware?.java 생성
  9. DaoServiceIntercepter?.java 생성
  10. 해당기능의 Action.java 생성
  11. struts.xml 등록

SqlMap? element

  • sql 요소
<statement><insert><update><delete><select><procedure>

  • sqlMap 요소
<cacheModel><typeAlias><parameterMap><resultMap>

SQL Maps API

  • 설정
String resource = “com/ibatis/example/sqlMap-config.xml”;
Reader reader = Resources.getResourceAsReader (resource);
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMap(reader);
  • 트랜젝션
public void startTransaction () throws SQLException
public void commitTransaction () throws SQLException
public void endTransaction () throws SQLException

  • statement
public int insert(String statementName, Object parameterObject) throws SQLException
public int update(String statementName, Object parameterObject) throws SQLException
public int delete(String statementName, Object parameterObject) throws SQLException
public Object queryForObject(String statementName,Object parameterObject) throws SQLException
public Object queryForObject(String statementName,Object parameterObject, Object resultObject) throws SQLException
public List queryForList(String statementName, Object parameterObject) throws SQLException
public List queryForList(String statementName, Object parameterObject, int skipResults, int maxResults) throws SQLException
public List queryForList (String statementName, Object parameterObject, RowHandler rowHandler) throws SQLException
public PaginatedList queryForPaginatedList(String statementName, Object parameterObject, int pageSize) throws SQLException
public Map queryForMap (String statementName, Object parameterObject, String keyProperty) throws SQLException
public Map queryForMap (String statementName, Object parameterObject, String keyProperty, String valueProperty) throws SQLException