一.概述:
常见的数据源组件都实现了javax.sql.DataSource接口;
MyBatis不但要能集成第三方的数据源组件,自身也提供了数据源的实现;
一般情况下,数据源的初始化过程参数较多,比较复杂;
二.设计模式:
为什么要使用工厂模式
数据源模块类图 :
三.MyBatis源码数据源实现
MyBatis数据源通过工厂模式实现了,非连接池的数据连接,和数据库连接池。
非连接池的数据连接:
MyBatis数据库连接池源码解析
数据结构如下:
使用动态代理封装了真正的数据库连接对象,进行了方法增强:使用前检查连接是否有效,关闭时对连接进行回收;
连接池配置文件配置的数据在这里映射。
用于管理PooledConnection对象状态的组件,通过两个list分别 管理空闲状态的连接资源和活跃状态的连接资源;
算法流程图:
获取连接:
释放连接:
从连接池获取连接
释放连接:
总结:
MyBatis数据源模块使用了工厂模式,分别实现了非数据源连接和数据库连接池。数据库连接池算法十分精简易懂,这对我们后续学习c3p0 ,德鲁伊等其他连接池打下了坚实基础。
原文出处:https://www.cnblogs.com/dw-haung/p/Mybatis.html
點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦