Spring事务管理TransactionManager

本文内容纲要:Spring事务管理TransactionManager

事务就是对一系列的数据库操作进行统一的提交或回滚操作,比如说做一个转账功能,要更改帐户两边的数据,这时候就必须要用事务才能算是严谨的做法。要么成功,要么失败,保持数据一致性。如果中间有一个操作出现异常,那么回滚之前的所有操作。

这样有什么好处呢。

这样可以防止在一些意外(例如说突然断电)的情况下出现乱数据,防止数据库数据出现问题。这边加了钱,那边却还是一样的数,这就完了。要是开放一个网上交易的平台,这样就会出大问题的!

还有其他的一些操作,像是要添加多条数据,如果程序要求必须全部正确才能插入的话,事务又起大作用了,等等。。。开发中为了避免这种情况一般都会进行事务管理。

在JDBC中是通过Connection对象进行事务管理的,默认是自动提交事务,可以手工将自动提交关闭,通过commit方法进行提交,rollback方法进行回滚,如果不提交,则数据不会真正的插入到数据库中。

Hibernate中是通过Transaction进行事务管理,处理方法与JDBC中类似。

Spring中也有自己的事务管理机制,使用TransactionMananger进行管理,可以通过Spring的注入来完成此功能。

系统设计方面要求手动控制事务

1、

applicationContext.xml:

<beanid="transactionManager"

class="org.springframework.jdbc.datasource.DataSourceTransactionManager"

p:dataSource-ref="dataSource"/>

2、

在需要加事务的方法上加上

DataSourceTransactionManager transactionManager =(DataSourceTransactionManager) ctx

.getBean("transactionManager");

DefaultTransactionDefinitiondef=newDefaultTransactionDefinition();

def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);// 事物隔离级别,开启新事务

TransactionStatus status = transactionManager.getTransaction(def);// 获得事务状态

try{

//逻辑代码

transactionManager.commit(status);

}catch(Exception e){

transactionManager.rollback(status);

}

引自:http://cailangwei.blog.163.com/blog/static/1314585792014895755400/

https://zhidao.baidu.com/question/197227102.html

本文内容总结:Spring事务管理TransactionManager

原文链接:https://www.cnblogs.com/WAbby/p/6118570.html

以上是 Spring事务管理TransactionManager 的全部内容, 来源链接: utcz.com/z/362727.html

回到顶部