繁体   English   中英

如何使用MyBatis-Spring在MyBatis中配置2个数据库

[英]How to configure 2 databases in MyBatis using MyBatis-Spring

我试图根据需要在我的应用程序中配置2个不同的数据源。

我在AppContext.xml中的配置如下:

<bean id="dataSourceA" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
     <property name="driverClassName" value="com.ibm.db2.jcc.DB2Driver"/>  
     <property name="url" value="datasourceAURL"/>  
     <property name="username" value="aaaa"/>  
     <property name="password" value="pppp"/>    
</bean>
      <bean id="dataSourceB" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
     <property name="driverClassName" value="com.ibm.db2.jcc.DB2Driver"/>  
     <property name="url" value="datasourceBURL"/>  
     <property name="username" value="bbbb"/>  
     <property name="password" value="cccc"/>    
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
           <property name="basePackage" value="com/ex/myBatis/mappings" />  
      </bean> 

      <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
     <property name="dataSource" ref="dataSourceA" />  
     <property name="typeAliasesPackage" value="com.ex.myBatis.entities"/>  
</bean>
      <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">  
     <constructor-arg index="0" ref="sqlSessionFactory" />  
      </bean>

      <bean id="sqlSessionFactory1" class="org.mybatis.spring.SqlSessionFactoryBean">  
     <property name="dataSource" ref="configDataSource" />  
     <property name="typeAliasesPackage" value="com.ex.myBatis.entities"/>  
      </bean>

     <bean id="sqlSession1" class="org.mybatis.spring.SqlSessionTemplate">  
    <constructor-arg index="0" ref="sqlSessionFactory1" />  
     </bean>

     <bean id="callService" class="com.ex.myBatis.Service.callService">
    <property name="sqlSession" ref="sqlSession1" />
     </bean> 

但是在访问bean时,我得到了下面的异常

org.springframework.beans.factory.BeanCreationException:创建名称为'callService'的bean时出错:自动连接依赖项的注入失败; 嵌套异常是org.springframework.beans.factory.BeanCreationException:无法自动装配方法:public final void org.mybatis.spring.support.SqlSessionDaoSupport.setSqlSessionTemplate(org.mybatis.spring.SqlSessionTemplate); 嵌套的异常是org.springframework.beans.factory.NoUniqueBeanDefinitionException:没有定义类型为[org.mybatis.spring.SqlSessionTemplate]的合格bean:期望的单个匹配bean,但找到了2:sqlSession,sqlSession1

请有人帮助我解决问题。 另外,如果还有其他方法可以配置2个数据源,请也建议我。

您的配置基本上是正确的。 您面临的问题是您使用自动装配来注入callService依赖项之一。

似乎您使用的是SqlSessionDaoSupport并且它的sqlSessionTemplate字段是自动装配的。 定义了两个模板,因此spring无法自动连接依赖项。 您需要手动指定正确的模板。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM