특별한딸기이야기

iBATIS 간단 예제 본문

딸기 공부방/iBATIS

iBATIS 간단 예제

특별한녀석 2008. 11. 18. 10:16


메인 클래스

import java.io.Reader;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;


public class ibatisTest
{
 public static void main(String[] args)
 {
  SqlMapClient sqlMap = null;
  try
  {
   String resource = "SqlMapConfig.xml";
   Reader reader = Resources.getResourceAsReader(resource);
   sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
   int accountCount = (Integer)sqlMap.queryForObject("getAccountCount");
   System.out.println("count = " + accountCount);
   accountCount = (Integer)sqlMap.queryForObject("getAccountCountWithWhere", "j2ee");
   System.out.println("count = " + accountCount);
  }
  catch(Exception e){}
 }
}
/* 아이바티스를 사용하는 메인 부분이다. jdbc보다 사용이 간단하는 것이 바로 느껴진다. 설정을 위한 것은 try 문의 세 줄정도... -0-;;; */

db.properties

mysql.user=admin
mysql.password=admin
mysql.jdbc=jdbc:mysql://localhost:3306/jgamestore

SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!-- Provides DOCTYPE and DTD for validation -->
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
 <properties resource="db.properties" url=""></properties>
 
 <settings
  lazyLoadingEnabled="true"
  enhancementEnabled="true"
  
 />
 <transactionManager type="JDBC">
  <dataSource type="SIMPLE">
   <property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />
   <property name="JDBC.ConnectionURL" value="${mysql.jdbc}" />
   <property name="JDBC.Username" value="${mysql.user}" />
   <property name="JDBC.Password" value="${mysql.password}" />
  </dataSource>
 </transactionManager>
 <sqlMap resource="SqlMap-test.xml" />
</sqlMapConfig>

<!--드라이버 설정 부분이다. 트랜젝션메니져 부분의 프로퍼티 밸뤼값을 보면 EL처럼 생겼는데 이는 윗 부분의 프로퍼티 리소스 부분에 지정된 값을 받아오는 것이다.-->

SqlMap-test.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 namespace="test">
 <select id="getAccountCount" resultClass="int">
  select count(*) from account;
 </select>
 
 <select id="getAccountCountWithWhere" resultClass="int">
  select count(*) from account where userid=#value#;
 </select>
</sqlMap>

<!--실제 사용할 sql문이 들어있는 파일이다. 눈치가 빠른 사람은 알겠지만 config파일에서 지정할 수 있으며, 한개가 아닌 여러개의 파일을 지정할 수 있다.-->