pom 引入依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>${dynamic-datasource-spring-boot-starter.version}</version>
</dependency>
application.yml
spring:
datasource:
dynamic:
primary: master #设置默认的数据源或者数据源组,默认值即为master
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
datasource:
master:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/ry?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
slave_1:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/fz_sqjw?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
slave_2:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/qz_sqjw?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
#......省略
#以上会配置一个默认库master,一个组slave下有两个子库slave_1,slave_2
TestOneServiceImpl.java
package com.demo.frame.test.service;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.demo.frame.test.dao.TestOneMapper;
import com.demo.frame.test.entity.TestOne;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* desc
*
* @author lw007
* @date 2021/12/21
*/
@Service
@DS("slave")
public class TestOneServiceImpl extends ServiceImpl<TestOneMapper,TestOne> {
@Autowired
private TestOneMapper testOneMapper;
//查询全部
public List<TestOne> queryAll() {
return testOneMapper.selectList(null);
}
public Page<TestOne> list2(Page<TestOne> page){
page = baseMapper.selectPage(page,null);
return page;
}
@DS("slave_1")
public Page<TestOne> list3(Page<TestOne> page){
page = baseMapper.selectPage(page,null);
return page;
}
@DS("slave_2")
public Page<TestOne> list4(Page<TestOne> page){
page = baseMapper.selectPage(page,null);
return page;
}
}