一.概述:
常见的数据源组件都实现了javax.sql.DataSource接口;
MyBatis不但要能集成第三方的数据源组件,自身也提供了数据源的实现;
一般情况下,数据源的初始化过程参数较多,比较复杂;
二.设计模式:
为什么要使用工厂模式
数据源模块类图 :
三.MyBatis源码数据源实现
MyBatis数据源通过工厂模式实现了,非连接池的数据连接,和数据库连接池。
非连接池的数据连接:
MyBatis数据库连接池源码解析
数据结构如下:
使用动态代理封装了真正的数据库连接对象,进行了方法增强:使用前检查连接是否有效,关闭时对连接进行回收;
连接池配置文件配置的数据在这里映射。
用于管理PooledConnection对象状态的组件,通过两个list分别 管理空闲状态的连接资源和活跃状态的连接资源;
算法流程图:
获取连接:
释放连接:
从连接池获取连接
释放连接:
总结:
MyBatis数据源模块使用了工厂模式,分别实现了非数据源连接和数据库连接池。数据库连接池算法十分精简易懂,这对我们后续学习c3p0 ,德鲁伊等其他连接池打下了坚实基础。
原文出处:https://www.cnblogs.com/dw-haung/p/Mybatis.html
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦