mybatis多数据源配置

MapperScannerConfigurer以下是正常只有一个数据源,只有一个sqlSessionFactory ,这样写没问题,但是有多个数据源,有2个sqlSessionFactory 的时候这样写就不可以了,需要你使用 sqlSessionFactoryBeanName 或 sqlSessionTemplateBeanName 属性来设置正确的 bean 名 称来使用

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="org.mybatis.spring.sample.mapper" />
</bean>



例如

<!-- 配置dataSource1 -->
	<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="${driver}"/>
		<property name="url" value="${url}"/>
		<property name="username" value="${user}"></property>
		<property name="password" value="${password}"></property>
	</bean>
 
	<!-- 配置sqlSessionFactoryBean1 -->
	<bean id="sqlSessionFactory1" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 引用数据源组件 -->
		<property name="dataSource" ref="dataSource1" />
		<!-- 引用mybatis配置文件 中的配置 -->
		<property name="configLocation" value="classpath:mybatis-config.xml" />
	</bean>
	
	<!-- 配置dataSource2 -->
	<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="${driver}"/>
		<property name="url" value="${url}"/>
		<property name="username" value="${user}"></property>
		<property name="password" value="${password}"></property>
	</bean>
 
	<!-- 配置sqlSessionFactoryBean1 -->
	<bean id="sqlSessionFactory2" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 引用数据源组件 -->
		<property name="dataSource" ref="dataSource2 " />
		<!-- 引用mybatis配置文件 中的配置 -->
		<property name="configLocation" value="classpath:mybatis-config.xml" />
	</bean>
	
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="org.mybatis.spring.sample.mapper1" />
  <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory1" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="org.mybatis.spring.sample.mapper2" />
  <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory2" />
</bean>
上一篇:Mybatis源码分析(一)


下一篇:【MyBatis系列5】MyBatis4大核心对象SqlSessionFactoryBuiler,SqlSessionFactory,SqlSession,Mapper