开发者社区> 问答> 正文

怎么配置mybatis事务?

先说一下框架配置
Spring+SpringMVC+mybatis
现在的mybatis的事务级别是jdbc级别(不知道是不是这么叫):就是单条语句执行后提交事务,如果出现异常则回滚!
但是现在经常遇到的问题是:一次操作需要往多个表中插入数据,但是经常在往多个表里面查数据的时候如果其中一张表的插入出现了异常,应该将之前做的所有操作都回滚。例如说
有5个表 A B C D E
只有这5张表插入的数据都成功了,才表明这一次请求成功了!
但是现在如果插到C表时除了异常,那么只会回滚C表这次操作的数据,但是AB这两张表已经插进去了!这样就造成有垃圾数据了!
能不能将这五次操作一并提交事务 ?
不知道该怎样解决像我这样的问题?

展开
收起
蛮大人123 2016-02-25 17:54:49 3957 0
2 条回答
写回答
取消 提交回答
  • 1.注册事务给spring进行管理
    2.加上注解管理事务@Transactional

    2019-07-17 18:47:47
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    用spring来管理事务,在spring中配置mybatis的事务,service方法级别上加
    全选复制放进笔记

    @Transactional(propagation = Propagation.REQUIRED, readOnly = false)
    public void xxxService(xxx xxx){
        //do something
    }

    整个方法中有异常都会回滚。

    2019-07-17 18:47:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第6讲】:Spring Boot 2.0实战MyBatis与优化(Java面试题) 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载