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格式的文件,因此每一级的层级关系为

36ceece37e37295aa42c6d9217c4e604.png

呈递进关系,逐级空行。

mybatis-config.xml在src/main/resources/mybatis目录下

437f2f8c3bb00a2d387085b62658a457.png

mybatis-config.xml文件的内容为:

<?xml version="1.0" encoding="UTF-8" ?>

二、数据源DataSource配置

新建包

com.ocai.core.datasource

在该包下新建DataSource1Config.java文件,文件上部加上包扫描注解

0e64fb4dafb875faa6a543274830d2f7.png

表示此数据源文件扫描com.ocai.core.mapper.test1包下的DAO文件。

数据源建立如下

f5fe58bd3dcc635b2fb5835f63cce19d.png

spring.datasource.test1为前面application.yml中的数据源配置。

建立sqlSessionFactory,如下,并注入datasource

f04b0b3764bca27526f73db2686b8c82.png

配置事务管理器transactionManager

1a13775183da89bc311508edaf938544.png

配置sqlSessionTemplate如下

d59a275312612e1370449531f28b30b9.png

完整的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. */@Configuration@MapperScan(basePackages = "com.ocai.core.mapper.test1
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐