springboot MyBatis配置Druid多数据源
项目地址:https://github.com/heng1234/springboot2.x/tree/master/boot_mult_datasource
在实际场景中,会遇到不同用户拥有不同的数据源,这些数据源信息配置在数据库表里面,需要我们根据用户切换成相应的数据源。会介绍如何在SpringBoot + Mybatis中配置多数据源
数据库 mysql:
CREATE TABLE `student` (
`SNO` varchar(3) NOT NULL,
`SNAME` varchar(9) NOT NULL,
`SSEX` char(2) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;数据mysql:
INSERT INTO `txlcn-demo`.`student`(`SNO`, `SNAME`, `SSEX`) VALUES ('001', 'KangKang', 'M');
INSERT INTO `txlcn-demo`.`student`(`SNO`, `SNAME`, `SSEX`) VALUES ('002', 'Mike', 'M');
INSERT INTO `txlcn-demo`.`student`(`SNO`, `SNAME`, `SSEX`) VALUES ('003', 'Jane', 'F');数据库 oracle:
CREATE TABLE "BOOT"."STUDENT"
( "SNO" VARCHAR2(3) NOT NULL ENABLE,
"SNAME" VARCHAR2(9) NOT NULL ENABLE,
"SSEX" CHAR(2) NOT NULL ENABLE,
"DATASOURCE" VARCHAR2(10),
CHECK (SNO IS NOT NULL) ENABLE,
CHECK (SNAME IS NOT NULL) ENABLE,
CHECK (SSEX IS NOT NULL) ENABLE
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "SYSTEM"数据 oracle:
pom文件引入jar
application.yml中配置多数据源
创建两个数据源配置类MysqlDatasourceConfig和OracleDatasourceConfig:
MysqlDatasourceConfig:
OracleDatasourceConfig:
测试
配置完多数据源,接下来分别在com.boot.boot_mult_datasource.mysql.mapper路径和com.boot.boot_mult_datasource.oracle.mapper路径下创建两个mapper接口:
MysqlStudentMapper:
OracleStudentMapper:
接着创建mapper接口对应的实现:
resources下的mysqlmapper创建
MysqlStudentMapper.xml:
resources下的oraclemapper创建
OracleStudentMapper.xml:
项目结构:

访问:http://localhost:7005/student/querystudentsfrommysql

访问:http://localhost:7005/student/querystudentsfromoracle

Last updated
Was this helpful?