作者: | 来源:互联网 | 2023-08-15 19:24
本文主要讲解基于MybatisPlus开源框架组件Dynamic动态数据源切换1、pom配置文件(这里仅展示动态数据源切换的核心依赖,具体jar包版本根据你的项目实际情况确定)
本文主要讲解基于MybatisPlus开源框架组件Dynamic动态数据源切换
1、pom配置文件(这里仅展示动态数据源切换的核心依赖,具体jar包版本根据你的项目实际情况确定)
com.baomidou
dynamic-datasource-spring-boot-starter
3.3.2
mysql
mysql-connector-java
com.alibaba
druid-spring-boot-starter
com.baomidou
mybatis-plus-boot-starter
com.baomidou
mybatis-plus-generator
com.oracle.database.jdbc
ojdbc8
12.2.0.1
2、yaml文件配置
spring:
autoconfigure:
#自动化配置 例外处理
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
type: com.alibaba.druid.pool.DruidDataSource
dynamic:
primary: mysql #默认数据源
datasource:
mysql:
url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&autoRecOnnect=true&useSSL=false&serverTimezOne=GMT%2B8
username: root
password: 123123
driver-class-name: com.mysql.cj.jdbc.Driver
oracle:
url: jdbc:oracle:thin:@127.0.0.1:1521:xe
username: system
password: 123123
driver-class-name: oracle.jdbc.OracleDriver
druid:
max-active: 50
max-wait: 10000
min-idle: 3
initial-size: 5
mybatis-plus:
mapper-locations: classpath:/mapper/*Mapper.xml
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: cn.example.entity
以上两步完成,启动项目,项目如果启动成功,就代表数据源配置完成了
3、动态数据源切换
3.1、硬编码指定数据源
这种方式是通过插件提供的DS注解来实现的:com.baomidou.dynamic.datasource.annotation.DS,用例如下:
import cn.example.entity.Test;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@DS("oracle")//可以使用在类上
@Repository
public interface TestMapper extends BaseMapper {
List queryDataGroups();
List queryDataTableNames();
List queryDataTypes();
@DS("oracle")//也可以使用在方法上
List