From eca1c2ce8506dfd5ad8f94235382b666ea831dfd Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期六, 08 二月 2025 17:58:19 +0800
Subject: [PATCH] 动态切换数据库实现

---
 ltkj-hosp/src/main/java/com/ltkj/db/HospDynamicDataSource.java |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/ltkj-hosp/src/main/java/com/ltkj/db/HospDynamicDataSource.java b/ltkj-hosp/src/main/java/com/ltkj/db/HospDynamicDataSource.java
index 06267f4..f615185 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/db/HospDynamicDataSource.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/db/HospDynamicDataSource.java
@@ -1,24 +1,30 @@
 package com.ltkj.db;
 
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
 import javax.sql.DataSource;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
+@Slf4j
 public class HospDynamicDataSource extends AbstractRoutingDataSource {
 
     private final Map<Object, Object> targetDataSources = new ConcurrentHashMap<>(); // 瀛樺偍鎵�鏈夋暟鎹簮
 
     @Override
     protected Object determineCurrentLookupKey() {
-        return DataSourceContextHolder.getDataSourceKey(); // 鏍规嵁涓婁笅鏂囪幏鍙栧綋鍓嶆暟鎹簮鐨勯敭
+        String key = DataSourceContextHolder.getDataSourceKey();
+        log.info("褰撳墠鏁版嵁婧� ->{}",key);
+        return key; // 鏍规嵁涓婁笅鏂囪幏鍙栧綋鍓嶆暟鎹簮鐨勯敭
     }
 
     // 娣诲姞鐩爣鏁版嵁婧�
     public void addTargetDataSource(String key, DataSource dataSource) {
-        targetDataSources.put(key, dataSource);
-        super.setTargetDataSources(new ConcurrentHashMap<>(targetDataSources)); // 鏇存柊鐩爣鏁版嵁婧�
-        super.afterPropertiesSet(); // 閲嶆柊鍒濆鍖栨暟鎹簮
+        if (dataSource != null) {
+            targetDataSources.put(key, dataSource);
+            super.setTargetDataSources(new ConcurrentHashMap<>(targetDataSources)); // 鏇存柊鐩爣鏁版嵁婧�
+            super.afterPropertiesSet(); // 閲嶆柊鍒濆鍖栨暟鎹簮
+        }
     }
 
     // 鍏佽澶栭儴璁块棶鎵�鏈夌洰鏍囨暟鎹簮

--
Gitblit v1.8.0