一、使用文章Spring-事务中的环境
二、配置类
@Configuration
@ComponentScan(basePackages = "com.wsh")
@MapperScan(basePackages = "com.wsh.mapper")
@PropertySource(value = "classpath:myProperty.properties")
@EnableTransactionManagement(proxyTargetClass = true)
public class SpringConfig {
@Value("${my.driver}")
private String driver;
@Value("${my.url}")
private String url;
@Value("${my.username}")
private String username;
@Value("${my.password}")
private String password;
@Bean
public DataSource getDataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setDriverClassName(driver);
druidDataSource.setUrl(url);
druidDataSource.setUsername(username);
druidDataSource.setPassword(password);
return druidDataSource;
}
@Bean
public SqlSessionFactoryBean getSqlSessionFactoryBean(DataSource dataSource) throws IOException {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
String resource = "mybatis-config.xml";
sqlSessionFactoryBean.setConfigLocation(new PathMatchingResourcePatternResolver().getResource(resource));
return sqlSessionFactoryBean;
}
@Bean
public DataSourceTransactionManager getDataSourceTransactionManager(DataSource dataSource){
DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();
dataSourceTransactionManager.setDataSource(dataSource);
return dataSourceTransactionManager;
}
}
三、JAVA程序
public void test(){
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
AccountService accountService = context.getBean("accountServiceImpl", AccountServiceImpl.class);
accountService.updateAccountTest();
}
执行前的表数据
1 张三 100
2 李四 100
输出
java.lang.ArithmeticException: / by zero
at com.wsh.service.AccountServiceImpl.updateAccountTest(AccountServiceImpl.java:30)
at MyTest.test(MyTest.java:25)
执行后的表数据
1 张三 100
2 李四 100