一.概述: 常見的數據源組件都實現了javax.sql.DataSource介面; MyBatis不但要能集成第三方的數據源組件,自身也提供了數據源的實現; 一般情況下,數據源的初始化過程參數較多,比較複雜; 二.設計模式: 為什麼要使用工廠模式 數據源模塊類圖 : 三.MyBatis源碼數據源實現 ...
一.概述:
常見的數據源組件都實現了javax.sql.DataSource介面;
MyBatis不但要能集成第三方的數據源組件,自身也提供了數據源的實現;
一般情況下,數據源的初始化過程參數較多,比較複雜;
二.設計模式:
為什麼要使用工廠模式
數據源模塊類圖 :
三.MyBatis源碼數據源實現
數據結構如下:
使用動態代理封裝了真正的資料庫連接對象,進行了方法增強:使用前檢查連接是否有效,關閉時對連接進行回收;
連接池配置文件配置的數據在這裡映射。
用於管理PooledConnection對象狀態的組件,通過兩個list分別 管理空閑狀態的連接資源和活躍狀態的連接資源;
演算法流程圖:
獲取連接:
釋放連接:
從連接池獲取連接
釋放連接: