這兩個類的類名可以根據自己的編碼習慣命名,我的命名及實現**如下:
(1)、datasourcecontextholder:用於進行資料來源的獲取、設定及還原
package com.cpms.trasen.common.tk;
import org.slf4j.logger;
import org.slf4j.logge***ctory;
/** * 資料來源設定類
* * @author bigdata-cp
* */
public class datasourcecontextholder
// 獲取現在的資料來源
public static string getdatasourcetype()
// 還原(清除設定的)資料來源
public static void cleardatasourcetype()
}
(2)、dynamicdatasource:需要繼承abstractroutingdatasource抽象類用於實現資料來源的切換
package com.cpms.trasen.common.tk;
import org.slf4j.logger;
import org.slf4j.logge***ctory;
import org.springframework.jdbc.datasource.lookup.abstractroutingdatasource;
public class dynamicdatasource extends abstractroutingdatasource
}
ssm框架自帶的如事物、日誌、別名等配置這裡就不多說了,一搜一大把。這裡主要貼多資料來源相關的配置**。
(1)、資料原始檔properties檔案:我這裡都是sqlserver資料庫,如果有其他型別的資料庫,手動新增驅動、連線方式和使用者密碼就行。
#sqlserverdriver
driverclassname=com.microsoft.sqlserver.jdbc.sqlserverdriver
#datasourcea
datasourceaurl=jdbc:sqlserver://localhost:1433;databasename=trasen_clinicalpathmonitoring
datasourceauname=sa
datasourceapwd=1
#datasourceb
datasourceburl=jdbc:sqlserver:
datasourcebuname=sa
datasourcebpwd=1
(2)、spring-mybatis配置檔案:基本配置和多資料來源配置
<?xml version="1.0" encoding="utf-8"?> $
$$ $ $
$ $
專案需求在使用者登入成功後,根據使用者切換對應的資料來源。博主就是直接寫在用於登入的service實現類的方法中,該方法呼叫了乙個webservice用於驗證使用者的登入資訊,所以執行緒不止乙個。在設定資料來源後的執行緒的生命週期,在切換資料來源之前結束了,進入了另乙個執行緒,所以獲取的資料來源為null導致切換失敗。最後,將設定資料來源的方法轉移到了驗證session過期的aop中,既主線程中,才成功切換資料來源。
呼叫設定資料來源的方法如下:資料來源字串也可設定為類變數,請根據應用場景進行設定。
// "***"為需要切換的資料來源字串,該字串為xml中配置的多資料來源id
datasourcecontextholder.setdatasourcetype("***");
每天積累一點,付出總會得到回報。 Spring MyBatis配置多資料來源
我此處用到的兩個資料庫都是oracle 1.首先修改資料庫的配置檔案,使得其有多個資料庫 2.配置spring的配置檔案 2.1資料庫1的spring配置 2.2資料庫2的spring配置 2.3配置多資料來源 這裡將兩個datasource配置到multipledatasource中,defaul...
Spring Mybatis多資料來源配置
1 在spring的配置檔案裡面,配置多個資料來源,我這裡配置兩個 beanid jobdatasource class com.alibaba.druid.pool.druiddatasource init method init destroy method close beanid xsdat...
spring mybatis多資料來源配置
應開發需求需要,根據專案業務,不同業務下的資料存入不同的資料庫中,且須讀寫分離。目前常用的有兩種方式 第一種 定義多個個資料庫連線,分別是areaddatasource,awritedatasource,breaddatasource,bwritedatasource,creaddatasource...