目录
在数据持久层,数据源和事务是两个非常重要的组件,对数据持久层的影响很大,在实际开发中,一般会使用Mybatis集成第三方数据源组件,如c3p0、Druid等,Mybatis也提供了自己的数据库连接池实现,本文会通过Mybatis的源码实现来了解数据库连接池的设计。事务方面,一般使用 Spring进行事务的管理,这里不做详细分析。下面我们看一下Mybatis是如何对这两部分进行封装的。
DataSource
常见的数据源都会实现javax.sql.DataSource接口,Mybatis中提供了两个该接口的实现类,分别是PooledDataSource和UnpooledDataSource,使用不同的工厂类分别管理这两个类的对象。
DataSourceFactory
DataSourceFactory系列类的设计比较简单,DataSourceFactory作为顶级接口,UnpooledDataSourceFactory实现了该接口,PooledDataSourceFactory又继承了 UnpooledDataSourceFactory。