mybatis connects multiple data sources success stories

1.db.properties configuration file settings


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 configuration file settings


<!-- Read the contents of the db.properties file-->
<util:properties id="jdbc" location="classpath:conf/db.properties"/>

<!-- Configure 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>

<!-- Configure 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>

<!-- Define 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>

<!-- Define 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>

Note: When defining two MapperScannerConfigurers, make sure that the two mapping dao interfaces cannot be in the same package. Otherwise, the exception that the second dao interface method cannot be found will occur.
<!-- Define MapperScannerConfigurer 1 -->
<bean id="f" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="f_ssf"></property>
<property name="basePackage" value="**"></property>
</bean>

<!-- Define 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 configuration file settings

data source 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>


data source 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>


Note: with ** needs to be modified by yourself

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325467612&siteId=291194637