使用config.xml为mybatis和spring启动应用程序建立多个数据库连接

时间:2018-04-13 05:26:52

标签: java xml spring-boot mybatis mapper

我需要连接到我的config.xml文件中配置的多个数据库

config.xml中

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">

    <configuration>

     <environments default="development">
        <environment id="development">
          <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.ibm.as400.access.AS400JDBCDriver"/>
                <property name="url" value="url"/>
                <property name="username" value="usernmae"/>
                <property name="password" value="password"/>
            </dataSource>
       </environment>
          <environment id="test">
          <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.ibm.as400.access.AS400JDBCDriver"/>
                <property name="url" value="url"/>
                <property name="username" value="usernmae"/>
                <property name="password" value="password"/>
            </dataSource>
       </environment>


     </environments> 

</configuration>

我正在使用mapper接口和mapper.xml进行查询

Mapper界面

 @Mapper
    public interface OrderMapper {
     List<Order> selectAll();
     }

Mapper.xml

<mapper namespace="com.mapper.OrderMapper" >

 <resultMap id="result" type="com.mapper.Order">
    <result property="orderId"  jdbcType="NUMERIC" column="ORD_ORDER_ID"/>  
 </resultMap> 

  <select id="selectAll" resultMap="result">
    SELECT * FROM table
  </select>
</mapper>

Application.properties

mybatis.config-location = classpath:./config.xml
mybatis.mapper-locations=./mapper/*.xml

我可以通过在属性文件中使用spring数据源来处理单个数据库。我无法通过配置文件使其工作。我做错了什么?

1 个答案:

答案 0 :(得分:0)

Spring不知道mybatis中配置的数据源。 Spring需要访问数据源才能创建连接。在spring-boot中,在简单的情况下,这由DataSourceTransactionManager完成,它使用在spring上下文中配置的数据源。

如果您想要更改那些需要您实现自己的PlatformTransactionManager类似于DataSourceTransactionManager但使用由mybatis创建和管理的数据源。这可能是通过访问由Configuration创建的mybatis MybatisAutoConfiguration对象来完成的,如果您使用spring boot(或者您甚至可能需要检查如何创建数据源并将其注入spring上下文中)。这是相当复杂的,你会违背它应该的方式(即在spring上下文中定义数据源)。