美文网首页
Spring学习笔记(五)-事务的管理

Spring学习笔记(五)-事务的管理

作者: G__yuan | 来源:发表于2019-07-11 13:55 被阅读0次

1.Spring的事务提交回滚

(1).运行期抛出的异常,spring会将事务回滚也就是(uncheck的异常)

Check的异常将不会进行回滚。

unchecked异常指:运行期间(RuntimeException)抛出的异常,比如空指针异常,参数不合法异常等。

checked异常指:在编写代码时,预先已经知道此方法有可能会抛异常,将异常信息抛了出去,在对应的调用此方法时必须写try{}catch{}的,这样spring将不会回滚事务。

代码体现

在PersonServiceImpl.java中delete方法中抛出异常:

但是测试类中调用delete方法是没有进行异常处理

那么数据库中的记录将不会删除,因为spring将事务回滚了。这就是unchecked

当PersonserviceImpl中的delete方法这样写时(把异常信息抛出去了):

在测试方法中必须要进行try{}catch{}如下:

这时将不会将事务进行回滚,数据库中的数据将会被删除,也就是所说的checkd

还可以在方法上配置注解属性,将抛出unchecked的异常时(原本是回滚的),事务不回滚,抛出checked的异常时(原本是不回滚的),事务回滚。如下:

如果想让一个方法在执行时,不开启事务,那么可以进行如下配置:

其中配置的属性Propagation的值还有如下几个:

@Transactional(readOnly=true)//配置事务的只读操作,这样的话将只有读数据的功能,没有更新数据的功能,在查询方法上设置事务的此属性,可以提高效率。

@Transactional(timeout=30)//事务的超时时间,默认30秒

@Transactional(isolation=???)//配置事务的隔离级别,这个一般是数据库自己设置的。隔离级别有如下几种:

实现可重复读一般数据库采用快照技术,快照技术就是:可以想象成,当在某一点,访问数据时,将这个数据做成镜像,那么以后在同一个事务中读取相同记录的数据时,它就可以从快照里面返回数据,这时不管外部的事务对其进行任何操作,在多次读取的时候将不会受到影响。

2.基于xml配置的方式配置事务

(1).在bean.xml文件中进行如下配置:

相关文章

网友评论

      本文标题:Spring学习笔记(五)-事务的管理

      本文链接:https://www.haomeiwen.com/subject/jynrkctx.html