Spring批量提取数据库

时间:2016-10-24 09:45:52

标签: xml database spring-batch record

我有一个包含三列的数据库表:id,description和date,id列是数字,description列是一个包含xml行和日期列的字符串。 description列是这样的:

  <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的所有这些节点使用spring批处理进入单独的java字段。

THKS。

1 个答案:

答案 0 :(得分:2)

将XML文件转换为DTO(或任何java bean)并不是真正的春季批处理工作,您应该使用类似Jaxb(或任何其他XML映射库)的东西。

对于spring-batch,你可以在FieldSetMapper(映射对象的readerprocessor之间的一个组件)中调用Jaxb。