良好的心态是不断前进的 - 献给不再年轻的自己
数据库:sqlserver 2014
事务管理方式:编程式事务管理
数据库访问:spring jdbctemplate
目的:测试batchupdate 的事务控制
1. 不加显式的事务管理
测试结果:batchupdate 中的每一条记录都会自动的commit,如果有异常,则只有异常的数据执行失败,其他数据不会rollback,并且后续的数据可以继续执行
2. 加显式的事务管理
batchupdate 会纳入到事务管理中,即即使executeBatch 执行多次,只要有一次exception,则所有的数据都rollback
commit 时会一次把所有的数据 提交。
测试代码:
public void test() throws Exception {
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(jdbcTemplate.getDat