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.pool.DruidDataSource;
|
||||||
import com.alibaba.druid.wall.WallConfig;
|
import com.alibaba.druid.wall.WallConfig;
|
||||||
import com.alibaba.druid.wall.WallFilter;
|
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.Resource;
|
||||||
import org.springframework.core.io.ResourceLoader;
|
import org.springframework.core.io.ResourceLoader;
|
||||||
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
|
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();
|
DriverManager.getConnection(newConfig.getUrl(), newConfig.getUsername(), newConfig.getPassword()).close();
|
||||||
|
|
||||||
// 创建并初始化新的 DruidDataSource 实例
|
// 创建并初始化新的 DruidDataSource 实例
|
||||||
DruidDataSource newDS = buildDruidDataSource(newConfig);
|
// DruidDataSource newDS = buildDruidDataSource(newConfig);
|
||||||
|
// 创建并初始化新的 HikariDataSource 实例
|
||||||
|
HikariDataSource newDS = buildHikariDataSource(newConfig);
|
||||||
|
|
||||||
// 放入数据源映射中,替换旧数据源(或新增)
|
// 放入数据源映射中,替换旧数据源(或新增)
|
||||||
targetDataSourceMap.put(key, newDS);
|
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 {
|
private DruidDataSource buildDruidDataSource(DataSourceConfig.DbConfig config) throws Exception {
|
||||||
DruidDataSource ds = getDefaultDruidDataSource();
|
DruidDataSource ds = getDefaultDruidDataSource();
|
||||||
|
|
||||||
|
|||||||
-1
@@ -40,7 +40,6 @@ public class TestController {
|
|||||||
String sql = "SELECT * FROM sys_admin";
|
String sql = "SELECT * FROM sys_admin";
|
||||||
// 执行查询,返回List<Map>,每个Map代表一行记录,列名-值对
|
// 执行查询,返回List<Map>,每个Map代表一行记录,列名-值对
|
||||||
List<Map<String, Object>> result = jdbcTemplate.queryForList(sql);
|
List<Map<String, Object>> result = jdbcTemplate.queryForList(sql);
|
||||||
|
|
||||||
// 查询完后可以清理上下文,防止影响后续操作
|
// 查询完后可以清理上下文,防止影响后续操作
|
||||||
DataSourceContextHolder.clearDataSourceKey();
|
DataSourceContextHolder.clearDataSourceKey();
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user