Multiple data source configuration: Spring + ibatis

Spring + ibatis, Multiple data source configuration:


suit for : spring3.2.4RELEASE / ibatis2.3.4.726


<1>
applicationContext.xml
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>classpath:sqlMapConfig.xml</value>
</property>
<property name="dataSource">
<ref bean= "dataSource1/dataSource2" />   <!-- this is sqlMapClient default datasource, when other dao have not config dataSource, will use this one -->
</property>
</bean>
<bean id="AclassDao" class="com.company.project......dao.impl.AclassDaoImpl">
<property name="dataSource">
<ref bean="dataSource1" />
</property>
<property name="sqlMapClient">
<ref bean="sqlMapClient" />
</property>
</bean>
<bean id="BclassDao" class="com.company.project......dao.impl.BclassDaoImpl">
<property name="dataSource">
<ref bean="dataSource2" />
</property>
<property name="sqlMapClient">
<ref bean="sqlMapClient" />
</property>
</bean>




<2>
AclassDaoImpl class :
(1)extends SqlMapClientDaoSupport
(2)
@Autowired(required = true)
@Qualifier("sqlMapClient")
public void setSqlMapClientWorkaround(SqlMapClient sqlMapClient) {
this.setSqlMapClient(sqlMapClient);
}


BclassDaoImpl class :
config same to AclassDaoImpl
<!-- can use a baseDaoSupport to extends SqlMapClientDaoSupport and override method setSqlMapClientWorkaround, other class extends the baseDaoSupport. -->




<3>
sqlMapConfig.xml
<!DOCTYPE sqlMapConfig      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings lazyLoadingEnabled="true" useStatementNamespaces="true" />
<sqlMap resource="sqlMapConfig_subConfig1.xml"/>
<sqlMap resource="sqlMapConfig_subConfig2.xml"/>
</sqlMapConfig>




<4>
sqlMapConfig_subConfig1.xml
<!-- can have no namespace -->
<?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="selectMappingConfig" resultClass="java.util.HashMap" >
        WITH t1 AS
          (SELECT SUBSTR((ORAINST), 1, LENGTH(TO_CHAR(ORAINST)) - 2) AS ORAINST
          FROM AUTOSYS.REFRESH_STATUS
          )
        SELECT DISTINCT ORAINST FROM t1
    </select>
    <select id="mappingName" parameterClass="java.lang.String" resultClass="java.util.HashMap">
        $sql$
    </select> 
</sqlMap>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值