<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ``` /** * @author 張躍帥 * @Description: 數據源操作-工具類 * @date 2020/08/12 */ public class DatasourceUtil { /** * 通用的數據源 */ private static final DataSource commonDb = SpringUtil.getBean(DataSource.class); /** * 主數據源-客戶端 */ private static final MasterDbClient masterDbClient = SpringUtil.getBean(MasterDbClient.class); /** * 獲取-當前使用中-數據源 */ public static DataSource getCurrDb() { // 動態路由數據源 DynamicRoutingDataSource commDb = (DynamicRoutingDataSource) commonDb; // 獲取數據源 return commDb.determineDataSource(); } /** * 獲取-當前使用中-數據源名稱 */ public static String getCurrDbName() { // 獲取當前線程數據源名稱 return DynamicDataSourceContextHolder.peek(); } /** * 切換-主數據源 */ public static void changeMasterDb() { /** * 強制清空本地線程 * 備注:當強制清空本地線程后,會自動使用默認數據源,默認數據源就是主庫 */ DynamicDataSourceContextHolder.clear(); } /** * 切換-指定數據源 */ public static void changeDb(String dbName) { // 判斷 if (StrUtil.isNotBlank(dbName)) { // 切換-目標數據源 DynamicDataSourceContextHolder.push(dbName); } } /** * 獲取-主數據源名稱 */ public static String getMasterDbName() { // 獲取主數據源URL String masterDbUrl = masterDbClient.getUrl(); // 變量-數據源名稱 String dbName = null; // 判斷 if (StrUtil.isNotBlank(masterDbUrl)) { // 判斷-數據源類型 if (masterDbUrl.contains(DbTypeEnum.MYSQL.getCode())) { // 定義正則表達式 Pattern pattern = Pattern.compile("jdbc:(?<db>\\w+):.*((//)|@)(?<host>.+):(?<port>\\d+)(/|(;DatabaseName=)|:)(?<dbName>\\w+)\\??.*"); // 匹配 Matcher matcher = pattern.matcher(masterDbUrl); // 判斷 if (matcher.find()) { // 獲取-數據源名稱 dbName = matcher.group("dbName"); } } } // 返回 return dbName; } /** * 獲取-指定的數據源 */ public static DataSource getDbByDbName(String dbName) { // 判斷 if (StrUtil.isNotBlank(dbName)) { // 動態路由數據源 DynamicRoutingDataSource commDb = (DynamicRoutingDataSource) commonDb; // 返回-數據源 return commDb.getDataSource(dbName); } // 返回 return null; } /** * 獲取-所有的數據源名稱 */ public static List<String> getAllDbName() { // 變量創建ArrayList List<String> dbNameList = CollectionUtil.newArrayList(); // 動態路由數據源 DynamicRoutingDataSource commDb = (DynamicRoutingDataSource) commonDb; // 獲取Bean中所有數據源 Set<String> dbNameArray = commDb.getDataSources().keySet(); // 遍歷 for (String dbName : dbNameArray) { // 獲取Bean中數據源名稱 String beanDbName = dbName.toString(); // 添加到List dbNameList.add(beanDbName); } // 返回 return dbNameList; } }
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看