问题描述
我必须设计一个 spring 批处理作业,它从数据库中读取(假设 JdbcCursorItemReader)并将数据写入 XML(复杂的 xml,如下所示)。 我有以下疑问。 一种)。 XML 不应超过 8k 条记录。如果有更多记录,则需要编写一个新的 XML。 例如 从数据库中提取了 10K 条记录。 REQ_1.xml -> 8k 记录 REQ_2.xml -> 2k 条记录
b)。如何在为两个 xml 编写 XML 时动态附加 Header 块(标题和摘要)。
提前致谢。
xml结构如下
<?xml version="1.0" encoding="UTF-8"?>
<faxml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ST_BD0.xsd">
<header>
<extsysname>CU</extsysname>
<datpost>2013-04-20</datpost>
</header>
<summary>
<countdr>4000</countdr>
<countcr>4000</countcr>
<sumdr>1600000.00</sumdr>
<sumcr>1600000.00</sumcr>
</summary>
<txnlist>
<txndata>
<debit>
<accountno>6000000000029</accountno>
<amount>400.00</amount>
</debit>
<credit>
<accountno>022222222222222</accountno>
<amount>400.00</amount>
</credit>
</txndata>
<txndata>
<debit>
<accountno>6000000000029</accountno>
<amount>400.00</amount>
</debit>
<credit>
<accountno>022222222222222</accountno>
<amount>400.00</amount>
</credit>
</txndata>
</txnlist>
</faxml>
解决方法
您可以为此使用 MultiResourceItemWriter 并将 itemCountLimitPerResource
设置为 8000。您还可以使用自定义 { 将后缀自定义为 _1
、_2
等{1}}。