This commit is contained in:
oneao committed 2025-06-16 17:26:32 +08:00
1 parent d81386c22b
commit 1fa1ded666
2 files changed
+16 -2

No files matched your search

@@ -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();
@@ -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();