数据源1

<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@//IP地址1:1521/数据库名1" />
<property name="username" value="用户名" />
<property name="password" value="密码" />
</bean>
<bean id="sqlSessionFactory1" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource1" />
<property name="configLocation" value="classpath:myBatis/myBatis-Configuration1.xml" />
</bean>
<bean id="mapper1" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.zxg.dao1" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory1" />
</bean>
<bean id="transactionManager1" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource1" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager1" />

数据源2

<bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@//IP地址2:1521/数据库名2" />
<property name="username" value="用户名" />
<property name="password" value="密码" />
</bean>
<bean id="sqlSessionFactory2" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource2" />
<property name="configLocation" value="classpath:myBatis/myBatis-Configuration2.xml" />
</bean>
<bean id="mapper2" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.zxg.dao2" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory2" />
</bean>
<bean id="transactionManager2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource2" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager2" />

注:xx1Mapper.java  和  xx1Mapper.xml      、 xx2Mapper.java 和 xx2Mapper.xml

上下文中不能出现同名的

结果:操作db1 调用 mapper1 ,操作db2 调用 mapper2

配置多数据源时需注意的单元测试问题:

@ContextConfiguration(locations = { "classpath*:spring/root/private_*.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
@Transactional

如果 @Transactional 不指定具体的,会报异常

java.lang.IllegalStateException: Failed to retrieve PlatformTransactionManager for @Transactional test for test context

需要具体指定一个 TransactionManager

例如:

@Transactional("txManagerAlpha")

Spring MyBatis Oracle 多数据源的更多相关文章

  1. spring+myBatis 配置多数据源,切换数据源

    注:本文来源于  tianzhiwuqis <spring+myBatis 配置多数据源,切换数据源> 一个项目里一般情况下只会使用到一个数据库,但有的需求是要显示其他数据库的内容,像这样 ...

  2. Spring+Mybatis动态切换数据源

    功能需求是公司要做一个大的运营平台: 1.运营平台有自身的数据库,维护用户.角色.菜单.部分以及权限等基本功能. 2.运营平台还需要提供其他不同服务(服务A,服务B)的后台运营,服务A.服务B的数据库 ...

  3. spring+mybatis 配置双数据源

    配置好后,发现网上已经做好的了, 不过,跟我的稍有不同, 我这里再拿出来现个丑: properties 文件自不必说,关键是这里的xml: <?xml version="1.0&quo ...

  4. spring+mybatis+oracle/mysql整合开发需要的jar包详解

    导入spring,mybatis,c3p0,oracle和mybatis提供的与spring整合的插件包   mysql的jar:         mysql-connector-java-5.1.7 ...

  5. spring mybatis 多个数据源配置

    mybatis生成器:http://blog.csdn.net/tolcf/article/details/50835165 通过命令生成:java -jar mybatis-generator-co ...

  6. 如何通过Spring Boot配置动态数据源访问多个数据库

    之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...

  7. (4)Maven快速入门_4在Spring+SpringMVC+MyBatis+Oracle+Maven框架整合运行在Tomcat8中

    利用Maven 创建Spring+SpringMVC+MyBatis+Oracle 项目 分了三个项目  Dao   (jar)   Service (jar)   Controller (web) ...

  8. spring boot + druid + mybatis + atomikos 多数据源配置 并支持分布式事务

    文章目录 一.综述 1.1 项目说明 1.2 项目结构 二.配置多数据源并支持分布式事务 2.1 导入基本依赖 2.2 在yml中配置多数据源信息 2.3 进行多数据源的配置 三.整合结果测试 3.1 ...

  9. Spring Boot + Mybatis 配置多数据源

    Spring Boot + Mybatis 配置多数据源 Mybatis拦截器,字段名大写转小写 package com.sgcc.tysj.s.common.mybatis; import java ...

随机推荐

  1. Django models中关于blank与null

    建立一个简易Model class Person(models.Model): GENDER_CHOICES=( (1,'Male'), (2,'Female'), ) name=models.Cha ...

  2. php变量的实现

    1.php变量的实现 变量名 zval ,变量值 zend_value,php7的变量内存管理的引用计数 在zend_value结构上,变量的操作也都是zend_value实现的. //zend_ty ...

  3. bzoj4542 大数

    Description 小 B 有一个很大的数 S,长度达到了 N 位:这个数可以看成是一个串,它可能有前导 0,例如00009312345.小B还有一个素数P.现在,小 B 提出了 M 个询问,每个 ...

  4. python环境搭建,开发环境

    一.从链接http://www.python.org/downloads/ 下载安装包,注意32位和64位安装包区别. https://www.python.org/downloads/windows ...

  5. PHP分多步骤填写发布信息的简单方法实例代码

    1.php 复制代码 代码如下: <form name=form1 id=form1 method=post action=2.php> 基本信息1:<input type=text ...

  6. 给iOS开发新手送点福利,简述UITextField的属性和用法

    UITextField属性 0.     enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的. ...

  7. [Octave] optimset()

    Create options struct for optimization functions. optimset('parameter', value, ...); %设置所有参数及其值,未设置的 ...

  8. 九、创建Slave节点

    通常情况下,我们的项目会由多个模块或者系统组成,不同模块可能会分别部署在不同的服务器,比如mod1部署在ser1,mod2部署在ser2上: 之前的文档是描述了将jenkins也部署在ser1上,当m ...

  9. lua的注释

    和C语言一样,lua也有单行注释和多行注释之分 单行注释: 采用“--”来对注释后面的字符进行注释,类似于 ISO C90之后的 C语言的注释"//" 多行注释:采用"- ...

  10. LUA ipairs遍历的问题

    t = { 1, 2, 3, nil, 4,} for k, v in ipairs(t) doprint(k, v)end print("------------------------- ...