mybatis_plus配置多数据源官方文档
1. 引入依赖dynamic-datasource-spring-boot-starter:
写这片博客时最新依赖的最新版本是3.5.1
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
2.配置文件
server:
port: 8890
spring:
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure #因为Spring Boot 框架会自动配置数据源,自动从yml中读取数据源信息,因此我们在配置自定义的数据源的时候,需要exclude = DataSourceAutoConfiguration.class来禁掉数据源的自动配置
datasource:
dynamic:
primary: mysql #设置默认的数据源或者数据源组,默认值即为mysql
datasource:
mysql:
driver-class-name: com.mysql.jdbc.Driver
url: ***
username: ***
password: ***
postgresql:
url: ***
username: **
password: **
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
global-config:
db-config:
logic-delete-value: 1 # 逻辑已删除值(默认为 Y)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 N)
mapper-locations: classpath:mapper/*.xml
3.使用@DS切换数据源
注解 | 结果 |
---|---|
没有@DS | 默认数据源 |
有@DS(“mysql”) | 以mysql为名也可以为具体某个库的名称 |
@Service
@DS("mysql")
public class UserServiceImpl implements UserService {
@Autowired
private JdbcTemplate jdbcTemplate;
public List selectAll() {
return jdbcTemplate.queryForList("select * from user");
}
@Override
@DS("mysql")
public List selectByCondition() {
return jdbcTemplate.queryForList("select * from user where age >10");
}
}