Spring Boot项目实现事务管理

前言

Spring Boot框架是有默认的事务配置,所以不需要添加什么依赖或者配置文件即可实现事务管理。

方法

只需要在项目的service包下的业务接口的实现类中的方法上添加@Transactional注解,并通过cry…catch抛出RuntimeException异常就可以实现事务的控制和回滚

项目结构图如下:
在这里插入图片描述
范例代码如下:

 /**
     * 删除订单
     * @param orderId
     */
    @Override
    @Transactional
    public void removeOrder(Integer orderId) {
        
        try {
            //获取订单的订单项集合
            List<Orderitem> orderitemList = orderitemMapper.selectOrderitems(orderId);
            for (Orderitem orderitem : orderitemList) {

                Integer bookId = orderitem.getBook_id();
                String quynum = orderitem.getBuynum().toString();

                //恢复库存
                booksMapper.updateBookQuantity(bookId, quynum);

            }
            //删除订单项
            orderitemMapper.deleteOrder(orderId);

            //删除订单
            ordersMapper.deleteByPrimaryKey(orderId);
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException();
        }
    }

在这个方法中,只有当恢复库存、删除订单项、删除订单全部执行成功,事务才会提交,如果执行失败就会走catch抛出RuntimeException异常进行事务的回滚。之所以要new RuntimeException()是因为只有抛出这个异常才会数据回滚,如果是非RuntimeException异常数据是不会回滚的。

如果有帮助到你,点个赞呗 ^ ~ ^

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值