mybatis批处理解决事务超时问题

本文探讨了在使用MyBatis进行批处理时遇到的事务超时问题,并提出了一种优化策略。通过调整事务隔离级别、增大事务超时时间和合理拆分批量操作,可以有效地避免事务超时,同时保持系统的稳定性和性能。
摘要由CSDN通过智能技术生成
        // 获取sqlSession工厂,sqlSessionFactory是配置文件中配置的数据库连接bean
        SqlSessionFactory sqlSessionFactory = SpringContextHolder.getBean("sqlSessionFactory");
        // 获取批处理数据源,false表示手动提交事务
        SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
        try {
            // 获取需要批处理的mapper
            FundFlowDAO fundFlowDAO = sqlSession.getMapper(FundFlowDAO.class);
            // 批量处理集合
            fundFlowDAO.batchInsertFundFlow(insertFundFlowList);
            sqlSession.commit();
        } catch (Throwable e) {
            LogUtil.error(logger, e.toString());
            sqlSession.rollback();
        } finally {
            if (sqlSession != null) {
                sqlSession.close();
            }
            LogUtil.info(logger, "endTime===" + (System.currentTimeMillis() - startTime) / 1000);
        }

/**
 * hongshiwl.com Inc.
 * Copyright (c) 2015-2016 All Rights Reser
Mybatis批处理是指在需要往数据库中插入大量数据时,使用批量方式进行操作。其中有几种常见的批处理方式可以使用。 一种是Foreach方式,通过循环遍历的方式进行批量插入、更新和删除操作。使用该方式,可以将一组数据作为参数传递给SQL语句,从而减少与数据库的交互次数。 另一种方式是Batch方式,通过一次性提交多个SQL语句来实现批量操作。这种方式可以提高数据库的操作效率,特别是在需要处理大量数据时。 此外,还可以使用preparedStatement方式进行批处理操作。这种方式通过预编译SQL语句,然后多次执行该语句来实现批量操作。预编译可以提高性能,并且可以减少SQL注入的风险。 根据已知的SQL执行效率,批处理的顺序通常是insert > delete > update。推荐的批处理方案是使用select delete insert的方式。这种方式可以在数据表中不存在记录时进行插入操作,已存在记录时进行更新操作。 总结来说,Mybatis提供了多种批处理方式,可以根据具体的需求选择合适的方式进行批量插入、更新和删除操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Mybatis批处理操作详解](https://blog.csdn.net/weixin_41979002/article/details/115858043)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [MyBatis批处理](https://blog.csdn.net/weixin_43347659/article/details/115300054)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值