zoukankan      html  css  js  c++  java
  • java SSM多操作注解回滚

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

    在这之前你需要在你的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;
    	}
    
    
  • 相关阅读:
    LeetCode 3Sum Closest
    LeetCode Jump Game
    LeetCode Convert Sorted List to Binary Search Tree
    LeetCode Search for a Range
    LeetCode ZigZag Conversion
    sql server中主键列的插入问题
    php 联系电话验证(手机和固话)
    Update与Mysql、Sqlsever中的随机数
    Yii在nginx下多目录rewrite
    php后台判断ajax请求
  • 原文地址:https://www.cnblogs.com/userzf/p/9060149.html
Copyright © 2011-2022 走看看