首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用MyBatis在MyBatis中配置2个数据库

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

Stack Overflow用户
提问于 2014-06-11 13:13:30
回答 1查看 2.9K关注 0票数 0

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

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

代码语言:javascript
复制
<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数据资源。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-16 22:21:47

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24163916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档