我正在寻找一种在数据库中插入三个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;something new
T;1;503.45
它有一个标题,N行数据(以'D'开头)和尾部(以'T'开头)。
我已经使用org.springframework.batch.item.file.transform.LineAggregator
类对该行进行分组,然后再将其传递给Processor类。我怀疑的是如何使用标题+数据+尾部信息在数据库中插入一行。如何将标题,数据和尾部信息保存在数据库中的同一记录中。
我还使用org.springframework.classify.Classifier
类将每个bean分组到相应的编写器。
有办法吗?
感谢。
答案 0 :(得分:0)
您可以查看this官方论坛帖子或名为Multiline Order的春季批量示例 重点是
ItemReader<YouBeanClass>
个自定义ItemReader<FieldSet>
代表,负责根据记录标题(FieldSet
)创建正确的H,D,T
PatternMatchingCompositeLineTokenizer
以创建权利FieldSet
(在第1点附加到ItemReader<FieldSet>
)ItemReader<YouBeanClass>
重写ItemReader.read()
并从每个H(D+)T
记录范围构建一个YourBeanClass 之后你有一个完全构造的YourBeanClass
对象。