Spring+MyBatis多数据源切换

在实际的公司项目中,很可能会遇到一个问题就是,一个Java项目,但是项目中涉及两个数据库,这两个数据库还在不同IP的机子上。

遇到这种情况的时候,我们有两个选择

1、不走spring的aop方式,直接去多做两个dataSource

2、用spring进行管理,灵活地进行数据源切换

现在就来对第2种方式进行笔记:

spring.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns=""
xmlns:xsi="" xmlns:aop=""
xmlns:task="" xmlns:tx=""
xmlns:jdbc="" xmlns:context=""
xsi:schemaLocation="
   
   
   
   
 
    "> 
 
      <!--配置mysql数据库参数 -->
    <context:property-placeholder location="mysql.properties" />
   
    <!--多个数据源配置  -->
    <bean
        destroy-method="close">
        <!-- 连接数据库参数 -->
        <property value="${db1.driver}" />
        <property value="${db1.url}" />
        <property value="${db1.username}" />
        <property value="${db1.password}" />
   
      <!--连接池参数 -->
<property value="10" />
<property value="500" />
<property value="40" />
<property value="10" />
    </bean>
   
    <bean
        destroy-method="close">
        <!-- 连接数据库参数 -->
        <property value="${db2.driver}" />
        <property value="${db2.url}" />
        <property value="${db2.username}" />
        <property value="${db2.password}" />
   
      <!--连接池参数 -->
<property value="10" />
<property value="500" />
<property value="40" />
<property value="10" />
    </bean>
   
    <bean>
        <property>
            <map key-type="java.lang.String">
                <entry key="db1" value-ref="db1" />
                <entry key="db2" value-ref="db2" />
            </map>
        </property>
        <property ref="db2" />
    </bean>
   
    <!-- mybatis配置 -->
      <bean>
<property ref="dataSource" />
<property value="classpath:mybatis/mybatis-config.xml" />
<property value="classpath:mybatis/mapper/*.xml"/>
</bean>
<!--获取sqlSession-->
<bean>
<constructor-arg index="0">
        <ref bean="sqlSessionFactory"/>
        </constructor-arg>
</bean>
<!-- 事务管理器配置,单数据源事务 -->
<bean
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property ref="dataSource" />
</bean>
   
</beans>

------------------------------------------------------------------

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ba7c12c158d6e4937646025af0155f6e.html