mybatis-plus 多数据源配置
- 配置
# 多数据源
spring:
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
datasource:
master:
url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
slave_1:
url: jdbc:mysql://localhost:3306/test01?serverTimezone=UTC
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
#......省略
#以上会配置一个默认库master,一个组slave下有两个子库slave_1,slave_2
2.代码实现
package com.example.my_mybatis_plus.service;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.example.my_mybatis_plus.entity.User;
import com.example.my_mybatis_plus.mapper.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserDao userDao;
// 使用mybatis-plus 注解实现动态数据源切换,默认使用配置文件中primary设置的主库
@DS("slave_1")
public void test01(){
User user = new User();
user.setAge(1);
user.setName("name111");
user.setPassword("pws");
user.setTel("TEL");
userDao.insert(user);
}
}
- 代码测试
package com.example.my_mybatis_plus;
import com.example.my_mybatis_plus.service.UserService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Mybatisplus01ApplicationTests {
@Autowired
private UserService userService;
@Test
public void test(){
// 测试动态切换数据源
userService.test01();
}
}