Mybatis Plus可以很方便地实现事务管理。
通过@Transactional注解事务的方法,实现事务管理:
@Service
public class ITZhiMeiUserServiceImpl implements ITZhiMeiUserService {
@Transactional
public void insertUser(String username) {
// inserts a new user...
userMapper.insert(...)
// throws an exception...
throw new RuntimeException(); // the transaction will roll back
}
}
@Transactional具有以下主要特性:
- 事务Propagation: 事务传播行为,可选配置。
- 事务Isolation:事务隔离级别,可选配置。
- 事务Timeout:事务超时时间,可选配置。
- 事务RollbackFor/noRollbackFor:配置回滚和不回滚的异常类型。
- readOnly:只读事务,可选配置。
设置这些属性后,Mybatis Plus可以:
- 自动开启事务
- 在方法执行前获取数据库连接
- 在方法结束后提交或回滚事务
- 自动释放资源
同时还支持@Transactional在类级别使用:
@Transactional
@Service
public class ITZhiMeiUserServiceImpl implements ITZhiMeiUserService{
// 所有带@Transactional的方法都适用事务
}
通过这种方式,Mybatis Plus可以方便地实现:
- 声明式事务
- 事务传播
- 事务隔离级别配置
- 事务超时
- 回滚和不回滚异常类型配置
- 只读事务
有效减少我们对底层事务机制的关注,降低使用难度。
总的来说,Mybatis Plus通过@Transactional注解实现简单易用的声明式事务。