Spring事务编程概述
什么是事务?
事务(Transaction):一个最小的不可再分的工作单元。通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元),一个完整的业务需要批量的DML(insert、update、delete)语句共同联合完成,事务只和DML语句有关,或者说有DML语句才有事务。业务逻辑不同,DML语句的个数不同。
事务的四大特性(ACID)?


基于注解声明式事务控制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| @Configuration @ComponentScan("com.nju") @PropertySource("classpath:jdbc.properties") @MapperScan("com.nju.mapper") @EnableTransactionManagement public class SpringConfig {
@Bean public DataSource dataSource ( @Value("${jdbc.driver}") String driver, @Value("${jdbc.url}") String url, @Value("${jdbc.username}") String username, @Value("${jdbc.password}") String password ) { DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driver); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); return dataSource; }
@Bean public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource) { SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource); return sqlSessionFactoryBean; }
@Bean public DataSourceTransactionManager transactionManager(DataSource dataSource) { DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager(); dataSourceTransactionManager.setDataSource(dataSource); return dataSourceTransactionManager; }
}
|