1. 程式人生 > >MyBatis原始碼解析之資料來源(含資料庫連線池簡析)

MyBatis原始碼解析之資料來源(含資料庫連線池簡析)

一.概述:

常見的資料來源元件都實現了javax.sql.DataSource介面;

MyBatis不但要能整合第三方的資料來源元件,自身也提供了資料來源的實現;

一般情況下,資料來源的初始化過程引數較多,比較複雜;

二.設計模式:

為什麼要使用工廠模式

 

 

資料來源模組類圖 :

三.MyBatis原始碼資料來源實現

資料結構如下:

 

 

使用動態代理封裝了真正的資料庫連線物件,進行了方法增強:使用前檢查連線是否有效,關閉時對連線進行回收;

 

連線池配置檔案配置的資料在這裡對映。

用於管理PooledConnection物件狀態的元件,通過兩個list分別 管理空閒狀態的連線資源和活躍狀態的連線資源;

 

演算法流程圖:

獲取連線:

 

釋放連線:

 

從連線池獲取連線

 

 

 

 

 釋放連線: