0

我需要写一份工作,其中我必须读取数据库 2 次。

第一个查询只返回一条记录,我需要将此记录作为我的平面文件的标题发送。
第二个查询返回一组我需要写入同一个平面文件的记录。

我尝试为它创建一个复合编写器,并在其中提供了两个flatFileItemWriter并为两个 flatFileItemWriters 设置了相同的资源名称。但这会导致资源已存在的错误。

谁能告诉我应该遵循的方法。

提前致谢。

4

2 回答 2

1

写入两个不同的文件,FlatFileItemWriter并在第三步中附加文件。

于 2011-05-23T20:37:57.437 回答
0

考虑到返回一组记录的第二个查询,编写您的 bean。对于标题部分,您将FlatFileHeaderCallback作为属性提供给您的 FlatFileItemWriter 并在那里获取标题记录。

public class MyFileHeaderCallback implements FlatFileHeaderCallback {
    @Override
    public void writeHeader(Writer writer) throws IOException {
        writer.write("#I have this line from a query");
    }
}

<bean id="headerCallback" class="com.file.MyFileHeaderCallback" />

<bean id="productItemWriter" class="org.*.file.FlatFileItemWriter">
<property name="headerCallback" ref="headerCallback" />
<!-- other necessary methods for your Writer -->
</bean>
于 2012-07-14T17:11:56.930 回答