mybatis的@Transactional有什么用
时间: 2024-01-23 19:15:29 浏览: 25
@Transactional注解是Spring框架中用于声明事务的注解之一。它可以应用在类级别或方法级别上,用于标识需要进行事务管理的方法或类。当使用@Transactional注解时,Spring会自动为被注解的方法或类创建一个事务,并在方法执行前开启事务,在方法执行后根据方法的执行结果决定是提交事务还是回滚事务。
@Transactional注解的作用主要有以下几个方面:
1. 开启事务:使用@Transactional注解可以告诉Spring框架在方法执行前开启一个事务。
2. 提交事务:如果方法执行成功,即没有抛出异常,Spring框架会自动提交事务。
3. 回滚事务:如果方法执行过程中抛出了异常,Spring框架会自动回滚事务,保证数据的一致性。
4. 控制事务的传播行为:@Transactional注解还可以指定事务的传播行为,例如是否支持嵌套事务、是否支持事务的只读属性等。
下面是一个使用@Transactional注解的示例:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Transactional
public void addUser(User user) {
userDao.addUser(user);
}
@Transactional(rollbackFor = Exception.class)
public void updateUser(User user) {
userDao.updateUser(user);
}
}
```
在上面的示例中,addUser方法和updateUser方法都被@Transactional注解修饰,表示这两个方法需要进行事务管理。当调用addUser方法或updateUser方法时,Spring框架会自动为这两个方法创建一个事务,并在方法执行前开启事务,在方法执行后根据方法的执行结果决定是提交事务还是回滚事务。