Java spring批处理csv:向csv添加多个标题
如何在csv中写入多个标头,以便第二个标头值来自数据库 //预期产量Java spring批处理csv:向csv添加多个标题,java,spring,spring-boot,csv,spring-batch,Java,Spring,Spring Boot,Csv,Spring Batch,如何在csv中写入多个标头,以便第二个标头值来自数据库 //预期产量 personId,firstName,lastName,email,age fullname,total // this is the second header which should come the database kaa,karthi,sa,123@,34 //下面是spring批量写入csv的代码片段 @Bean(destroyMethod="") public JdbcCursorItemReade
personId,firstName,lastName,email,age
fullname,total // this is the second header which should come the database
kaa,karthi,sa,123@,34
//下面是spring批量写入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;
}
@Bean(destromethod=”“)
公共JdbcCursorItemReader(){
JdbcCursorItemReader cursorItemReader=新的JdbcCursorItemReader();
setDataSource(dataSource);
setSql(“从springbatchdb.person中选择人员id、名字、姓氏、电子邮件、年龄”);
setRowMapper(新的PersonRowMapper());
返回游标阅读器;
}
@Bean(方法=”)
公共个人处理器处理器(){
返回新的PersoninProcessor();
}
@Bean(方法=”)
公共FlatFileItemWriter编写器(){
FlatFileItemWriter writer=新的FlatFileItemWriter();
String exportFileHeader=“personId,firstName,lastName,email,age”;
StringHeaderWriter-headerWriter=新StringHeaderWriter(exportFileHeader);
writer.setHeaderCallback(headerWriter);
writer.setResource(新类路径资源(“person.csv”);
DelimitedLineAggregator lineAggregator=新的DelimitedLineAggregator();
lineAggregator.setDelimiter(“,”);
BeanWrapperFieldExtractor字段提取器=新的BeanWrapperFieldExtractor();
setNames(新字符串[]{“personId”、“firstName”、“lastName”、“email”、“age”});
lineAggregator.setFieldExtractor(fieldExtractor);
writer.setLineAggregator(lineAggregator);
返回作者;
}
您可以在FlatFileHeaderCallback
中执行查询,并将结果附加到标题的第一行