zoukankan      html  css  js  c++  java
  • MyBatis源码解析之数据源(含数据库连接池简析)

    一.概述:

    常见的数据源组件都实现了javax.sql.DataSource接口;

    MyBatis不但要能集成第三方的数据源组件,自身也提供了数据源的实现;

    一般情况下,数据源的初始化过程参数较多,比较复杂;

    二.设计模式:

    为什么要使用工厂模式

     

    数据源模块类图 :

    三.MyBatis源码数据源实现

    MyBatis数据源通过工厂模式实现了,非连接池的数据连接,和数据库连接池。

    非连接池的数据连接:

    MyBatis数据库连接池源码解析

    数据结构如下:

     

    使用动态代理封装了真正的数据库连接对象,进行了方法增强:使用前检查连接是否有效,关闭时对连接进行回收;

     

    连接池配置文件配置的数据在这里映射。

    用于管理PooledConnection对象状态的组件,通过两个list分别 管理空闲状态的连接资源和活跃状态的连接资源;

    算法流程图:

    获取连接:

    释放连接:

    从连接池获取连接

     

     释放连接:

     

    总结:

    MyBatis数据源模块使用了工厂模式,分别实现了非数据源连接和数据库连接池。数据库连接池算法十分精简易懂,这对我们后续学习c3p0 ,德鲁伊等其他连接池打下了坚实基础。

  • 相关阅读:
    去逛了一下浙东大峡谷
    终于开始释然
    其实在天堂AS IT IN HEAVEN
    寝室全景照
    黑与白
    努力下的意外
    文曲星的存在意义
    强烈推荐文章,给那些头脑发晕的看看
    学友演唱会
    最喜欢的歌
  • 原文地址:https://www.cnblogs.com/dw-haung/p/Mybatis.html
Copyright © 2011-2022 走看看