Java、Mybatis事务——commit、rollback、编程式事务

业务场景

执行某个SQL组合,如果这个SQL组合中全部执行成功则执行,一旦有一个执行不成功,则全部不执行。

Spring 官方文档

代码样例

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;


@Slf4j
@Service
@RequiredArgsConstructor
public class demo{

    public void demo() {
        TransactionStatus status;
		// 手动开启事务初始化
        status = transactionManager.getTransaction(new DefaultTransactionDefinition());
		//操作
        try {
            // 数据库操作
			xxx();
            // 操作无异常:提交事务
            transactionManager.commit(status);
        } catch (Exception e) {
			e.printStackTrace();
            // 捕获异常时 事务回滚
            transactionManager.rollback(status);
		}
    }
}

猜你喜欢

转载自blog.csdn.net/xue_xiaofei/article/details/110424252