1、产生的背景因素
刚来新公司梳理项目的时候,发现架构里面有多数据源的配置,虽然是多个库,但是在同一个账号里面管理,那么就完全没必要去做多数据源,去占用资源,用单个数据源多个shema切换完全解决问题,并且还能节省资源的开销。
2、schema-starter组件的使用(组件代码)
该组件是基于springboot和mybatis开发的,那么适用范围是(mybatis、ibatis、mybatis-plus)
<dependency>
<groupId>org.volicy.mysql.schema</groupId>
<artifactId>mysql-schema-spring-boot-starter</artifactId>
<version>1.1</version>
</dependency>
将上面的源码地址克隆到自己本地电脑,maven install 安装到本地仓库,将上述maven配置内容贴到你的pom文件里
接着在你的springboot项目application.properties文件里配置如下:
mysql.schema.mapping.(mybatis中mapper.xml的namespace中标识)= 库名
比如:我有两个xml文件,
dockerMapper.xml (namespace = ‘xx.xx.xx.doctor.xx’)? - doctor数据在 doctor库里
hospitalMapper.xml(namespace = ‘xx.xx.xx.hospital.xx’) - hospital数据在hospital库里,那么在配置文件里正确配置如下:
mysql.schema.mapping.doctor=DOCTOR
mysql.schema.mapping.hospital=HOSPITAL
访问之后,会在原有的sql上自动加上shema,比如原有sql如下
select * from t_doctor
select * from d_hospital
?组件会自动加上
select * from doctor.t_doctor
select * from hospital.d_hospital
|