Java事务的基本特性.doc

Java事务的基本特性.doc

ID:56014568

大小:46.95 KB

页数:2页

时间:2020-03-15

Java事务的基本特性.doc_第1页
Java事务的基本特性.doc_第2页
资源描述:

《Java事务的基本特性.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JDBC事务机制  2011-03-2318:00:06

2、  分类: JDK

3、字号 订阅事务:由一个或多个执行、完成的语句组成,以组的形式提交或回滚。当前事务结束,另一个事务开始。在JDBC中,事务默认是自动提交的,即每执行一条语句,就是一个事务。事务特性:ACID特征,Atomic(原子性)、Consistency(一致性)、Isolation(隔离性)和Durability(持久性)。·原子性:指整个事务是不可以分割的工作单元。只有事务中所有的操作执行成,才算整个事务成功;事务中任何一个SQL

4、语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该回到执行事务前的状态。·一致性:指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。例如对于银行转账事务,不管事务成功还是失败,应该保证事务结束后两个转账账户的存款总额是与转账前一致的。·隔离性:指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。·持久性:指的是只要事务成功结束,它对数据库所做的更新就必须永久保存下来。即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时

5、的状态。事务各个特征的实现手段:·原子性:日志·一致性:日志·隔离性:锁机制·持久性:日志事务隔离级别(5级):·0:TRANSACTION_NONE·1:TRANSACTION_READ_UNCOMMITTED·2:TRANSACTION_READ_COMMITTED               防止脏读·4:TRANSACTION_REPEATABLE_READ             防止不可重复读·8:TRANSACTION_SERIALIZABLE                    

6、防止幻影读Oracle支持2种:2和8,默认为2.并发环境中的几种情况:·脏读:一个事务在提交前可以看到另一个事务的行为,则出现脏读。一个事务读到了其它事务没有提交的数据;·不可重复读:一个事务通过SQL读取数据后,有其它事务立刻作了DML操作,并且提交了,然后第一个事务通过相同的SQL语句再次读取,所得的数据和第一次读取的数据不一致的情况。要点:同一个事务,同一语句,在多次读取过程中,所得到的结果不一致的情况。如何防止:在执行SELECT语句时加上forupdate子句·幻(影)读:基本理解同不

7、可重复读。区别:    不可重复读:指某些列的值的不同,    幻影读:指表的总记录数量上的不同。如何防止:锁表,代价很高。使用如下方法控制连接的独立性等级:conn.setTransactionIsolation(Connection.TRANSACTION_XXX); 事务的开始与结束:首先,因为默认的JDBC事务是自动提交的,故我们在获取数据库连接后,应该将连接改为非自动提交模式:conn.setAutoCommit(false);//标志着新事务的开始conn.commit();//提交c

8、onn.rollback();//回滚 在JDBC3.0新增功能中,提供对事务commit和rollback的更好支持,在事务过程中,在两个操作间可以插入一个命名的存储点作为标记,因此可以将事务回滚到那个标记,保留标记有效前的所有操作。示例:conn.setAutoCommit(false);Statementstmt=conn.createStatement(); stmt.executeUpdate(update1);Savepointpoint1=conn.setSavepoint("poi

9、nt1"); stmt.executeUpdate(update2);stmt.executeUpdate(update3); conn.rollback(point1);conn.commit();

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。