Spring 从数据库中批量提取 xml 条记录
Spring batch extract xml record from database
我有一个包含三列的数据库 Table:id、描述和日期,id 列是数字,描述列是一个包含 xml 行和日期列的字符串。
描述栏是这样的:
<catalog_item >
<item_number>QWZ5671</item_number>
<price>39.95</price>
<size description="Medium">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
<size description="Large">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
</catalog_item>
<catalog_item >
<item_number>RRX9856</item_number>
<price>42.50</price>
<size description="Small">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
<size description="Medium">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
</size>
</catalog_item>
具有多个嵌套标签。
所有标签都写在描述栏的同一条记录中。
我可以写一个 select 语句来从数据库中读取记录,但在这种情况下,我将有一个自定义对象,其中包含描述列中的整行,有没有办法提取所有这些节点xml 行分成单独的 java 个字段,spring 个批次。
谢谢。
这不是真正的 spring-batch 将 XML 文件转换为 DTO(或任何 java bean)的工作,您应该使用 Jaxb(或任何其他 XML映射库)。
至于 spring-batch,您可以在 FieldSetMapper(reader
和 processor
之间映射对象的组件)中调用 Jaxb。
我有一个包含三列的数据库 Table:id、描述和日期,id 列是数字,描述列是一个包含 xml 行和日期列的字符串。 描述栏是这样的:
<catalog_item >
<item_number>QWZ5671</item_number>
<price>39.95</price>
<size description="Medium">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
<size description="Large">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
</catalog_item>
<catalog_item >
<item_number>RRX9856</item_number>
<price>42.50</price>
<size description="Small">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
<color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
</size>
<size description="Medium">
<color_swatch image="red_cardigan.jpg">Red</color_swatch>
<color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
</size>
</catalog_item>
具有多个嵌套标签。 所有标签都写在描述栏的同一条记录中。 我可以写一个 select 语句来从数据库中读取记录,但在这种情况下,我将有一个自定义对象,其中包含描述列中的整行,有没有办法提取所有这些节点xml 行分成单独的 java 个字段,spring 个批次。
谢谢。
这不是真正的 spring-batch 将 XML 文件转换为 DTO(或任何 java bean)的工作,您应该使用 Jaxb(或任何其他 XML映射库)。
至于 spring-batch,您可以在 FieldSetMapper(reader
和 processor
之间映射对象的组件)中调用 Jaxb。