SpringBoot2.x + MyBatis + 多数据源

【简介】

在实际开发过程中会遇到多数据源的场景,本文主要介绍怎样实现多数据源。
本文只介绍核心的配置,其他的请道友clone项目自行查看


【本文Demo】

https://github.com/qidasheng2012/springboot2.x_ssm/tree/branch-DataSources


【建表】

创建两个数据库分别为:system和server
在system中创建user表,在server中创建product表
建表sql,在项目中已给到,看下图:
在这里插入图片描述
在这里插入图片描述


【application.yml】

道友可以根据自己的数据库配置进行相应调整

#服务器配置
server:
  port: 80


spring:
  #数据源
  datasource:
    # 系统数据源
    system:
      url: jdbc:mysql://localhost:3306/system?serverTimezone=Asia/Shanghai&characterEncoding=utf8
      username: root
      password: 123456
      configuration:
        maximum-pool-size: 10

    # 业务数据源
    server:
      url: jdbc:mysql://localhost:3306/server?serverTimezone=Asia/Shanghai&characterEncoding=utf8
      username: root
      password: 123456
      configuration:
        maximum-pool-size: 10

# 日志
logging:
  level:
    com.springboot.ssm.mapper: debug # 显示执行sql

【config配置】

这块内容是本文的核心所在,请道友仔细查看

注意事项:

  1. 使用多数据源,其中一个配置类需要添加 @Primary 注解 (有且仅有一个配置类需要添加)
  2. 在配置类中需要配置 dao 层所在的包、 Mapper.xml 所在的路径、别名包路径

原理:

  1. 通过@MapperScan扫描mapper的包路径
  2. 配置不同的DataSource
  3. 根据DataSource生成对应SqlSessionFactory 和DataSourceTransactionManager ,在SqlSessionFactory 中配置mapper.xml的路径和别名包扫描路径,当然还可以配置plugin等等
  4. 根据SqlSessionFactory 生成SqlSessionTemplate
  5. SqlSessionTemplate封装了SqlSession,SqlSession就是mapper的相关操作

【DB1Config】

package com.springboot.ssm.config.db;

import com.zaxxer.hikari.HikariDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值