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

本文介绍了Java中的数据源概念及其三种实现形式:DataSource、XADataSource 和 ConnectionPoolDataSource。详细解释了每种数据源的作用及应用场景,包括基础连接创建、分布式事务支持和连接池管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java 数据源类图

[img]https://img-blog.youkuaiyun.com/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.youkuaiyun.com/conquer0715/article/details/50925674[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值