mybatis-spring多数据源配置

1.注意事项:在MapperScannerConfigurer里配置的时候,每个数据源的mapper接口应放到不同的包中,下面的例子中用粗体标明,另外,对于mybatis-config.xml配置文件,如果每个数据源配置不同,也最好有多个
2.mapper.xml配置文件可以放到一个目录里,但是为了区分,最好也分开放
3.配置的例子
  <bean id="parentDataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <!--maxActive: 最大连接数量-->
        <property name="maxActive" value="150"/>
        <!--minIdle: 最小空闲连接-->
        <property name="minIdle" value="5"/>
        <!--maxIdle: 最大空闲连接-->
        <property name="maxIdle" value="20"/>
        <!--initialSize: 初始化连接-->
        <property name="initialSize" value="30"/>
        <!-- 连接被泄露时是否打印 -->
        <property name="logAbandoned" value="true"/>
        <!--removeAbandoned: 是否自动回收超时连接-->
        <property name="removeAbandoned" value="true"/>
        <!--removeAbandonedTimeout: 超时时间(以秒数为单位)-->
        <property name="removeAbandonedTimeout" value="10"/>
        <!--maxWait: 超时等待时间以毫秒为单位 1000等于60秒-->
        <property name="maxWait" value="1000"/>
        <!-- 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. -->
        <property name="timeBetweenEvictionRunsMillis" value="10000"/>
        <!--  在每次空闲连接回收器线程(如果有)运行时检查的连接数量 -->
        <property name="numTestsPerEvictionRun" value="10"/>
        <!-- 1000 * 60 * 30  连接在池中保持空闲而不被空闲连接回收器线程-->
        <property name="minEvictableIdleTimeMillis" value="10000"/>
        <property name="validationQuery" value="SELECT 1"/>
    </bean>
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!-- ========================= DBCP数据源 ========================== -->
    <bean id="dataSource" parent="parentDataSource">
        <property name="url" value="${mysql.jdbc.url}"/>
        <property name="username" value="${mysql.jdbc.username}"/>
        <property name="password" value="${mysql.jdbc.password}"/>
    </bean>
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations" value="classpath*:mybatis/mappers/*.xml"/>
        <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
    </bean>
    <!-- 自动Dao装配 -->
    <bean name="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.qunar.fuwu.ticket.config.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
    </bean>
 
    <context:component-scan base-package="com.qunar.fuwu.ticket.config.dao"/>
    <!-- 另一个数据源-->
    <bean id="transactionManager1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource_1"/>
    </bean>
    <bean id="dataSource_1" parent="parentDataSource">
        <property name="url" value="${mysql.jdbc.datasource1.url}"/>
        <property name="username" value="${mysql.jdbc.datasource1.username}"/>
        <property name="password" value="${mysql.jdbc.datasource1.password}"/>
    </bean>
    <bean id="sqlSessionFactory_1" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource_1"/>
        <property name="mapperLocations" value="classpath*:mybatis/mappers/*.xml"/>
        <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
    </bean>
    <bean name="mapperScannerConfigurer_1"
          class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.qunar.fuwu.ticket.config.dao2" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory_1" />
     </bean>
</beans>

最新文章

  1. Oracle数据库11g各版本介绍及功能比较
  2. Oracle ORA-12154: TNS: 无法解析指定的连接标识符”错误
  3. EF架构~为EF DbContext生成的实体添加注释(T5模板应用)
  4. 清空mysql的历史记录
  5. 侧滑SilidingMenu ,ViewPager 和,PagerIndicator 冲突
  6. DisJSet:Find them, Catch them(POJ 1703)
  7. zabbix常用的几个key
  8. SPCOMM 接收数据不完整!该如何解决
  9. 总结Selenium自动化测试方法(六)常见的异常错误处理
  10. Codeforces Round #330 (Div. 1) C. Edo and Magnets 暴力
  11. Esper系列(六)子查询、Exists、In/not in、Any/Some、Join
  12. Android Wear开发 - 数据通讯 - 第四节 : 数据封装(解决不能序列化问题)
  13. map的类型映射
  14. JS控制文本框中的密码显示/隐藏功能
  15. poj1269
  16. LeetCode(45)-Bulls and Cows
  17. ubuntu 14.04 重装机 安装笔记 无线网卡+cuda+nvidia
  18. 控制台 console.write 中文为问号
  19. 自动化运维Ansible安装篇
  20. 【Linux常见问题】SecureCRT 终端连接密钥交换失败错误

热门文章

  1. 【网络】IP地址,子网掩码,网段表示法,默认网关,DNS服务器详解
  2. Framework7-Vue搭建项目
  3. NXOpenC#_Training_1(cn)【转载】
  4. 永久修改 putty字体大小
  5. 去除vim ^M符号
  6. HTTPS客户端的java实现
  7. neo4j 基本概念和Cypher语句总结
  8. websocket接口测试
  9. 终于搭好了WinCE上MFC的SDK环境
  10. Web介绍