业务场景
执行某个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);
}
}
}