springboot 动态数据源 切换 动态添加数据源
创建数据源
package com.wxl.config.mybatis;
import com.alibaba.druid.pool.DruidDataSource;
/**
-
动态创建数据源
*/
public class CreateDateSource {public static final String DRIVER_NAME = “com.mysql.cj.jdbc.Driver”;
public static final String DRIVER_URL = “/dateBaseName?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&useAffectedRows=true”;
public static final String USER_NAME = “root”;
public static final String USER_PASSWORD = “”;public static void CreateDateSource(String header) {
}public static void createDateSource(String dateBaseName){
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setUrl(“jdbc:mysql://***********/”+dateBaseName+"?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&useAffectedRows=true");
druidDataSource.setUsername(“root”);
druidDataSource.setPassword("*******.");
DynamicDataSource.dataSourcesMap.put(dateBaseName, druidDataSource);
DynamicDataSource.setDataSource(dateBaseName);
}
}
#切换数据源@Override
public void createDateBase(SysTenant sysTenant) throws Exception {
this.save(sysTenant);
//创建数据库
sysTenantMapper.createDateBase(sysTenant.getDataBaseName());
//切换数据源
CreateDateSource.createDateSource(sysTenant.getDataBaseName());
// sysTenantMapper.createSurface();
//初始化数据库表数据
this.run(sysTenant);
//切换默认数据源
DynamicDataSource.clear();
}