springBatch da salida al archivo de datos a la base de datos

Hacer un vídeo de demostración poco seguimiento

La construcción de la tabla de declaración

CREAR  mesa de cliente (
Identificación del BIGINT  PRIMARIA  CLAVE ,
firstName VARCHAR ( 50 ),
lastName VARCHAR ( 50 ),
cumpleaños VARCHAR ( 50 )

)

Estructura de directorios

 

 

 

clase de entidad de cliente
com.practice.itemwriterdb empaquetar;

pública class Cliente {
    privada de largo Identificación;
    primerNombre cadena privada;
    lastName cadena privada;
    cumpleaños cadena privada;
    pública  a largo getId () {
         retorno de la identificación;
    }

    pública setId vacío ( larga id) {
        this.id = Identificación;
    }

    pública Cadena getFirstName () {
         volver primerNombre;
    }

    pública setFirstName vacío (String primerNombre) {
        this.firstName = firstName;
    }

    pública Cadena getLastName () {
         volver lastName;
    }

    pública setLastName vacío (String lastName) {
        this.lastName = lastName;
    }

    pública Cadena getBirthday () {
         retorno de cumpleaños;
    }

    pública setBirthday vacío (cumpleaños String) {
        this.birthday = cumpleaños;
    }

    @ Override 
    pública Cadena toString () {
         retorno "Cliente {" + 
                "id = " + ID + 
                "Nombre = ' " + Nombre + ' \ ''  + 
                "lastName = ' " + Apellido + ' \ ''  + 
                " , cumpleaños = ' "+ cumpleaños + ' \ ''  + 
                ' } ' ;
    }




}
DemoApplication
com.practice.itemwriterdb empaquetar;

org.springframework.batch.core.configuration.annotation.EnableBatchProcessing importación;
org.springframework.boot.SpringApplication importación;
org.springframework.boot.autoconfigure.SpringBootApplication importación;

@SpringBootApplication 
@EnableBatchProcessing 
pública DemoApplication clase {

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

}
FlatFileReaderConfig
com.practice.itemwriterdb empaquetar;

org.springframework.batch.core.configuration.annotation.StepScope importación;
importar org.springframework.batch.item. presentar .FlatFileItemReader;
importar org.springframework.batch.item. presentar .mapping.DefaultLineMapper;
importar org.springframework.batch.item. presentar .mapping.FieldSetMapper;
importar org.springframework.batch.item. presentar .transform.DelimitedLineTokenizer;
importar org.springframework.batch.item. presentar .transform.FieldSet;
org.springframework.context.annotation.Bean importación;
org.springframework.context.annotation.Configuration importación;
org.springframework.core.io.ClassPathResource importación;
org.springframework.validation.BindException importación;

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

        // datos de análisis sintáctico
        DelimitedLineTokenizer tokenizer = nuevo DelimitedLineTokenizer ();
        tokenizer.setNames (nueva cadena [] { "id", "Nombre", "Apellido", "Cumpleaños"});

        DefaultLineMapper < Cliente > asignador = nueva DefaultLineMapper <> ();
        mapper.setLineTokenizer (tokenizer);
        mapper.setFieldSetMapper (nueva FieldSetMapper < Cliente > () {
             @ Override 
            pública Cliente mapFieldSet (FIELDSET FIELDSET) lanza BindException {
                Customercustomer = nuevo cliente ();
                customer.setId (fieldSet.readLong ( "id"));
                customer.setFirstName (fieldSet.readString ( "Nombre"));
                customer.setLastName (fieldSet.readString ( "Apellido"));
                customer.setBirthday (fieldSet.readString ( "cumpleaños"));

                devolver al cliente;
            }
        });
        mapper.afterPropertiesSet ();
        reader.setLineMapper (mapper);
        volver lector;
    }
}
ItemWriterDbConfig
com.practice.itemwriterdb empaquetar;

importar org.springframework.batch.item. base de datos de .BeanPropertyItemSqlParameterSourceProvider;
importar org.springframework.batch.item. base de datos de .JdbcBatchItemWriter;
org.springframework.beans.factory.annotation.Autowired importación;
org.springframework.context.annotation.Bean importación;
org.springframework.context.annotation.Configuration importación;

javax.sql.DataSource importación;

@Configuration 
pública clase ItemWriterDbConfig {
     @Autowired
    dataSource origen de datos privada;
    @Bean 
    pública JdbcBatchItemWriter < Cliente > itemWriterDb () {
        JdbcBatchItemWriter < Cliente > escritor = nueva JdbcBatchItemWriter < Cliente > ();
                writer.setDataSource (dataSource);
                writer.setSql ( " de inserción  en cliente, nombre, apellido, fecha de nacimiento) (id valores " +
                "(: Id,: nombre,: lastName, cumpleaños)");
                writer.setItemSqlParameterSourceProvider (nuevo BeanPropertyItemSqlParameterSourceProvider <> ());
                volver escritor;

    }
}
itemWriterDbDemo
com.practice.itemwriterdb empaquetar;

org.springframework.batch.core.Job importación;
org.springframework.batch.core.Step importación;
org.springframework.batch.core.configuration.annotation.JobBuilderFactory importación;
org.springframework.batch.core.configuration.annotation.StepBuilderFactory importación;
org.springframework.batch.item.ItemReader importación;
org.springframework.batch.item.ItemWriter importación;
importar org.springframework.batch.item. presentar .FlatFileItemReader;
org.springframework.beans.factory.annotation.Autowired importación;
org.springframework.beans.factory.annotation.Qualifier importación;
org.springframework.context.annotation.Bean importación;
org.springframework.context.annotation.Configuration importación;

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

    @Autowired
    stepBuilderFactory StepBuilderFactory privado;
    @Autowired 
    @Qualifier ( "flatFileReader")
    ItemReader < Cliente > flatFileItemReader;
    @Autowired 
    @Qualifier ( "itemWriterDb")
    ItemWriter < ? súper Cliente > itemWriterDb;
    @Bean 
    pública de empleo itemWriterDemoDbJob () {
         volver jobBuilderFactory.get ( "itemWriterDemoDbJob") se inicia (itemWriterDbDemoStep ()) build ()..;
    }

    @Bean 
    pública Paso itemWriterDbDemoStep () {


        retorno stepBuilderFactory.get ( "itemWriterDbDemoStep"). < Cliente, el Cliente > trozo ( 10 )
                .reader (flatFileItemReader)
                .writer (itemWriterDb)
                .construir();
    }
}

clientes

. 1, John Barrett, 1994-10-19 14:11:03 
2, María, Barrett2,1999-10-19 14:11:03
. 3, Lisa, 14:11:03 Barrett3,1995-10-19
resultados operativos :

 

Supongo que te gusta

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