实验八事务管理

实验八事务管理

ID:44607399

大小:350.97 KB

页数:24页

时间:2019-10-24

实验八事务管理_第1页
实验八事务管理_第2页
实验八事务管理_第3页
实验八事务管理_第4页
实验八事务管理_第5页
资源描述:

《实验八事务管理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验八事务管理一、JavaEE事务对JavaEE应用程序而言,由于各数据库厂商都提供了符合JDBC接口标准的驱动程序,所以在JavaEE应用中操作数据库事务就是对JDBC事务的操作。存在两种事务:JDBC的事务、JTA(JavaTransactionArchitecture)事务1.JDBC的事务在获得Connection对象后,默认的事务为自动提交,不需要手动提交。JDBC事务是一个局部事务,只能应用于当前数据库。在分布式环境中,如果事务跨越多个数据库,则只能使用支持分布式应用的JTA标准。2・JTA(Java

2、TransactionArchitecture)事务JTA事务,指的是Java事务API,也是JavaEE标准的一部分。JTA使用事务管理器(TransactionManager)来管理分布式事务,一个JTA事务涉及一个事务管理器和多个资源管理器。通常使用JTA事务比较难一些,所以一个应用如果只使用一个数据库,贝I」仅使用JDBC事务就足够了,尽管可以使用JTA事务,但是这样会带来不必要的复杂性。对Spring应用程序来讲,究竟使用JDBC事务还是使用JTA事务已经不重要了,因为Spring框架使用同一种抽象的事

3、务编程模型。配合芮明式(不是编程式)事务管理,选择JDEC事务还是JTA事务仅是修改配置文件的问题,不需要修改代码!二、使用Spring进行事务管理依赖Spring的MC容器,Spring提供了轻量级的事务管理功能,与普通的数据库事务管理不同,不是针对操作进行事务管理,Spring是针对Jevm类中的方法进行事务管理。使程序员不必进行具体的事务管理。1.事务的概念数拯库中的事务是一个完整的操作序列,这一操作序列中的操作要么全做,要么全不做。原子性一致性隔离性持久性1.在并发操作中可能出现的操作现象(1)(第一类)

4、丢失更新(一事务的撤销将另一事务的更新覆两次更新问题J第二类丢失更新}(第2次更新将笫].次更新覆盖);(3)滋渎(一事务读取了另一事务更新过但还没提交的数据-脏数据);(4)不可重复读取(Non-repeatableReads一个事务对同一个数据读取了两次,但是读取的结果不同);(5)虛渎(一事务进行了两次(不一定相同的SQL)查询,第二次包含了第一次查询中未岀现的数据-两次之间其它事务插入了数据)1.数据库的隔离级别为避免出现上述情况,在标准的SQL规范中,定义了四种事务隔离级别,不同的隔离级别对事务的处理不

5、同。(1)未授权读取(ReadUnconunited):允许脏读,但是不允许(第一类)丢失更新;(2)授权读取(Readcommited):允许不可重读现象,但是不允许读脏数据;(3)可重复读取(RepeatableRead):禁止不可重复读取现象和读脏数据现象;(4)序列化(Serializable):提供严格的事务隔离。事务只能串行,不能并发执行。2.事务的传播性通常一个事务的所有代码都在一个事务中执行。但是如果一个事务上下文已经存在,可以指定事务性方法的执行行为。如简单地在现有的事务中执行、挂起现有事务、或

6、者创建一个新的事务。事务的传播性及其意义MANDATORY直接使用当前的事务执行,如果当前没有事务则抛出异常;NESTED在创建的新事务中执行。如果当前存在事务,贝IJ会形成事务的嵌套;NEVER在没有事务的情况下执行。如果当前存在事务则抛出异常;NOT_SUPPORTED在没有事务的情况下执行。如果当前存在事务,则将当前事务挂起;REQUIRED在事务中执行。如果当前没有事务存在,则创建一个新的事务。REQUIRED_NEW在新的事务中执行。如果当前存在事务,则将当前事务挂起。SUPPORTS使用当前的环境执行

7、。如果当前存在事务,则使用这个事务;如果当前不存在事务,则不使用事务。5.Spring的事务模型Spring框架提供了极其强大而简便的事务处理功能,其核心是PlatformTransaetionManager®UoSpring彳各所有的事务管理功能都抽象为PlatformTransactionManeger、TransactionStatus^PlTransBctionDefinition3个接口,无论使用JDBC事务、JTA事务,还是ORM框架自定义的事务。(1)PlAtformTrBnsBctionMmriB

8、gerd定义事务管理器,所有与事务相关的操作都由PlatformTransactionManagerTK^fi;(2)TransactionStmtus定义事务状态,PlatformTransactionManager^^i^Transectionstatus的状态来决定是否回滚事务。(3)TransactionDefinition则定义了事务的隔离级别和传播行为。在事务

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

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

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