spring batch csv:Adding multiple headers to csv

旧街凉风 提交于 2020-01-16 08:12:19

问题


How to write mulitples header in csv such that the second header values should come from the database

//expected output

personId,firstName,lastName,email,age
fullname,total // this is the second header which  should come the database
kaa,karthi,sa,123@,34

//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;
}

回答1:


You can execute the query in a FlatFileHeaderCallback and append the result to the first line of the header.



来源:https://stackoverflow.com/questions/59597707/spring-batch-csvadding-multiple-headers-to-csv

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!