我低于编写春季批的要求。我想知道实现它的最佳方法。
输入:包含报告数据的相对较大的文件(今天) 处理方式: 1.根据今天的报告数据更新每日表和每月表 每日表格-只需根据ID更新计数 月度表格:将今天的计数添加到现有值中
我担心的是: 1.由于数据量巨大,我最终可能要进行多个数据库事务。如何批量执行此操作? 2.要添加到月度表的现有计数中,我必须随身携带现有计数。我可能必须事先维护地图。但这是一种以这种方式进行处理的好方法吗?
请提出我应该遵循的方法,如果有的话请举个例子?
谢谢。
答案 0 :(得分:0)
您可以设计一个面向块的步骤,首先将每日数据从文件插入表中。完成此步骤后,可以使用步骤执行侦听器,并且在afterStep
方法中,您将拥有步骤执行的句柄,可以在其中使用StepExecution#getWriteCount
获得写入计数。您可以将此计数写入月度表。
- 由于数据量巨大,我可能最终要进行多个数据库事务。如何批量执行此操作?
通过面向块的步骤,数据已经被批量写入(每个块一个事务)。即使您的输入文件很大,此模型也可以很好地工作。
- 要添加到月度表的现有计数中,我必须拥有现有计数。我可能必须事先维护地图。但这是一种以这种方式进行处理的好方法吗?
无需将信息存储在映射中,您可以从上述步骤之后的步骤执行中获取写入计数。
希望这会有所帮助。