在业务操作时难免会遇到一个业务多操作,会用到事物回滚这里写了一个简单的多操作失败事物回滚案例

在这之前你需要在你的applicationContext-mybatis.xml中配置:

<!-- 事务管理 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>

下面这段代码是一个简单删除操作,删除的时候传入的Product 类的对象pro只赋值了id其他字段并未赋值在

  • 先写了一个删除操作

  • 后面跟了一个新增商品的操作(这个操作很明显是错误的会因为对象属性未赋值插入错误)

  • 在多操作是用 try catch 包裹起来,在catch 中如果出现错误调用 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 进行多操作事物回滚

        @Transactional
@Override
public boolean del(Product pro) {
//多操作回滚案例
boolean boo=false;
try{
System.out.println("开始");
pm.del(pro);
pm.add(pro);
boo=true; }catch(Exception e){
System.out.println("删除异常");
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//就是这一句了,加上之后,如果doDbStuff2()抛了异常,
//doDbStuff1()是会回滚的
System.out.println("操作回滚");
}
return boo;
}

最新文章

  1. JavaScript随笔2
  2. BeautifulSoup的选择器
  3. Linux syslog介绍
  4. (leetcode)Implement Stack using Queues
  5. UESTC_秋实大哥带我飞 2015 UESTC Training for Graph Theory&lt;Problem B&gt;
  6. Lync Server 2013中央管理存储:自动收集配置数据失败
  7. Android图片轮播控件
  8. [转]SQL Server 表变量和临时表的区别
  9. Java 异常基础详解
  10. eclipse配置tomcat后启动报内存错误解决方法
  11. Java中数组和集合的foreach操作编译后究竟是啥
  12. web框架开发-Django视图层
  13. Flutter学习(一)之MaterialApp和Scaffold组件使用详解
  14. KADEMLIA算法
  15. itsdangerous
  16. Codeforces 781C Underground Lab
  17. Binary Tree Traversals(HDU1710)二叉树的简单应用
  18. Redis介绍及部署在CentOS7上(一)
  19. Java-JUC(五):闭锁(CountDownLatch)
  20. 【机器学习算法】Boostrapping算法

热门文章

  1. HDU2147 kiki&#39;s game
  2. C#中的Socket
  3. HDU 1788
  4. OpenLayers3基础教程——OL3 介绍control
  5. 【LeetCode-面试算法经典-Java实现】【120-Triangle(三角形)】
  6. [MFC]透明图展示
  7. Java——动态代理
  8. 略微复杂的sql逻辑(从数据库逆序查找有限条记录(limit))并按相反顺序输出
  9. XCODE插件 之 Code Pilot 无鼠标化
  10. Rails中关联数据表的添加操作(嵌套表单)