java mybatis如何使用多数据源,查询不同数据库中的数据
时间: 2024-03-11 08:48:24 浏览: 166
idea springboot mybatis 多数据库使用
使用多数据源时,可以在 MyBatis 的配置文件中配置多个数据源,然后在 Mapper 映射文件中指定使用哪个数据源进行查询。
以下是一个使用多数据源的示例:
1. 在 MyBatis 的配置文件中定义多个数据源
```xml
<environments default="dev">
<environment id="dev">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/db1"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
<environment id="prod">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/db2"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
```
在上述配置文件中,定义了两个数据源,分别对应开发环境和生产环境,使用的数据库名称分别为 db1 和 db2。
2. 在 Mapper 映射文件中指定使用哪个数据源进行查询
```xml
<select id="getUserById" resultType="User" parameterType="int" >
<choose>
<when test="env=='dev'">
select * from db1.user where id = #{id}
</when>
<when test="env=='prod'">
select * from db2.user where id = #{id}
</when>
</choose>
</select>
```
在上述 Mapper 映射文件中,使用了 choose 和 when 标签来判断使用哪个数据源进行查询。其中,env 是一个参数,用于指定环境,当 env 的值为 dev 时,使用 db1 数据源进行查询,当 env 的值为 prod 时,使用 db2 数据源进行查询。
这样就可以使用多数据源查询不同数据库中的数据了。
阅读全文