事务9923759811.doc_第1页
事务9923759811.doc_第2页
事务9923759811.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、事务的隔离级别隔离级别第一类丢失更新脏读Dirty Read幻读Phantom Read不可重复读NonRepeatable Read第二类丢失更新读未提交Read uncommitted否是是是是读已提交Read committed否否是是是可重复读Repeatable read否否是否否序列化Serializable否否否否否1、 ISOLATION_DEFAULT:数据库默认隔离级别,不同数据库默认隔离级别有所不同;2、 ISOLATION_READ_UNCOMMITED:允许读取到其它事务未提交的数据,这可能会造成脏读;3、 ISOLATION_READ_COMMITED:只允许读取其它事务已提交的数据,避免了脏读。query2会跟query1读取的数据不一样;4、 ISOLATION_REPEATABLE_READ:可重复读取,即query1跟query2读取的数据是一样的;5、 ISOLATION_SERIALIZABLE:最严格的隔离级别,操作同一数据的并发事务只能串行化执行。二、事务传播行为事务传播行为类型说明PROPAGATION_REQUIRED必须在事务内执行,如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。PROPAGATION_SUPPORTS支持当前事务,如果当前没有事务,就以非事务方式执行。PROPAGATION_MANDATORY必须在当前事务内执行,如果当前没有事务,就抛出异常。PROPAGATION_REQUIRES_NEW总是新建一个事务,如果当前存在事务,把当前事务挂起,直到新事物执行完毕。PROPAGATION_NOT_SUPPORTED不能在事务环境下运行,如果当前存在事务,就把当前事务挂起。PROPAGATION_NEVER以非事务方式执行,如果当前存在事务,就直接抛出异常。PROPAGATION_NESTED必须在事务内执行,如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。三、Java5注解简化事务配置Transactionalpublic interface BusinessService Transactional(readOnly=true) Account queryUserDetails(String username); Transactional(propagation=Propagation.SUPPORTS, readOnly=true) Category queryRoot(); void deleteFavorite(Account account, Book book);只要在接口类上标记“Transactional”,所有方法就自动继承这个设置,也就是这个类的所有方法都在事务中运行。当然,具体某一个方法也可以覆盖其默认设置。1、 “queryUserDetails”方法就是继承的默认设置;2、 “Account”则覆盖了默认设置,变为“Transactional(readOnly=true)”改为了只读事务,当此事务内有数据修改时抛异常;3、 “queryRoot”也覆盖了默认设置,变为“Transactional(propagation=Propagation.SUPPORTS, readOnly=true)”也改为了只读事务,并且改变了事务传播行为,变成了“PROPAGATION_SUPPORTS” 支持当前事务,如果当前没有事务,就以非事务方式执行。Java5注解事务配置还可以有下表配置:属性类型默认值描述propagation传播性枚举型:PropagationPROPAGATION_REQUIRED事务传播性属性isolation隔离性枚举型:IsolationISOLATION_DEFAULT事务隔离级别readOnly只读性布尔型false是否只读timeoutint-1超时(秒)rollbackFor回滚异常类Class需要回滚的异常类rollbackForClassname回滚异常类名String需要回滚的异常类名noRollbackFor不回滚异常类Class不需要回滚的异常类noRollbackForClassname不回滚异常类名String不需要回滚的异常类名例如:Transactional (propagation= propagation.REQUIRES_NEW,isolation= isolation.READ_COMMITED,timeout=5,rollback

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论