当前位置: 首页 > 知识库问答 >
问题:

在mybatis+springs中配置2数据库

彭礼骞
2023-03-14

我有一个用于使用Oracle DB的mybatis+springs的现有设置。我有一组java映射器接口,一组对应的映射器XML(每个都有对其对应的java映射器的引用)。我也需要设置对MSSQL的支持,但发现很难做到这一点。我在com/mycomp/mob/db/mappers/MSSQL中创建了一组单独的XML(特定于MSSQL的查询)。

下面是我的applicationconext.xml的摘录(这里DBDataSource是一个内部类,它读取配置文件以获取所有DB详细信息)。

<bean name="dataSource" class="com.mycomp.mob.core.db.DBDataSource">
    <constructor-arg index="0" name="dbAlias" value="mob" />
    <constructor-arg index="1" name="cfgSection" value="primary" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.mycomp.mob.db.mappers.oracle" />
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="typeAliasesPackage" value="com.mycomp.mob.db.mappers.oracle" />
    <property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
    <constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
<configuration>
    <typeAliases>
        <package name="com.mycomp.mob.db.model" />
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/mycomp/mob/db/mappers/oracle/tenant.xml" />
        <mapper resource="com/mycomp/mob/db/mappers/oracle/functionenty.xml" />
    </mappers>
</configuration>
      ITenantMapper mappper = sqlSessionFactory.openSession().getMapper(ItenantMapper.class)
      Tenant t = mapper.getTenant();

现在,每次只使用一个DB(在DB配置文件中配置为主数据库)。因此如何确保java映射器接口调用了对应于特定DB的XML。还需要知道我是否可以在mssql的映射器xmls中配置相同的java映射器类名?使用的流是正确的还是我需要更改流以支持多个数据库。

共有1个答案

东方文林
2023-03-14

在spring中创建两个datasources和两个SessionFactory,一个用于Oracle,另一个用于MSSQL。

 类似资料:
  • 我试图在我的应用程序中配置2个不同的数据源,因为它是必需的。

  • 我有我的巴蒂斯 xml config 我有依赖关系 我有存储库 但是当我尝试构建priject时,我出错了。 描述: 无法确定数据库类型 NONE 的嵌入式数据库驱动程序类 行动: 如果你想要一个嵌入式数据库,请在类路径上放置一个受支持的数据库。如果要从特定配置文件加载数据库设置,则可能需要激活它(当前没有配置文件处于活动状态)。 我怎么设置SqlMapConfig.xml? 我尝试在行中写入 但

  • 本文向大家介绍springboot + mybatis配置多数据源示例,包括了springboot + mybatis配置多数据源示例的使用技巧和注意事项,需要的朋友参考一下 在实际开发中,我们一个项目可能会用到多个数据库,通常一个数据库对应一个数据源。 代码结构: 简要原理: 1)DatabaseType列出所有的数据源的key---key 2)DatabaseContextHolder是一个线

  • Mybatis 配置文件 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录 mybatis官方中文文档

  • 主要内容:properties标签,settings标签,typeAliases标签,typeHandlers标签,environments标签,mappers标签在《 第一个MyBatis程序》一节中,我们编写了 MyBatis 的配置文件 mybatis-config.xml,在该文件中,您可以配置各种元素。 MyBatis 配置文件的结构如下。 mybatis-config.xml 文件中的元素节点是有一定顺序的,节点位置必须按以上位置排序,否则会编译错误。 下面介绍 XML 配置文件中的

  • 1. 前言 MyBatis 的配置十分重要,它直接左右 MyBatis 的行为。我们可以将 MyBatis 配置分为两大部分,第一部分是 mapper,也就是容纳 SQL 语句的.xml文件,另一部分是 configuration ,也就是前面小节提到的 mybatis-config.xml 文件。 本小节,我们将介绍 configuration 中常见且有用的配置项。 2. 结构 MyBatis