可以共享一份给小弟吗?感激不尽...
我搜索官网,然而找不到我想要下的版本啊...
本文主要讲述spring和mybatisboot提供的声明式的倳务管理机制
声明式的事务管理是基于AOP的,在spring和mybatisboot中可以通过@Transactional注解的方式获得支持这种方式的优点是:
1)非侵入式,业务逻辑不受事务管理代码的污染
2)方法级别的事务回滚,合理划分方法的粒度可以做到符合各种业务场景的事务管理
本文使用目前最常用的mybatis框架来配置spring和mybatisboot的事务管理机制。下面进入配置方法介绍
3)mysql数据库驱动包
这个配置主要是实现配置mybatis数据源,这超出了本文的叙述范围大家可以参照这篇博客。
之后你可以根据添加的数据源写好mapper也就是dao层代码。
DAO层代码是使用XML配置方式还是使用注解实现方式,对事务管理都是没有影响的
在设计service层的时候,应该合理的抽象出方法包含的内容
然后将方法用@Trasactional注解注释,默认的话在抛出Exception.class异常的时候就会触发方法中所囿数据库操作回滚,当然这指的是增、删、改
当然,@Transational方法是可以带参数的具体的参数解释如下:
可选的限定描述符,指定使用的事务管理器 | |
可选的事务传播行为设置 | |
可选的事务隔离级别设置 | |
读写或只读事务默认读写 | |
导致事务回滚的异常类数组 | |
类名数组,必须继承自Throwable | 导致事务回滚的异常类名字数组 |
不会导致事务回滚的异常类数组 | |
类名数组必须继承自Throwable | 不会导致事务回滚的异常类名字数组 |
可以做一个简单嘚测试,主动抛出异常测试一下是否真的能保证事务性。
在执行完插入之后手动抛出一个空指针异常,可以发现数据真的回滚了
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。