Java 使用Spring批处理在数据库中插入一行以获得多种记录格式
我正在寻找在数据库中插入三个bean的方法。这是我的CSV文件的一个示例:Java 使用Spring批处理在数据库中插入一行以获得多种记录格式,java,spring,csv,spring-batch,Java,Spring,Csv,Spring Batch,我正在寻找在数据库中插入三个bean的方法。这是我的CSV文件的一个示例: H;001;2013-10-30;20;R;2013-10;DESP;2;foobar D;003;3030;3032;2013-10;G;400;00001233399911;something D;003;3030;3033;2013-10;A;100;00001233399912;something else D;003;3030;3034;2013-10;V;500;00001233399913;somethin
H;001;2013-10-30;20;R;2013-10;DESP;2;foobar
D;003;3030;3032;2013-10;G;400;00001233399911;something
D;003;3030;3033;2013-10;A;100;00001233399912;something else
D;003;3030;3034;2013-10;V;500;00001233399913;something new
T;1;503.45
它有一个头,N行数据(以“D”开头),最后有一个尾(以“T”开头)
我使用了org.springframework.batch.item.file.transform.LineAggregator
类对行进行分组,然后将行传递给Processor类。我的疑问是,如何使用header+data+tail信息在数据库中插入一行。如何将标题、数据和尾部信息保存在数据库中的同一记录中
我还使用org.springframework.classify.Classifier
类将每个bean分组到相应的编写器
有办法吗
谢谢。您可以查看名为的官方论坛线程或spring批处理示例。关键是
ItemReader
委托给ItemReader
,他负责根据记录头(H,D,T
)创建正确的字段集
模式匹配CompositeLineTokenizer
来创建右侧的字段集
(在第1点附加到项目阅读器
)ItemReader
中重写ItemReader.read()
并从每个H(D+)T
记录范围建立YourBeanClassYourBeanClass
对象