源码地址:https://github.com/mybatis/mybatis-3/
仓库地址:https://gitcode.net/qq_42665745/mybatis/-/tree/05-pool-datasource
数据源池化技术实现
学这一节的时候重新梳理了DataSource、DriverManager、Driver、DriverProxy、Connection之间的关系,如下图
在整体流程中,这一部分就是通过配置文件配置,在解析配置文件的时候就创建对应的数据源封装到Environment中,在执行sql的时候从Environment中拿到数据源,再使用数据源getConnection获取连接,再用连接执行SQL,再释放连接。
非池化就是每次都创建一个Connection,每次创建和释放连接消耗大,从而引申出池化
池化的创建连接时复用了非池化的创建连接,而非池化的创建连接底层用的是DriverManager.getConnection(),如第一个图,池化的关键在于对池化连接,连接池状态以及弹出连接放入连接的管理,流程如下图