MyBatis的數據源—DataSourceFactory

一 DataSource

 在數據持久層中,數據源是一個很是重要的組件,其性能直接關係整個數據持久層的性能。常見的第三方數據源組件有DBCP,C3P0,Proxool等。MyBatis 不只能夠集成第三方數據源組件,還提供本身的數據源實現。java

  MyBatis 使用不一樣的DataSourceFactory 接口實現建立不一樣類型的DataSource。sql

DataSourceFactory 類圖以下apache

 

DataSourceFactory 接口扮演抽象工廠角色,UnpooledDataSourceFactory 和 PooledDataSourceFactory則扮演具體工廠角色。性能

DataSourceFactory 的源碼以下spa

package org.apache.ibatis.datasource;

import java.util.Properties;
import javax.sql.DataSource;

/**
 * @author Clinton Begin
 */
public interface DataSourceFactory {
  // 設置dataSource 的相關屬性
  void setProperties(Properties props);
  // 獲取DataSource 對象
  DataSource getDataSource();

}

看一下 UnpooledDataSourceFactory  對象

 

 

經過工廠方式獲取數據源對象接口

// 經過工廠方式 獲取  UnpooledDataSource 對象
DataSourceFactory unpooledDataSourceFactory = new UnpooledDataSourceFactory();
DataSource unpooledDataSource = unpooledDataSourceFactory.getDataSource();

// 經過工廠方式 獲取 PooledDataSource 對象
DataSourceFactory pooledDataSourceFactory = new PooledDataSourceFactory();
DataSource pooledDataSource = pooledDataSourceFactory.getDataSource();
相關文章
相關標籤/搜索