1 回顾
上一文中解读了MyBatis中非池型数据源的源码,非池型也就是只拥有单一数据连接的数据源,他只管理着一个数据连接,这种数据源现在很少使用,一般都是用池型数据源,因为单个连接的情况下,为了保证操作的正确性,针对这个连接的使用要进行同步,这样无疑会拖慢系统运行速度。
而使用池型数据源,在池中保存有多个数据库连接,可以供多个数据库访问线程同时获取现成的不同的数据库连接,既保证了数据访问的安全性,也能极大的提升系统的运行速度。
2 池型数据源
现在的Java项目中多采用池型数据源,C3P0,DBCP之类的也都提供了池型数据源,在MyBatis中也自定义了一种池型数据源PooledDataSource,这个pooled正好与之前的Configuration配置文件中配置的数据源的类型“POOLED”对应。
<dataSource type="POOLED">
2.1 池型数据源工厂
首先我们来看看池型数据源的数据源工厂:PooledDataSourceFactory