jar包:
- mybatis-plus-boot-starter
- mysql-connector-java
- druid-spring-boot-starter
- dynamic-datasource-spring-boot-starter
yml配置文件:
server:
port: 8080
spring:
datasource:
dynamic:
primary: db1 # 配置默认数据库
datasource:
db1: # 数据源1配置
url: jdbc:mysql://localhost:3306/his?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=GMT%2B8
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
db2: # 数据源2配置
url: jdbc:mysql://localhost:3306/water?characterEncoding=utf8&useUnicode=true&useSSL=false&serverTimezone=GMT%2B8
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
druid:
initial-size: 1
max-active: 20
min-idle: 1
max-wait: 6000
autoconfigure:
exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 去除druid配置
缺了两个实体类,自己建一下!
mapper接口:
@Repository
@DS("db1") //用的数据源1
public interface SysUserMapper extends BaseMapper<SysUser> {
@Select("select * from sys_user")
List<SysUser> selectAllUser();
}
@Repository
@DS("db2") //用的数据源2
public interface CustomerMapper extends BaseMapper<Customer> {
@Select("select * from customer")
List<Customer> selectAllCustomer();
}
SpringBoot启动类加包扫描:
@SpringBootApplication()
@MapperScan("com.ssy.mapper")
public class DataSourceStudyApplication {
public static void main(String[] args) {
SpringApplication.run(DataSourceStudyApplication.class, args);
}
}
测试类,数据正常查询出来了
@Test
void getDb1AllUser() {
List<SysUser> userList = this.userMapper.selectAllUser();
userList.forEach(System.out::println);
}
@Test
void getDb2AllCustomer() {
List<Customer> customers = this.customerMapper.selectAllCustomer();
customers.forEach(System.out::println);
}