CsvBatchJobConfig.java 3.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
//package com.kwan.springbootkwan.config;
//
//import com.kwan.springbootkwan.entity.Person;
//import org.springframework.batch.core.Job;
//import org.springframework.batch.core.Step;
//import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
//import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
//import org.springframework.batch.core.configuration.annotation.StepScope;
//import org.springframework.batch.item.database.BeanPropertyItemSqlParameterSourceProvider;
//import org.springframework.batch.item.database.JdbcBatchItemWriter;
//import org.springframework.batch.item.file.FlatFileItemReader;
//import org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper;
//import org.springframework.batch.item.file.mapping.DefaultLineMapper;
//import org.springframework.batch.item.file.transform.DelimitedLineTokenizer;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.core.io.ClassPathResource;
//
//import javax.sql.DataSource;
//
//@Configuration
//public class CsvBatchJobConfig {
//
//
//    @Autowired
//    JobBuilderFactory jobBuilderFactory;
//    @Autowired
//    StepBuilderFactory stepBuilderFactory;
//    @Autowired
//    DataSource dataSource;
//
//
//    @Bean
//    @StepScope
//    FlatFileItemReader<Person> itemReader() {
//        FlatFileItemReader<Person> reader = new FlatFileItemReader<>();
//        reader.setLinesToSkip(1);
//        reader.setResource(new ClassPathResource("data.csv"));
//        reader.setLineMapper(new DefaultLineMapper<Person>() {{
//            setLineTokenizer(new DelimitedLineTokenizer() {
//                {
//                    setNames("id", "username", "address", "gender");
//                    //配置列与列之间的间隔符(将通过间隔符对每一行的数据进行切分),最后设置要映射的实体类属性即可
//                    setDelimiter(",");
//                }
//            });
//            setFieldSetMapper(new BeanWrapperFieldSetMapper<Person>() {
//                {
//                    setTargetType(Person.class);
//                }
//            });
//
//        }});
//        return reader;
//    }
//
//    @Bean
//    public JdbcBatchItemWriter jdbcBatchItemWriter() {
//        JdbcBatchItemWriter writer = new JdbcBatchItemWriter();
//        writer.setDataSource(dataSource);
//        writer.setSql("insert into person(id, username,address,gender)" + "values (:id, :username, :address, :gender)");
//        writer.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider<>());
//        return writer;
//    }
//
//    @Bean
//    Step csvStep() {
//        return stepBuilderFactory.get("csvStep")
//                .<Person, Person>chunk(2)
//                .reader(itemReader())
//                .writer(jdbcBatchItemWriter())
//                .build();
//    }
//
//    @Bean
//    Job csvJob() {
//        return jobBuilderFactory.get("csvJob")
//                .start(csvStep())
//                .build();
//
//    }
//}