zoukankan      html  css  js  c++  java
  • Mybatis 同一个Mapper支持不同的数据源

    单数据源配置方式

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    	<property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>
    
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    	<property name="dataSource" ref="dataSource" />
    	<property name="mapperLocations" value="classpath:com/mapper/*.xml" />
    </bean>
    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
    	<property name="basePackage" value="com.mapper" /> 
    	<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>

    多数据源配置方式_1

    <bean id="dataSource_1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    	<property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>
    
    <bean id="dataSource_2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    	<property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>
    
    <bean id="sqlSessionFactory_1" class="org.mybatis.spring.SqlSessionFactoryBean">
    	<property name="dataSource" ref="dataSource_1" />
    	<property name="mapperLocations" value="classpath:com/mapper/*.xml" />
    </bean>
    
    <bean id="sqlSessionFactory_2" class="org.mybatis.spring.SqlSessionFactoryBean">
    	<property name="dataSource" ref="dataSource_2" />
    	<property name="mapperLocations" value="classpath:com/mapper/*.xml" />
    </bean>
    
    <bean id="multipleSqlSessionTemplate" class="com.*.*.MultipleSqlSessionTemplate">
    	<constructor-arg index="0" ref="masterSqlSessionFactory" />
    	<property name="targetSqlSessionFactorys">
    		<map>  
    			<entry value-ref="sqlSessionFactory_1" key="ssf_1"/>  
    			<entry value-ref="sqlSessionFactory_2" key="ssf_2"/>  
    		</map>  
    	</property>
    </bean>
    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
    	<property name="basePackage" value="com.mapper" /> 
    	<property name="sqlSessionTemplateBeanName" value="multipleSqlSessionTemplate" />
    </bean>

    参考:https://www.cnblogs.com/FlyHeLanMan/p/6744171.html

    多数据源配置方式_2

    <bean id="dataSource_1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    	<property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>
    
    <bean id="dataSource_2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    	<property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>
    
    <bean id="multipleDataSource" class="com.*.*.MultipleDataSource">
    	<property name="defaultTargetDataSource" ref="dataSource_1" />
    	<property name="targetDataSources">
    		<map>
    			<entry key="ds_1" value-ref="dataSource_1" />
    			<entry key="ds_2" value-ref="dataSource_2" />
    		</map>
    	</property>
    </bean>
    
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    	<property name="dataSource" ref="multipleDataSource" />
    	<property name="mapperLocations" value="classpath:com/mapper/*.xml" />
    </bean>
    
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" >
    	<property name="basePackage" value="com.mapper" /> 
    	<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>
    

    参考:https://www.cnblogs.com/digdeep/p/4512368.html 

  • 相关阅读:
    Mysql 高可用方案讨论
    python 自动化之路 day 20 Django进阶/BBS项目【一】
    python 自动化之路 day 18 前端内容回顾、补充/Django安装、创建
    python 自动化之路 day 19 Django基础[二]
    Mysql配置文件读取顺序
    Mysql中查看每个IP的连接数
    循环杀死Mysql sleep进程脚本
    JS设计模式——5.单体模式(用了这么久,竟全然不知!)
    JS设计模式——4.继承(示例)
    JS设计模式——4.继承(概念)
  • 原文地址:https://www.cnblogs.com/BINGJJFLY/p/10906782.html
Copyright © 2011-2022 走看看