기본 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
댓글
댓글 쓰기