package com.chinaztt.mes.basic.util; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.stereotype.Component; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.support.DefaultTransactionDefinition; import javax.annotation.Resource; /** * @Author 张宾 * @Date 2023/10/26 */ @Component public class TransactionUtils { @Resource private DataSourceTransactionManager transactionManager; //开启事务,传入隔离级别 public TransactionStatus begin(int isolationLevel) { DefaultTransactionDefinition def = new DefaultTransactionDefinition(); // 事物隔离级别,开启新事务 TransactionDefinition.ISOLATION_READ_COMMITTED def.setIsolationLevel(isolationLevel); // 事务传播行为 def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); //默认事务 TransactionStatus transaction = transactionManager.getTransaction(def); //将拿到的事务返回进去,才能提交。 return transaction; } //提交事务 public void commit(TransactionStatus transaction) { //提交事务 transactionManager.commit(transaction); } //回滚事务 public void rollback(TransactionStatus transaction) { transactionManager.rollback(transaction); } }