• MyBatis源码解析之数据源(含数据库连接池简析)


    一.概述:

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

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

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

    二.设计模式:

    为什么要使用工厂模式

     

    数据源模块类图 :

    三.MyBatis源码数据源实现

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

    非连接池的数据连接:

    MyBatis数据库连接池源码解析

    数据结构如下:

     

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

     

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

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

    算法流程图:

    获取连接:

    释放连接:

    从连接池获取连接

     

     释放连接:

     

    总结:

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

  • 相关阅读:
    犹太人高成就的秘诀
    EXSI宿主机更换硬盘后虚机启动有问题
    Centos7 系统启动docker报错 inotify add watch failed
    Gluster的搭建和使用
    关于HA(2.102 -2.103 服务器排障)
    Fabric的简介
    关于CPU的一些操作(CPU设置超频)
    docker的安装和技巧
    linux 下查看wwn号
    HP 3par多路径安装方法
  • 原文地址:https://www.cnblogs.com/dw-haung/p/Mybatis.html
Copyright © 2020-2023  润新知