u
This commit is contained in:
1 parent
d81386c22b
commit
1fa1ded666
2 files changed
+16
-2
No files matched your search
+16
-1
@@ -5,6 +5,8 @@ import com.alibaba.druid.filter.Filter;
|
||||
import com.alibaba.druid.pool.DruidDataSource;
|
||||
import com.alibaba.druid.wall.WallConfig;
|
||||
import com.alibaba.druid.wall.WallFilter;
|
||||
import com.zaxxer.hikari.HikariConfig;
|
||||
import com.zaxxer.hikari.HikariDataSource;
|
||||
import org.springframework.core.io.Resource;
|
||||
import org.springframework.core.io.ResourceLoader;
|
||||
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
|
||||
@@ -81,7 +83,9 @@ public class DataSourceManager extends AbstractRoutingDataSource {
|
||||
DriverManager.getConnection(newConfig.getUrl(), newConfig.getUsername(), newConfig.getPassword()).close();
|
||||
|
||||
// 创建并初始化新的 DruidDataSource 实例
|
||||
DruidDataSource newDS = buildDruidDataSource(newConfig);
|
||||
// DruidDataSource newDS = buildDruidDataSource(newConfig);
|
||||
// 创建并初始化新的 HikariDataSource 实例
|
||||
HikariDataSource newDS = buildHikariDataSource(newConfig);
|
||||
|
||||
// 放入数据源映射中,替换旧数据源(或新增)
|
||||
targetDataSourceMap.put(key, newDS);
|
||||
@@ -124,6 +128,17 @@ public class DataSourceManager extends AbstractRoutingDataSource {
|
||||
}
|
||||
}
|
||||
|
||||
private HikariDataSource buildHikariDataSource(DataSourceConfig.DbConfig config){
|
||||
HikariConfig hikariConfig = new HikariConfig();
|
||||
hikariConfig.setDriverClassName(config.getDriverClassName());
|
||||
hikariConfig.setJdbcUrl(config.getUrl());
|
||||
hikariConfig.setUsername(config.getUsername());
|
||||
hikariConfig.setPassword(config.getPassword());
|
||||
hikariConfig.setConnectionTestQuery("SELECT 1"); // SQL Server 可执行语句
|
||||
|
||||
return new HikariDataSource(hikariConfig);
|
||||
}
|
||||
|
||||
private DruidDataSource buildDruidDataSource(DataSourceConfig.DbConfig config) throws Exception {
|
||||
DruidDataSource ds = getDefaultDruidDataSource();
|
||||
|
||||
|
||||
-1
@@ -40,7 +40,6 @@ public class TestController {
|
||||
String sql = "SELECT * FROM sys_admin";
|
||||
// 执行查询,返回List<Map>,每个Map代表一行记录,列名-值对
|
||||
List<Map<String, Object>> result = jdbcTemplate.queryForList(sql);
|
||||
|
||||
// 查询完后可以清理上下文,防止影响后续操作
|
||||
DataSourceContextHolder.clearDataSourceKey();
|
||||
|
||||
|
||||
Reference in new issue
Block a user