在使用 MyBatis 進行刪除操作時,如果要實現回滾,可以使用事務管理來控制事務的提交與回滾。具體步驟如下:
<transactionManager type="JDBC"/>
在需要進行刪除操作的方法上加上 @Transactional
注解,表示該方法需要進行事務管理。在方法執行時,會自動開啟事務。
在需要進行回滾的地方,可以使用 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly()
方法來設置事務回滾標志,表示該事務需要回滾。
示例代碼如下所示:
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@Service
public class MyService {
@Autowired
private MyMapper myMapper;
@Transactional
public void deleteData(Long id) {
try {
// 執行刪除操作
myMapper.deleteData(id);
} catch (Exception e) {
// 出現異常時,設置事務回滾標志
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
}
}
這樣,在刪除操作發生異常時,事務會自動回滾,保證數據的完整性。