春季批处理csv:将多个标头添加到csv [英] spring batch csv:Adding multiple headers to csv
本文介绍了春季批处理csv:将多个标头添加到csv的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在csv中编写多头标头,以便第二个标头值应来自数据库
How to write mulitples header in csv such that the second header values should come from the database
//预期输出
personId,firstName,lastName,email,age
fullname,total // this is the second header which should come the database
kaa,karthi,sa,123@,34
//以下是用于春季批量写入csv的代码段
//below is the code snippet for spring batch writing to csv
@Bean(destroyMethod="")
public JdbcCursorItemReader<Person> reader(){
JdbcCursorItemReader<Person> cursorItemReader = new JdbcCursorItemReader<>();
cursorItemReader.setDataSource(dataSource);
cursorItemReader.setSql("SELECT person_id,first_name,last_name,email,age FROM springbatchdb.person");
cursorItemReader.setRowMapper(new PersonRowMapper());
return cursorItemReader;
}
@Bean(destroyMethod="")
public PersonItenProcessor processor(){
return new PersonItenProcessor();
}
@Bean(destroyMethod="")
public FlatFileItemWriter<Person> writer(){
FlatFileItemWriter<Person> writer = new FlatFileItemWriter<Person>();
String exportFileHeader = "personId,firstName,lastName,email,age";
StringHeaderWriter headerWriter = new StringHeaderWriter(exportFileHeader);
writer.setHeaderCallback(headerWriter);
writer.setResource(new ClassPathResource("person.csv"));
DelimitedLineAggregator<Person> lineAggregator = new DelimitedLineAggregator<Person>();
lineAggregator.setDelimiter(",");
BeanWrapperFieldExtractor<Person> fieldExtractor = new BeanWrapperFieldExtractor<Person>();
fieldExtractor.setNames(new String[]{"personId","firstName","lastName","email","age"});
lineAggregator.setFieldExtractor(fieldExtractor);
writer.setLineAggregator(lineAggregator);
return writer;
}
推荐答案
您可以在FlatFileHeaderCallback
中执行查询,并将结果附加到标题的第一行.
You can execute the query in a FlatFileHeaderCallback
and append the result to the first line of the header.
这篇关于春季批处理csv:将多个标头添加到csv的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文