一文让你搞懂如何基于SpringBoot+Mybatis-Plus 实现多数据源|同事看了直呼内行

基于SpringBoot+Mybatis-Plus 实现多数据源

项目背景

​ 公司新开的项目,需要连接业务库,业务库是集群部署的,整体结构,一个集群,对应多个分区,每个分区保存多个店铺数据,也有独立部署的店铺,分区就是数据库连接实例

大概思路

1.一集群都有一个公库,先连接公库地址,查询当前集群下面的所有分区数据库连接地址

2.拿到分区的数据连接地址之后,创建分区数据库连接

3.使用SpringBoot多数据源配置,动态切换数据源

上代码

大概思路,代码方面不方便写出来,A集群,先看原来数据库设计,公库下主要有个cm_db(数据库表)表维护这当前集群下的所有分区连接信息,主要字段有db_id(数据库id),db_host(服务器地址,主从用","隔开),db_user(用户名),db_pwd(密码)和cm_seller(商家表)主要字段seller_id(卖家id),shop_id(店铺id),db_id(数据库id等; 即: master数据库中的m_datasource表存储当前集群下的所有数据库链接信息 切换不同的数据源展示不同的数据库信息;

配置文件 application.properties
#配置多数据源
spring.datasource.druid.master.driverClassName=com.mysql.cj.jdbc.Driver
# 使用hikari连接池时 jdbc-url
spring.datasource.druid.master.jdbc-url=jdbc:mysql://192.168.253.100:3306/wsblog
spring.datasource.druid.master.username=root
spring.datasource.druid.master.password=admin
# salve
spring.datasource.druid.slave.driverClassName=com.mysql.cj.jdbc.Driver
# 使用druid连接池时 url
spring.datasource.druid.slave.url=jdbc:mysql://192.168.253.100:3306/shpocart
spring.datasource.druid.slave.username=root
spring.datasource.druid.slave.password=admin
配置类

注意: 在使用hikari作为连接池时,如果配置多数据源需要将url修改为jdbc-url,使用druid作为连接池则不需要修改;否则会出现jdbcUrl is required with driverClassName错误;

package com.wanshen.base.config;


import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import com.zaxxer.hikari.HikariDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万神.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值