springBatch gera o arquivo de dados para o banco de dados

Fazer uma demonstração de vídeo pouco acompanhamento

Construção da declaração de mesa

CRIAR  mesa cliente ( 
ID de BIGINT  PRIMARY  KEY , 
firstName VARCHAR ( 50 ), 
lastName VARCHAR ( 50 ), 
aniversário VARCHAR ( 50 ) 

)

Estrutura de Diretórios

 

 

 

classe de entidade Customer
empacotar com.practice.itemwriterdb; 

público classe Cliente { 
    private longa id; 
    firstName private String; 
    lastName private String; 
    aniversário private String; 
    pública  de longo getId () {
         return id; 
    } 

    Pública setId void ( long id) { 
        this.id = id; 
    } 

    Pública de Cordas getFirstName () {
         retornar firstName; 
    } 

    Pública setFirstName vazio (String firstName) { 
        this.firstName = firstName; 
    }

    pública de Cordas getLastName () {
         retornar lastName; 
    } 

    Pública setLastName vazio (String lastName) { 
        this.lastName = lastName; 
    } 

    Pública getBirthday String () {
         return aniversário; 
    } 

    Pública setBirthday void (aniversário String) { 
        this.birthday = aniversário; 
    } 

    @Override 
    pública de Cordas toString () {
         return "Cliente {" + 
                "id = " + ID +
                "FirstName = ' " + firstName + ' \ ''  + 
                "lastName = ' " + lastName + ' \ ''  + 
                "aniversário = ' " + aniversário + ' \ ''  + 
                ' } ' ; 
    } 




}
DemoApplication
empacotar com.practice.itemwriterdb; 

importação org.springframework.batch.core.configuration.annotation.EnableBatchProcessing; 
importação org.springframework.boot.SpringApplication; 
importação org.springframework.boot.autoconfigure.SpringBootApplication; 

@SpringBootApplication 
@EnableBatchProcessing 
pública DemoApplication classe { 

    público static void main (String [] args) { 
        SpringApplication.run (DemoApplication.class, args); 
    } 

}
FlatFileReaderConfig
empacotar com.practice.itemwriterdb; 

importação org.springframework.batch.core.configuration.annotation.StepScope; 
importar org.springframework.batch.item. arquivo .FlatFileItemReader; 
importar org.springframework.batch.item. arquivo .mapping.DefaultLineMapper; 
importar org.springframework.batch.item. arquivo .mapping.FieldSetMapper; 
importar org.springframework.batch.item. arquivo .transform.DelimitedLineTokenizer; 
importar org.springframework.batch.item. arquivo .transform.FieldSet; 
importação org.springframework.context.annotation.Bean; 
importação org.springframework.context.annotation.Configuration;
importação org.springframework.core.io.ClassPathResource;
importação org.springframework.validation.BindException; 

@Configuration 
pública classe FlatFileReaderConfig {
     @Bean 
    pública FlatFileItemReader < Cliente > flatFileReader () { 
        FlatFileItemReader < Cliente > reader = new FlatFileItemReader < Cliente > (); 
        reader.setResource (novo ClassPathResource ( "Customers.txt")); 
     //    reader.setLinesToSkip ( 1 ); 

        // 解析数据
        DelimitedLineTokenizer tokenizer=  novo DelimitedLineTokenizer ();
        Tokenizer.setNames (new String [] { "id", "Nome", "Sobrenome", "aniversário"}); 

        DefaultLineMapper < Cliente > mapeador = new DefaultLineMapper <> (); 
        mapper.setLineTokenizer (tokenizador); 
        mapper.setFieldSetMapper (novo FieldSetMapper < Cliente > () {
             @Override 
            pública Cliente mapFieldSet (conjunto de campos Fieldset) lança BindException { 
                Cliente = new Cliente (); 
                customer.setId (fieldSet.readLong ( "id"));
                customer.setFirstName (fieldSet.readString ( "firstName")); 
                customer.setLastName (fieldSet.readString ( "lastName")); 
                customer.setBirthday (fieldSet.readString ( "aniversário")); 

                retornar ao cliente; 
            } 
        }); 
        mapper.afterPropertiesSet (); 
        reader.setLineMapper (mapper); 
        voltar leitor; 
    } 
}
ItemWriterDbConfig
empacotar com.practice.itemwriterdb; 

importar org.springframework.batch.item. banco de dados .BeanPropertyItemSqlParameterSourceProvider; 
importar org.springframework.batch.item. banco de dados .JdbcBatchItemWriter; 
importação org.springframework.beans.factory.annotation.Autowired; 
importação org.springframework.context.annotation.Bean; 
importação org.springframework.context.annotation.Configuration; 

importação javax.sql.DataSource; 

@Configuration 
pública classe ItemWriterDbConfig {
     @Autowired 
    private DataSource dataSource; 
    @Bean 
    pública JdbcBatchItemWriter < Cliente > itemWriterDb () {
        JdbcBatchItemWriter < Cliente > escritor = new JdbcBatchItemWriter < Cliente > (); 
                writer.setDataSource (dataSource); 
                writer.setSql ( " inserção  no cliente (id, nome, sobrenome, aniversário) valores " + 
                "(: id,: firstName,: lastName,: aniversário)"); 
                writer.setItemSqlParameterSourceProvider (novo BeanPropertyItemSqlParameterSourceProvider <> ());
                voltar escritor; 

    } 
}
itemWriterDbDemo
empacotar com.practice.itemwriterdb; 

importação org.springframework.batch.core.Job; 
importação org.springframework.batch.core.Step; 
importação org.springframework.batch.core.configuration.annotation.JobBuilderFactory; 
importação org.springframework.batch.core.configuration.annotation.StepBuilderFactory; 
importação org.springframework.batch.item.ItemReader; 
importação org.springframework.batch.item.ItemWriter; 
importar org.springframework.batch.item. arquivo .FlatFileItemReader; 
importação org.springframework.beans.factory.annotation.Autowired; 
importação org.springframework.beans.factory.annotation.Qualifier; 
importação org.springframework.context.annotation.Bean;
importação org.springframework.context.annotation.Configuration; 

@Configuration 
pública classe itemWriterDbDemo {
     @Autowired 
    jobBuilderFactory JobBuilderFactory privado; 

    @Autowired 
    privada StepBuilderFactory stepBuilderFactory; 
    @Autowired 
    @Qualifier ( "flatFileReader") 
    ItemReader < Cliente > flatFileItemReader;
    @Autowired 
    @Qualifier ( "itemWriterDb") 
    ItemWriter < ? Super Cliente > itemWriterDb;
    @Bean 
    pública itemWriterDemoDbJob Job () {
         return jobBuilderFactory.get ( "itemWriterDemoDbJob") começar (itemWriterDbDemoStep ()) build ()..; 
    } 

    @Bean 
    públicaPasso itemWriterDbDemoStep () { 


        retornar stepBuilderFactory.get ( "itemWriterDbDemoStep"). < Cliente, o Cliente > pedaço ( 10 ) 
                .reader (flatFileItemReader) 
                .writer (itemWriterDb) 
                .build (); 
    } 
}

clientes

. 1, John Barrett, 1994-10-19 14:11:03 
2, Mary, Barrett2,1999-10-19 14:11:03
. 3, Lisa, Barrett3,1995-10-19 14:11:03
resultados operacionais :

 

Acho que você gosta

Origin www.cnblogs.com/Syue/p/12507631.html
Recomendado
Clasificación