事务:
可以理解为一个事务对应的是一组完整的业务,并且在这个事务中所作的一切操作要么全部成功,
要么全部失败,只要有一个操作没成功,整个事务都将回滚到事务开始前.
比如:银行取钱,你去取钱,你钱取出来了,卡里面的钱居然没少,所以要用事物来绑定这两者
要么成功要么一起失败;
1.首先在配置类中
设置事物管理器的@Bean
@Bean
public DataSourceTransactionManager dataSourceTransactionManager(DataSource dataSource){
DataSourceTransactionManager dstm = new DataSourceTransactionManager();
dstm .setDataSource(dataSource);
return dataSourceTransactionManager;
}
2.加载配置类
@Import({JdbcConfig.class,MyBatisConfig.class})
public class SpringConfig {
}
因为我们的配置写在jdbcConfig类里面就导入这个类了
3.因为我们是用的注解开发所以要开启注解开发的驱动
开启注解事务驱动@EnableTransactionManagement(xxx)
@EnableTransactionManagement
@Import({JdbcConfig.class,MyBatisConfig.class})
public class SpringConfig {
}
4.在想要加载注解的地方开启注解
加上此@Transactional
写在类上面表示下面的所有方法都添加了事物
在方法上写表示本方法添加事物
propagation = Propagation.REQUIRES_NEW 设置开启新的事物
@Service
@Transactional
public class BookServiceImpl implements BookService {}
@Transactional
public Boolean save(Book book) {
bookDao.save(book);
return true;
}
注解开发就完成了!