我需要连接到我的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数据源来处理单个数据库。我无法通过配置文件使其工作。我做错了什么?
答案 0 :(得分:0)
Spring不知道mybatis中配置的数据源。 Spring需要访问数据源才能创建连接。在spring-boot中,在简单的情况下,这由DataSourceTransactionManager完成,它使用在spring上下文中配置的数据源。
如果您想要更改那些需要您实现自己的PlatformTransactionManager类似于DataSourceTransactionManager
但使用由mybatis创建和管理的数据源。这可能是通过访问由Configuration
创建的mybatis MybatisAutoConfiguration
对象来完成的,如果您使用spring boot(或者您甚至可能需要检查如何创建数据源并将其注入spring上下文中)。这是相当复杂的,你会违背它应该的方式(即在spring上下文中定义数据源)。