Spring Boot+MyBatis多数据源解决方案
这篇文档教大家配置Spring Boot、MyBatis整合多数据源的配置方法。
一、数据库连接配置
Spring Boot启动的application.yml配置文件配置数据库的连接配置,代码如如下:
#访问端口server: port: 8480#mybatis配置mybatis: config-location: classpath:mybatis/mybatis-config.xml#mybatis分页插件pagehelper: helperDialect: mysql reasonable: true supportMethodsArguments: true params: count=countSql#jdbc urlspring: main: allow-bean-definition-overriding: true session: store-type: none datasource: test1: jdbc-url: jdbc:mysql://10.10.1.232:3306/zhlc_demo?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true username: zhlc password: zhlc123 driver-class-name: com.mysql.jdbc.Driver test2: jdbc-url: jdbc:mysql://10.10.1.96:31938/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true username: root password: root driver-class-name: com.mysql.jdbc.Driver
其中server.port为项目启动端口号,项目访问根路径为http://localhost:8480。spring.datasource.test1为连接的第一个数据库的数据源(相应的jdbc连接url、MySQL用户名密码)。spring.datasource.test2为连接的第二个数据库的数据源。并加上相应的驱动。
注意:因为使用的是application.yml为yml格式的文件,因此每一级的层级关系为

呈递进关系,逐级空行。
mybatis-config.xml在src/main/resources/mybatis目录下
mybatis-config.xml文件的内容为:
<?xml version="1.0" encoding="UTF-8" ?>
二、数据源DataSource配置
新建包
com.ocai.core.datasource
在该包下新建DataSource1Config.java文件,文件上部加上包扫描注解
表示此数据源文件扫描com.ocai.core.mapper.test1包下的DAO文件。
数据源建立如下
spring.datasource.test1为前面application.yml中的数据源配置。
建立sqlSessionFactory,如下,并注入datasource
配置事务管理器transactionManager
配置sqlSessionTemplate如下
完整的DataSourceConfig文件代码如下:
package com.ocai.core.datasource;import com.github.pagehelper.PageInterceptor;import org.apache.ibatis.plugin.Interceptor;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.SqlSessionTemplate;import org.mybatis.spring.annotation.MapperScan;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.boot.jdbc.DataSourceBuilder;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Primary;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.jdbc.datasource.DataSourceTransactionManager;import javax.sql.DataSource;import java.util.Properties;/** * Created by liyue on 2019/07/12. */@[email protected](basePackages = "com.ocai.core.mapper.test1