mybatis在資料來源物件管理策略上使用了工廠模式,即乙個型別的物件由特定的工廠類來提供;
<?xml version="1.0" encoding="utf-8"?>
在解析配置檔案資料來源配置流程中
}以上**獲得了 transactionfactory和 datasourcefactory物件,datasource物件由datasourcefactory構建而來
datasourcefactory 的實現子類有3個:unpooleddatasourcefactory,unpooleddatasourcefactory,jndidatasourcefactory;
前兩者有繼承關係,是根據我們的資料庫配置去管理資料庫連線池;後者是在web容器(tomcat,weblogic等)中去獲得資料來源的工廠類,我們主要分析前兩者;
由以上配置例子,資料來源裡配置了池化的資料來源(pooled),那麼我們獲得的 datasourcefactory應該是pooleddatasourcefactory;
以下對pooleddatasourcefactory物件分析,在該物件例項化以後會陸續執行
factory.setproperties(props);和 datasource datasource = dsfactory.getdatasource();方法獲得資料來源,也就是pooleddatasource
對於 pooleddatasource 核心的資料結構有 poolstate,pooledconnection;
poolstate裡面包含了所有池化的資料庫連線,pooledconnection是乙個**物件處理類(poolstate裡所有的連線物件都是由pooledconnection進行了封裝,重寫了原始connectoin的一些方法);
這裡主要對原始connection的close方法進行了攔截
客戶端呼叫close方法,但是實際connection並沒有被關掉,只是被還回了idle集合中
配置mybatis多資料來源
先說一下業務需求,專案中需要兩個資料來源分別連線不同的資料庫,每個dao層只會用到其中乙個資料來源。在dao層想用哪個資料來源直接在注入的時候注入對應的資料來源即可。resource name centersqlsessionfactory public void setsqlsessioinfac...
mybatis多資料來源配置
最近改造老專案需要使用兩個資料庫,故而總結了一下mybatis的雙資料來源配置,學過mybatis的都知道mybatis其實就是封裝了jdbc的框架,使用mybatis繞不開sqlsessionfactory的配置,那配置多個資料來源的核心也是在於配置多個session工廠,用不同的工廠去操作不同的...
Mybatis 中資料來源的配置
mybatis 中資料來源的配置 我們的資料來源配置就是在 sqlmapconfig.xml 檔案中,具體配置如下 mybatis 在初始化時,根據的 type 屬性來建立相應型別的的資料來源 datasource,即 type pooled mybatis 會建立 pooleddatasource...