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
댓글 없음:
댓글 쓰기