java - 用于从文件中批量插入项目的 Spring jdbc 编程事务

标签 java spring jdbc transactions

我正在改进一个数据加载器,它从平面文件中读取数据,并使用 jdbctemplate 批量插入每 500 个项目。我正在使用 java 执行器固定线程池来提交任务,它会读取每个文件并进行批量更新。例如,当读取第一个文件时,如果在第 3 个批量插入期间失败,则需要回滚该文件的所有先前的批量插入。该任务应继续处理下一个文件并创建一个新的事务用于插入。我需要一个可以做到这一点的代码。目前,我正在使用 transactiontemplate 并将批插入代码包装在 doInTransactionwithoutcallback 中,并在 catch block 中调用 transaction status.setrollbackonly 发生异常期间。但我需要一个可以为下一个文件创建新事务的代码,无论最后一个文件是失败还是成功。设置传播到需要新的解决方案吗?

最佳答案

正如肖恩评论的那样,你不应该重新发明整个事情,并使用 Spring Batch相反。

Spring Batch 将允许您:

它已经存在 => 已编码、经过测试并且很棒。

关于java - 用于从文件中批量插入项目的 Spring jdbc 编程事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7867642/

相关文章:

java - 将参数传递给来自 xml 的不同切入点的相同切面方法

json - Spring Boot : Return a empty JSON instead of empty body when returned object is null

java - SpringBoot WhiteLabel 更改包时出错

java - 从 JComboBox 列表中删除多余的空白和指定的行

java - 为什么如果我使用循环作为输入,算法会变慢

java - 如何在 mule 中将具有数千条记录的管道分隔文件转换为 XML

java - spring 上下文中的多个 AsyncAnnotationBeanPostProcessor

java - 在 Java 中从 Dao 类保存数组

java - 使用 UCanAccess 对结果集应用更新仅更新第一行

java - Spring 什么时候不应该提交? (与 Oracle 自动提交相关)