본문 바로가기
Programming/Java

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

by 가우리언 2009. 11. 10.
728x90
반응형

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
    
728x90
반응형