# dynamic-datasource
**Repository Path**: zhszstudy/dynamic-datasource
## Basic Information
- **Project Name**: dynamic-datasource
- **Description**: SpringBoot+Mybatis-Plus实现动态数据源
- **Primary Language**: Java
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-02-23
- **Last Updated**: 2025-05-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# dynamic-datasource
#### 介绍
SpringBoot+Mybatis-Plus实现动态数据源
**详见:**https://blog.csdn.net/zhouDonQuixote/article/details/145816875?spm=1001.2014.3001.5502
#### 使用说明
1. 引入依赖:
```xml
com.zhou
dynamic-datasource-spring-boot-starter
1.0
```
2. 排除自动装配数据源配置:
```java
@SpringBootApplication(exclude = {DruidDataSourceAutoConfigure.class, DataSourceAutoConfiguration.class})
```
3. yml文件配置:
```yml
server:
port: 8348
dynamic:
jdbc:
datasource:
default: master
list: master,slave
master:
url: jdbc:mysql://localhost:3306/datasource_test1?useSSL=false&serverTimezone=UTC
username: root
password: your_password
driver-class-name: com.mysql.jdbc.Driver
type-class-name: com.alibaba.druid.pool.DruidDataSource
pool:
max-active: 10
initial-size: 1
max-wait: 30000
min-idle: 1
time-between-eviction-runs-millis: 30000
min-evictable-idle-time-millis: 150000
validation-query: select 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-open-prepared-statements: 20
filters: stat, wall
testConnectionOnCheckout: false
testConnectionOnCheckin: true
idleConnectionTestPeriod: 3600
slave:
url: jdbc:mysql://localhost:3306/datasource_test2?useSSL=false&serverTimezone=UTC
username: root
password: your_password
driver-class-name: com.mysql.jdbc.Driver
type-class-name: com.alibaba.druid.pool.DruidDataSource
pool:
max-active: 20
initial-size: 1
max-wait: 3000
min-idle: 1
time-between-eviction-runs-millis: 6000
min-evictable-idle-time-millis: 3000
validation-query: select 'x'
test-while-idle: true
test-on-borrow: false
test-on-return: false
pool-prepared-statements: true
max-open-prepared-statements: 20
filters: stat, wall
testConnectionOnCheckout: false
testConnectionOnCheckin: true
idleConnectionTestPeriod: 360
druid:
monitor:
web-stat-filter:
# 是否开启配置
enabled: true
url-pattern: /*
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
stat-view-servlet:
url-pattern: /druid/*
reset-enable: false
# 是否开启配置
enabled: true
login-username: admin
login-password: admin
# mybatis 配置
mybatis:
scanner:
mapperLocations: classpath:mapper/*Mapper.xml
# 实体类别名配置
typeAliasesPackage: com.zhou.model
mapUnderscoreToCamelCase: true
logImpl: org.apache.ibatis.logging.stdout.StdOutImpl
```
4. 方法使用:
```java
@DataSourceType(dataSourceName = "slave")
@Override
public List queryStudentFromSlave() {
return baseMapper.selectList(null);
}
```