mybait-plus 多表同时插入 事物
时间: 2023-07-18 20:26:23 浏览: 117
Mybatis实现多表联合查询和批量插入
在 MyBatis-Plus 中,多表同时插入时建议使用事务来保证数据的一致性和完整性。MyBatis-Plus 提供了多种方式实现事务控制,以下是其中一种方式:
1. 在启动类上加上 @EnableTransactionManagement 注解启用事务管理。
例如:
```
@SpringBootApplication
@EnableTransactionManagement
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
2. 在 Service 层的方法上添加 @Transactional 注解启用事务控制。在注解中可以指定事务的传播行为、隔离级别、超时时间等属性。
例如:
```
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Autowired
private AccountMapper accountMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void insertUserAndAccount(User user, Account account) {
userMapper.insert(user);
accountMapper.insert(account);
}
}
```
在 Service 层的方法中,使用 @Transactional 注解来启用事务控制。在注解中指定 rollbackFor 属性,用于指定需要回滚的异常类型。如果发生异常,事务会自动回滚,保证数据的一致性和完整性。
需要注意的是,在使用事务控制时,事务的边界要尽量小,只包含必要的操作,避免长时间锁定数据库,影响其他操作的性能。
阅读全文