本文主要是介绍Java 数据源 DataSource 架构分析 (jdk7/tomcat7),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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]
这篇关于Java 数据源 DataSource 架构分析 (jdk7/tomcat7)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!