mybatis连接多个数据源成功案例

1.db.properties配置文件设置


driver:com.mysql.jdbc.Driver
f_url:jdbc:mysql://**:3306/**?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
s_url:jdbc:mysql://**:3306/**?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
user:**
pwd:**



2.mybatis配置文件设置


<!-- 读取db.properties文件的内容 -->
<util:properties id="jdbc" location="classpath:conf/db.properties"/>

<!-- 配置DataSource 1-->
<bean id="f_dbcp" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"value="#{jdbc.driver}"/>
<property name="url"value="#{jdbc.f_url}"/>
<property name="username"value="#{jdbc.user}"/>
<property name="password"value="#{jdbc.pwd}"/>
</bean>

<!-- 配置DataSource 2-->
<bean id="s_dbcp" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"value="#{jdbc.driver}"/>
<property name="url"value="#{jdbc.s_url}"/>
<property name="username"value="#{jdbc.user}"/>
<property name="password"value="#{jdbc.pwd}"/>
</bean>

<!-- 定义SqlSessionFactory 1-->
<bean id="f_ssf" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="f_dbcp"></property>
<property name="mapperLocations" value="classpath:mapper/UserMapper.xml"></property>
</bean>

<!-- 定义SqlSessionFactory 2-->
<bean id="s_ssf" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="s_dbcp"></property>
<property name="mapperLocations" value="classpath:mapper/ReceiptMapper.xml"></property>
</bean>

注:定义2个MapperScannerConfigurer 时要保证两个映射dao接口不能处于同一个包下。不然会发生找不到第二个dao接口方法异常
<!-- 定义MapperScannerConfigurer 1 -->
<bean id="f" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="f_ssf"></property>
<property name="basePackage" value="**"></property>
</bean>

<!-- 定义MapperScannerConfigurer 2 -->
<bean id="s" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="s_ssf"></property>
<property name="basePackage" value="**"></property>
</bean>


3.mapper配置文件设置

数据源1

<?xml version="1.0" encoding="UTF-8"?>
< !DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"     
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
< mapper namespace="接口映射位置">

<insert id="saveEnt" parameterType="**">
insert into
trans_receive
(
**
)
values
(
**
)
</insert>

< /mapper>


数据源2

<?xml version="1.0" encoding="UTF-8" ?> 
< !DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"     
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
< mapper namespace="接口映射位置">

<select id="findById" parameterType="string" resultType="**">
select * from
**
where
**
</select>


< /mapper>


注:带**需要自行修改

猜你喜欢

转载自blog.csdn.net/bwh0520/article/details/80041774
今日推荐