【问题标题】:How to configure 2 databases in MyBatis using MyBatis-Spring如何使用 MyBatis-Spring 在 MyBatis 中配置 2 个数据库
【发布时间】:2014-08-01 13:39:39
【问题描述】:

我正在尝试根据需要在我的应用程序中配置 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:不能 自动装配方法:公共最终无效 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 个数据源,请建议我。

【问题讨论】:

  • 有人可以帮我解决这个问题吗??

标签: spring datasource mybatis


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    • 2017-03-15
    • 1970-01-01
    • 2017-10-04
    • 2015-10-01
    相关资源
    最近更新 更多