2009-11-10

기본 iBATIS 설정, 테스트 해보기

iBATIS를 간단하게 설정해보고, DB연동을 어떻게 하는지 테스트해보았습니다. 보통은 웹프로그램에 많이 이용이 되겠지만, 기본적으로 사용하는 법을 알아야 웹에서도 응용을 할 수 있겠지요. 다음에는 톰캣+스트럿츠2+iBATIS 연동하여 사용하는 법을 연구해보겠습니다.


  • MySQL 설치 및 DB, Table 생성
    # apt-get install mysql-server-5.0 mysql-client-5.0
    # mysqladmin -u root password 새로운비밀번호 -p
    # mysql -u root -p
    mysql> CREATE DATABASE 디비이름 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    mysql> GRANT ALL PRIVILEGES ON 디비이름.* TO '아이디'@'localhost' IDENTIFIED BY '비밀번호' WITH GRANT OPTION;
    mysql> flush privileges;
    mysql> exit;
    # mysql -u 아이디 -p 디비이름
    mysql> create table (
        code_class_id   varchar(4),
        code_class_name varchar(100)
    );
    
    insert into(code_class_id, code_class_name) values('0000', '학교');
    insert into(code_class_id, code_class_name) values('0001', '병원');
    insert into(code_class_id, code_class_name) values('0002', '관공서');
  • 테스트를 위한 디렉토리 생성, iBATIS 프레임워크 파일 및 MySQL JDBC 드라이버 복사 (~/jars 에 파일들이 있다고 가정한다.)
    # cd ~
    # mkdir ibatis-test
    # cd ibatis-test
    # cp ~/jars/ibatis-2.3.0.677.jar .
    # cp ~/jars/mysql-connector-java-5.1.6-bin.jar .
  • ~/ibatis-test/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>
      <transactionManager type="JDBC">
        <dataSource type="SIMPLE">
          <property name="JDBC.Driver"        value="com.mysql.jdbc.Driver"/>
          <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost/디비이름"/>
          <property name="JDBC.Username"      value="아이디"/>
          <property name="JDBC.Password"      value="비밀번호"/>
        </dataSource>
      </transactionManager>
      <sqlMap resource="SqlMap.xml" />
    </sqlMapConfig>
  • ~/ibatis-test/SqlMap.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>
        <select id="getAllCodeClass" resultClass="CodeClass">
            SELECT code_class_id as codeClassId,
                   code_class_name as codeClassName
            FROM tb_code_class
        </select>
    </sqlMap>
  • ~/ibatis-test/CodeClass.java
    public class CodeClass {
        private String codeClassId;
        private String codeClassName;
     
        public String getCodeClassId() {
            return codeClassId;
        }
     
        public void setCodeClassId(String codeClassId) {
            this.codeClassId = codeClassId;
        }
     
        public String getCodeClassName() {
            return codeClassName;
        }
     
        public void setCodeClassName(String codeClassName) {
            this.codeClassName = codeClassName;
        }
    }
  • ~/ibatis-test/IBatisTest.java
    import com.ibatis.sqlmap.client.*;
    import com.ibatis.common.resources.Resources;
    import java.io.Reader;
    import java.util.List;
     
    public class IBatisTest {
        public static void main(String[] args) throws Exception {
            String resource = "SqlMapConfig.xml";
            Reader reader = Resources.getResourceAsReader(resource);
            SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
            List list = sqlMap.queryForList("getAllCodeClass");
            System.out.println("Selected " + list.size() + " records.");
            for(int i = 0; i < list.size(); i++) {
                System.out.println(((CodeClass)list.get(i)).getCodeClassId());
                System.out.println(((CodeClass)list.get(i)).getCodeClassName());
                System.out.println();
            }
        }
    }
  • 컴파일
    # javac -classpath ibatis-2.3.0.677.jar:. IBatisTest.java
    # javac CodeClass.java
  • 실행/테스트
    # java -classpath ./mysql-connector-java-5.1.6-bin.jar:ibatis-2.3.0.677.jar:. IBatisTest

댓글 없음:

댓글 쓰기