1.maven加相关依赖,让项目能使用spring boot和mybatis
2.只需在需要执行事务的方法上加上注释即可
@Transactional(rollbackFor = {RuntimeException.class, Error.class})
public void dealMessage() {
dao.insert1("1");
dao.insert2("2");
}
等insert2执行完,事务才完成,数据库才能看到有2条数据插入。
如果insert2报错了,则事务会回滚,数据库不会插入任何数据。
3.如果项目配置了多数据源,事务只使用默认那个数据源
@Bean
@Primary
public DynamicDataSource dataSource(@Qualifier("ds1Write") DataSource ds1Write, @Qualifier("ds1Read") DataSource ds1Read) {
Map<Object, Object> targetDataSources = new HashMap<>();
targetDataSources.put(DataSourceType.ds1Write, ds1Write);
targetDataSources.put(DataSourceType.ds1Read, ds1Read);
DynamicDataSource dataSource = new DynamicDataSource();
dataSource.setTargetDataSources(targetDataSources);
设置默认的数据源为ds1Write
dataSource.setDefaultTargetDataSource(ds1Write);
return dataSource;
}