Spring Boot项目实现事务管理

前言

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

方法

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

项目结构图如下:
Spring Boot项目实现事务管理_第1张图片
范例代码如下:

 /**
     * 删除订单
     * @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异常数据是不会回滚的。

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

你可能感兴趣的:(Spring,boot)