ado.net统一事务,及连接池管理(二)

一、事务管理器提供功能

我们的目标是支持事务的统一访问,又可支持事务的并发。让访问者看不到数据连接,只需关注事务的开启、提交、回滚即可,因此公开的功能如下:

1、开启事务:负责数据库连接的创建和事务的开启,如果当前线程中没有连接则创建连接并加入到连接池,如果事务没有开启则开启事务。

2、提交事务:负责数据库事务的提交,并释放数据库连接,并从连接池移除;

3、回滚事务:负责数据库事务的回滚,并释放数据库连接,并从连接池移除;

4、提供当前线程的事务获取访问能力,在同1个线程中,在事务提交或回滚前,其它接口应可以随时获取当前事务

二、事务管理器的设计

1、为使事务管理器功能更加独立,更加单一,所以将事务管理与连接的管理分开,分为2个类:事务管理类,连接管理类。事务管理器只负责连接池的维护、事务的控制,连接管理器负责各类连接字符串的维护、各类连接的创建;

2、为便于对象的控制,事务管理器类及连接管理器类均需实现singleton模式;

3、主要属性及公开方法如下:
private static Hashtable connTable = new Hashtable();  //用于存储连接

[ThreadStatic]
static OracleTransaction trans;    //当前数据库事务

[ThreadStatic]
static bool isBegin; //标识当前事务是否开始

private static TransManager transManager = new TransManager();

public void BeginTransaction();

public void CommitTransaction();

public void RollBackTransaction();

public OracleTransaction GetTransaction();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值