SpringBoot编程式事务

时间:2025-02-16 18:06:02

第一:注入PlatformTransactionManager

@Autowired
private PlatformTransactionManager manager;

第二:在需要的地方开启事务

  @Test
    void transactionDemo() {
        TransactionDefinition definition = new DefaultTransactionDefinition();


        //删除操作,开启事务
        TransactionStatus deleteStatus = (definition);
        try {
            (1);

            //todo 数据库操作
            (deleteStatus);
        } catch (Exception e) {
            (deleteStatus);
        }


        //插入操作,开启另一个事务
        for (int i = 0; i < 5; i++) {
            Userinfo userinfo = new Userinfo();
            ("12345"+i);
            ("admin"+i);
            (i);
            TransactionStatus insertStatus = (definition);
            try {
                (userinfo);
                int i2 = 1/0;

                (insertStatus);
            } catch (Exception e) {
                (insertStatus);
            }

        }

    }