20170830-Spring事务管理

JDBC的事务

Spring 事务管理

前景介绍:

a)我先创建了一个书店买书的例子(用户买书,库存要变,用户的余额也要变)

b)并对库存和用户余额做了自定义异常处理

 买书的步骤:1.获取书的单价     2.更新书的库存    3.更新用户余额

当用户余额不足时,按理说书的库存不会发生变化;但事实是库存发生了变化

这个时候就需要事务管理

BookShopDaoImpl.java

说明:因为mysql识别不了 检查约束,所以要自己在相应的位置做限定


测试
applicationContext.xml

详细例子:   E:\student\java\java框架学习\Spring\Spring-3

声明式事务 属性讲解:

/**

* 1.使用propagation 指定事务的传播行为,即当前的事务方法被另外一个事务方法调用时

*  如何使用事务,默认取值为REQUIRED。即使用调用方法的事务

*     @Transactional(propagation=Propagation.REQUIRED)

*      如果有事务在运行,当前的方法就在这个事务内运行,否则就启动一个新的事务,并在自己的事务内运行

*     @Transactional(propagation=Propagation.REQUIRES_NEW)

*      当前的方法必须启动新事务,并在它自己的事务内运行,如果有事务正在运行,应该将它挂起

* 2.使用isolation 指定事务的隔离级别,最常用的取值为READ_COMMITTED

* 3.默认情况下Spring 的声明式事务对所有的运行时异常进行回滚,也可以通过对应的

*        属性进行设置,弹出情况下 取默认值即可

*         noRollbackFor={UserAccountException.class} 对这个异常不进行回滚

*          rollbackFor:  遇到时必须进行回滚

* 4.使用readOnly指定事务是否只读,表示这个事务只读数据但不更新数据,这样可以帮助

*      数据库引擎优化事务。若真的有一个只读数据库值的方法,应设置readOnly=true;

* 5.使用timeout 指定强制回滚之前事务可以占用的时间。这样可以防止长期运行的事务占用资源.

*/


以XML的形式 配置事务管理

单个配置 需要的Bean
XML 配置事务的步骤
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这部分的参考文档涉及数据访问和数据访问层和业务或服务层之间的交互。 Spring的综合事务管理支持覆盖很多细节,然...
    竹天亮阅读 1,053评论 0 0
  • 很多人喜欢这篇文章,特此同步过来 由浅入深谈论spring事务 前言 这篇其实也要归纳到《常识》系列中,但这重点又...
    码农戏码阅读 4,785评论 2 59
  • 5.Spring的事务 通常情况下,J2EE有2种事务管理方式:全局事务和本地事务,2种事务都比较明显的缺陷。 全...
    FTOLsXD阅读 1,537评论 0 8
  • 秋风送爽,丹桂飘香,此时闽江学院志远田径场上的风景更是迷人。红的旗帜,绿的裙边,黄的龙摆,一帧帧都在展示着...
    闽江学院阅读 272评论 0 0
  • 下载简书很久了,但这是第一次写,因为文笔真的不好 我是一个奇怪而又矛盾的人,白天我是笑得最开心的那一个,对待...
    Mantifaca_阅读 233评论 0 1