jdbctemplate batchupdate 的事务管理

这篇博客探讨了在使用Spring的JdbcTemplate进行批处理更新时如何进行事务管理。作者通过实例展示了在不加显式事务管理和添加显式事务管理两种情况下的不同行为。在显式事务管理下,如果executeBatch执行过程中出现异常,所有数据都将回滚,而在没有事务管理的情况下,每条记录都会单独提交,异常只会影响出错的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

良好的心态是不断前进的 -  献给不再年轻的自己


数据库: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(

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值