iBatisとSpringを組み合わせた使い方


以下は全体の例で、必要な部分を貼り付けることができます.
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>
	<sqlMap resource="com/itmg/crawler/server/dao/masterdb/config/Area.xml"/>
</sqlMapConfig>

Area.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="Area">
  <typeAlias alias="area" type="com.itmg.crawler.server.remote.model.dao.AreaModel"/>
  <select id="getAllArea" resultClass="area">
  <![CDATA[
		select 
		* 
		from t_area
		]]>
  </select>
  <select id="getAllAreaByID" parameterClass="area" resultClass="area">
  	select * from t_area where id=#id#
  </select>
</sqlMap>

Area.java

package com.itmg.crawler.server.dao.masterdb.impl;

import java.util.ArrayList;
import java.util.List;

import com.itmg.crawler.server.dao.masterdb.AreaDAO;
import com.itmg.crawler.server.exception.DAOException;
import com.itmg.crawler.server.remote.model.dao.AreaModel;

public class AreaDAOImpl extends BaseDAO implements AreaDAO {

	public AreaDAOImpl() {
		// TODO Auto-generated constructor stub
	}

	/*
	 *   t_area    
	 * @see com.itmg.crawler.server.dao.masterdb.AreaDAO#getAllArea()
	 */
	public List<AreaModel> getAllArea() throws Exception {
		List<AreaModel> list = new ArrayList<AreaModel>();
		list = getSqlMapClientTemplate().queryForList("getAllArea");
		return list;
	}

	/*
	 *   AreaModel  id  list
	 * @see com.itmg.crawler.server.dao.masterdb.AreaDAO#getAreaBySimple(com.itmg.crawler.server.remote.model.dao.AreaModel)
	 */
	public List<AreaModel> getAreaBySimple(AreaModel areaModel)
			throws Exception {
		List<AreaModel> list = new ArrayList<AreaModel>();
		list = getSqlMapClientTemplate().queryForList("getAllAreaByID",areaModel);
		return list;
	}

}

BaseDAO

package com.itmg.crawler.server.dao.masterdb.impl;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

public class BaseDAO extends SqlMapClientDaoSupport{

	public BaseDAO() {
		// TODO Auto-generated constructor stub
	}

}

Springセクション:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
	"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
	<bean id="dataSource_master" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
		<property name="driverClass" value="com.mysql.jdbc.Driver" />
		<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1/masterdb_server" />
		<property name="user" value="root" />
		<property name="password" value="xuehaipeng" />
		<property name="maxPoolSize" value="20" />
		<property name="minPoolSize" value="5" />
		<property name="initialPoolSize" value="5" />
		<property name="maxIdleTime" value="20" />
	</bean>
	<bean id="transactionManager_master" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource"><ref local="dataSource_master"/></property>
	</bean>
	<bean id="sqlMapClient_master" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
		<property name="dataSource" ref="dataSource_master" />
		<property name="configLocation">
			<value>classpath:/com/itmg/crawler/server/dao/masterdb/config/sqlMapConfigMaster.xml</value>
		</property>
	</bean>
	<!-- MasterDB DAO configure -->
	<bean id="daoTemplateMaster" abstract="true">
		<property name="sqlMapClient" ref="sqlMapClient_master"/>
	</bean>
	<bean id="areaDAO" class="com.itmg.crawler.server.dao.masterdb.impl.AreaDAOImpl" parent="daoTemplateMaster"/>
</beans>