当前位置: 代码迷 >> 综合 >> Java 数据源 DataSource 架构分析 (jdk7/tomcat7)
  详细解决方案

Java 数据源 DataSource 架构分析 (jdk7/tomcat7)

热度:76   发布时间:2023-12-16 12:49:00.0
Java 数据源类图

[img]https://img-blog.csdn.net/20160318180949963?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center[/img]

简单说明
CommonDataSource:是对数据源概念的顶层抽象,约束了数据源必需实现的方法。
从架构图中可以看出数据源有三种类型,即CommonDataSource抽象有三种实现方式,分别是:
DataSource、XADataSource、ConnectionPoolDataSource,三种类型数据源说明如下:
DataSource:基础实现,数据库物理连接的工厂,用于创建标准的数据库物理连接Connection,JDBC 2.0中诞生,与早先的DriverManager用途一样,新版本JDBC编程已推荐使用DataSource;
XADataSource:分布式事务实现,为支持分布式事务而诞生,此数据源直接生产出的不是数据库物理连接Connection,而是一个支持XA的XAConnection对象,
XAConnection对象可以直接生产数据库物理连接Connection,同时生产XAResource用于支持XA事务,通常XAConnection对象生产出的数据库物理连接Connection需要和该XAConnection生产出的XAResource对象配合使用以完成XA事务处理(请参考 XA 和 JTA 规范);
ConnectionPoolDataSource:连接池实现,此数据源实现并不直接创建数据库物理连接,而是一个逻辑实现,它的作用在于池化数据库物理连接,由于数据库物理连接是一个重量级的对象,频繁的创建销毁很影响性能,将物理连接池化后可降低创建和销毁的频率,复用连接以充分利用连接资源,此数据源通常不为用户应用所知,通常是由中间件服务方来调度,中间件服务方通过它获取一个池化对象PooledConnection,再通过该PooledConnection间接获取到物理连接,获取方式即是调用其getConnection()方法,

参考:[url]http://blog.csdn.net/conquer0715/article/details/50925674[/url]
  相关解决方案