- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JDBC事务机制??
2011-03-23 18:00:06|??分类:?JDK|字号?订阅
事务:由一个或多个执行、完成的语句组成,以组的形式提交或回滚。当前事务结束,另一个事务开始。
在JDBC中,事务默认是自动提交的,即每执行一条语句,就是一个事务。
事务特性:ACID特征,Atomic(原子性)、Consistency(一致性)、Isolation(隔离性)和Durability(持久性)。
原子性:指整个事务是不可以分割的工作单元。只有事务中所有的操作执行成,才算整个事务成功;事务中任何一个SQL语句执行失败,那么已经执行成功的SQL语句也必须撤销,数据库状态应该回到执行事务前的状态。
一致性:指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。例如对于银行转账事务,不管事务成功还是失败,应该保证事务结束后两个转账账户的存款总额是与转账前一致的。
隔离性:指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。
持久性:指的是只要事务成功结束,它对数据库所做的更新就必须永久保存下来。即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。
事务各个特征的实现手段:
原子性:日志
一致性:日志
隔离性:锁机制
持久性:日志
事务隔离级别(5级):
0:TRANSACTION_NONE
1:TRANSACTION_READ_UNCOMMITTED
2:TRANSACTION_READ_COMMITTED??????????????? 防止脏读
4:TRANSACTION_REPEATABLE_READ?????????????防止不可重复读
8:TRANSACTION_SERIALIZABLE????????????????????防止 幻影读
Oracle支持2种:2和8,默认为2.
并发环境中的几种情况:
脏读:一个事务在提交前可以看到另一个事务的行为,则出现脏读。一个事务读到了其它事务没有提交的数据;
不可重复读:一个事务通过SQL读取数据后,有其它事务立刻作了DML操作,并且提交了,然后第一个事务通过相同的SQL语句再次读取,所得的数据和第一次读取的数据不一致的情况。要点:同一个事务,同一语句,在多次读取过程中,所得到的结果不一致的情况。如何防止:在执行SELECT语句时加上for update子句
幻(影)读:基本理解同不可重复读。区别:????不可重复读:指某些列的值的不同,????幻影读:指表的总记录数量上的不同。如何防止:锁表,代价很高。
使用如下方法控制连接的独立性等级:
conn.setTransactionIsolation(Connection.TRANSACTION_XXX);
?
事务的开始与结束:
首先,因为默认的JDBC事务是自动提交的,故我们在获取数据库连接后,应该将连接改为非自动提交模式:
conn.setAutoCommit(false); //标志着新事务的开始
mit(); //提交
conn.rollback(); //回滚
?
在JDBC 3.0新增功能中,提供对事务commit和rollback的更好支持,在事务过程中,在两个操作间可以插入一个命名的存储点作为标记,因此可以将事务回滚到那个标记,保留标记有效前的所有操作。
示例:
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
?
stmt.executeUpdate(update1);
Savepoint point1 = conn.setSavepoint(point1);
?
stmt.executeUpdate(update2);
stmt.executeUpdate(update3);
?
conn.rollback(point1);
mit();
您可能关注的文档
- 第二章 80C51的结构和原理习题及答案.doc
- 第二章 计算机硬件系统与信息存储习题(第二版).doc
- 第一章中国电力出版第二版 热工过程自动调节 课后习题答案.doc
- 电场强度”教学设计.doc
- 电工进网作业操作证考试题(B1卷).doc
- 电工与电子技术试题0.doc
- 电路与电子技术基础习题答案8.doc
- 电气控制与PLC企业招骋(模拟)笔试试卷.doc
- 电子报税实验报告步骤及感想.doc
- 电子技术基础(模拟部分)试卷二及答案.doc
- 广东省潮州市2019-2020年度高一上学期政治期中考试试卷(II)卷.doc
- 初中语文七年级下册 27 《课外古诗词诵读・竹里馆》优质课公开课课件.pdf
- 初中语文七年级下册 28 《课外古诗词诵读・春夜洛城闻笛》优质课公开课课件.pdf
- 广东省潮州市2019-2020学年高一上学期政治期中考试试卷(II)卷.doc
- 初中语文七年级下册 29 《课外古诗词诵读・逢入京使》优质课公开课课件.pdf
- 广东省潮州市2019-2020学年高一上学期政治期中试卷B卷.doc
- 广东省潮州市2019-2020学年高一下学期政治开学考试试卷A卷.doc
- 初中语文七年级下册 30 《课外古诗词诵读・晚春》优质课公开课课件.pdf
- 广东省潮州市2020版高一上学期政治期中考试试卷D卷.doc
- 广东省潮州市2020年高一上学期政治期中考试试卷A卷.doc
文档评论(0)