首先了解什么事事务,和一些基本概念。
什么是事务: 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
事务的四大特性
事务的特性-ACID:
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
事务的特性-原子性:
事务中的操作,要么全做成,要么都不做
事务是不可拆分的
事务必须以 Commit/Rollback 结束
事务的特性-一致性:
单独运行的事务,必须保证保持数据库的一致状态
从一个一致状态迁移到另一个一致状态
与原子性相关
事务的特性-隔离性:
多个并发事务之间不能相互干扰
并发不影响事务的执行
事务的特性-持久性:
一旦事务成功完成(Commit),它对数据库的更新应该是持久的
即使在写入磁盘之前,系统发生故障
在下次启动之后,也应保障数据更新的有效
所以在我们的程序中,对于多次操作数据库的地方加入事务是很有必要的。那么怎么在spring3中加入事务呢?有了注解一切都很简单,首先在spring的配置文件中加入以下代码
<!-- 事务控制器 -->
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionM-anager">
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
<!-- surrpot proxool shutdown -->
<bean id="dataSourceFacade" class="org.logicalcobwebs.proxool.ProxoolFacade"
destroy-method="shutdown" />
<!-- 实现基于注解的事务管理 -->
<tx:annotation-driven transaction-manager="txManager" />
在service使用的时候只需要在该类或该接口实现类得某个方法上加上@Transactional即完成了对事务的管理,如果注释的是接口,则该接口的所有实现类都将被事务化。
使用注解事务注意事项:
1. 在service层不要对异常进行拦截,要对异常进行抛出!
2. 注解事务只能对public的方法可用,其它方法加入了无效,也可以把注解加在class上面这样当前类的所有公共方法都添加了事务功能
3. 在接口中添加了注解事务它的所有实现接口都将具有事务特性.建议不要加将注解加在接口上
4. 默认情况下,一个有事务方法, 遇到RuntiomeException 时会回滚 . 遇到 受检查的异常 是不会回滚 的. 要想所有异常都回滚,要加上 @Transactional( rollbackFor={Exception.class,其它异常})
分享到:
相关推荐
spring事务与数据库操作
Spring事务管理Demo
Spring事务流程图时序图Spring事务流程图时序图Spring事务流程图时序图Spring事务流程图时序图
spring事务配置详解 spring事务配置详解
Spring事务原理、Spring事务配置的五种方式
spring 事务spring 事务spring 事务spring 事务spring 事务
Spring中事务的传播属性详解,Spring中事务的传播属性详解
spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码
通过代码解析spring传播特性,包括 1、Propagation.REQUIRED 方法被调用时自动开启事务,在事务范围内使用则使用同一个事务,否则开启新事务。 2、Propagation.REQUIRES_NEW 无论何时自身都会开启事务 3、...
Spring事务操作示例(四种方式),包含完整代码和数据库文件(基于MySQL,在项目sql文件夹中),可运行,学习Spring事务详见博客:http://blog.csdn.net/daijin888888/article/details/51822257
spring 事务传播 demo
spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务的底层实现流程图 spring事务...
spring事务源码解析
Java高级编程 实验报告 spring 声明事务 实验目的 掌握spring 声明式事务管理配置 实验环境 本实验采用本实验采用的eclipse或者 Myeclpse开发工具。Spring 4.0以上 Jdk1.7以上、oracle/mysql。
Spring的事务框架将开发过程中事务管理相关的关注点进行适当的分离,并对这些关注点进行合 理的抽象,最终打造了一套使用方便,却功能强大的事务管理“利器”。通过Spring的事务框架,我 们可以按照统一的编程模型来...
Spring事务管理教程,详细讲解了Spring中的事务管理,包括声明式事务,注解式事务,以及事务配置等等
两个项目,一个项目是基于spring jdbc实现的分布式事务,一个是基于spring hibernate的分布式事务,hibernate项目里的applicationContext2.xml...这两个项目下来,关于spring事务这一块基本上明了,绝对对得起这个分数
spring事务控制jar包,请网上自寻下载
Spring事务失效Spring事务失效
Spring事务管理.pdf 1.资料 2.本地事务与分布式事务 3.编程式模型 4.宣告式模型