Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在批处理作业中的Spring批处理程序中生成新项目/CSV行_Java_Spring Batch_Export To Csv_Itemprocessor - Fatal编程技术网

Java 在批处理作业中的Spring批处理程序中生成新项目/CSV行

Java 在批处理作业中的Spring批处理程序中生成新项目/CSV行,java,spring-batch,export-to-csv,itemprocessor,Java,Spring Batch,Export To Csv,Itemprocessor,小结:我需要导出一些CSV文件,其中包含批导出期间生成的行 我已经有了一个JdbcItemreader来从我的数据库中获取数据。处理器将输出数据格式化为所需格式。我有一个基本的FlatFileItemWriter,可以编写CSV文件 这就是我导出的CSV行的外观: 040010;0006765;0001420;0008014;+00000018,00;+00000000,00;+00000018,00;+00000000,00;m06;100220;000014;030;CNAME;30;32

小结:我需要导出一些CSV文件,其中包含批导出期间生成的行

我已经有了一个JdbcItemreader来从我的数据库中获取数据。处理器将输出数据格式化为所需格式。我有一个基本的FlatFileItemWriter,可以编写CSV文件

这就是我导出的CSV行的外观:

040010;0006765;0001420;0008014;+00000018,00;+00000000,00;+00000018,00;+00000000,00;m06;100220;000014;030;CNAME;30;32

040010;0006765;0001420;0008014;+00000018,00;+00000000,00;+00000018,00;+00000000,00;m06;100220;000014;030;CNAME;30;32
我知道这些线看起来很难看,但这是另一个CSV进口商的要求。 现在我需要计算“求和线”,并将它们添加到具有相同ID的两行之前。 计算出的“总和线”应如下所示:

040010;0006765;0001420;0008014;+00000036,00;+00000000,00;+00000036,00;+00000000,00;m06;100220;000014;030;CNAME;30;31
因此,最终输出应如下所示:

040010;0006765;0001420;0008014;+00000036,00;+00000000,00;+00000036,00;+00000000,00;m06;100220;000014;030;CNAME;30;31
040010;0006765;0001420;0008014;+00000018,00;+00000000,00;+00000018,00;+00000000,00;m06;100220;000014;030;CNAME;30;32   
040010;0006765;0001420;0008014;+00000018,00;+00000000,00;+00000018,00;+00000000,00;m06;100220;000014;030;CNAME;30;32
以下是我的问题:

  • 是否可以通过FlatFileItemWriter在CSV文件的其他行之间添加行?或者我应该在写文件之前生成求和行吗
  • 是否有可能访问ItemWriter/处理器中的完整数据块?这样我就可以在将新行写入文件之前将它们添加到块中

我猜要进行聚合的行数(在本例中为总和)是可变的(不总是2)。你确认吗?这些线是连续的吗?如果在处理第一个区块后插入一条“求和线”,然后在后续区块中遇到一条具有相同id的新行,该怎么办?没错,它并不总是两行->如果在处理第一个区块后插入一条“求和线”,然后在后续区块中遇到具有相同id的新行,该怎么办?->这可能会成为一个问题。我想基于块的处理不是一条好路。。。我想使用一个简单的小任务来完成整个工作可能会变得容易得多,特别是因为你提到的问题。这就是我想提出问题的地方。一旦我找到了一个合适的方法来处理这个问题,我会为这个问题添加一些细节。