springBatch envoie le fichier de données à la base de données

Faites une démonstration vidéo peu de suivi

La construction de la déclaration de table

CREATE  table de client ( 
id BIGINT  PRINCIPAL  KEY , 
prenom VARCHAR ( 50 ), 
lastName VARCHAR ( 50 ), 
anniversaire VARCHAR ( 50 ) 

)

Structure de répertoire

 

 

 

classe d'entité client
emballer com.practice.itemwriterdb; 

publique classe client { 
    privée longue id; 
    private String prenom; 
    private String lastName; 
    private String anniversaire; 
    publique à  long getId () {
         retour id; 
    } 

    Publique setId void ( longue id) { 
        this.id = id; 
    } 

    Publique Chaîne getFirstName () {
         retour prenom; 
    } 

    Publique setFirstName vide (String prenom) { 
        this.firstName = prenom; 
    }

    publique Chaîne getLastName () {
         retour lastName; 
    } 

    Publique setLastName vide (String lastName) { 
        this.lastName = lastName; 
    } 

    Publique Chaîne getBirthday () {
         retour anniversaire; 
    } 

    Publique setBirthday void (anniversaire String) { 
        this.birthday = anniversaire; 
    } 

    @Override 
    publique String toString () {
         retour "client {" + 
                "id = " + id +
                "Prenom = ' " + prenom + ' \ ''  + 
                "lastName = ' " + lastName + ' \ ''  + 
                "anniversaire = ' " + anniversaire + ' \ ''  + 
                ' } ' ; 
    } 




}
DemoApplication
emballer com.practice.itemwriterdb; 

importation org.springframework.batch.core.configuration.annotation.EnableBatchProcessing; 
importation org.springframework.boot.SpringApplication; 
importation org.springframework.boot.autoconfigure.SpringBootApplication; 

@SpringBootApplication 
@EnableBatchProcessing 
publique classe DemoApplication { 

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

}
FlatFileReaderConfig
emballer com.practice.itemwriterdb; 

importation org.springframework.batch.core.configuration.annotation.StepScope; 
importer org.springframework.batch.item. déposer .FlatFileItemReader; 
importer org.springframework.batch.item. déposer .mapping.DefaultLineMapper; 
importer org.springframework.batch.item. déposer .mapping.FieldSetMapper; 
importer org.springframework.batch.item. déposer .transform.DelimitedLineTokenizer; 
importer org.springframework.batch.item. déposer .transform.FieldSet; 
importation org.springframework.context.annotation.Bean; 
importation org.springframework.context.annotation.Configuration;
importation org.springframework.core.io.ClassPathResource;
importation org.springframework.validation.BindException; 

@Configuration 
publique classe FlatFileReaderConfig {
     @Bean 
    publique FlatFileItemReader < Client > flatFileReader () { 
        FlatFileItemReader < Client > lecteur = nouveau FlatFileItemReader < Client > (); 
        reader.setResource (nouveau ClassPathResource ( "Customers.txt")); 
     //    reader.setLinesToSkip ( 1 ); 

        // 解析数据
        DelimitedLineTokenizer tokenizer = nouveau DelimitedLineTokenizer ();
        tokenizer.setNames (new String [] { "id", "prenom", "lastName", "anniversaire"}); 

        DefaultLineMapper < Client > mappeur = nouveau DefaultLineMapper <> (); 
        mapper.setLineTokenizer (tokenizer); 
        mapper.setFieldSetMapper (nouveau FieldSetMapper < Client > () {
             @Override 
            publique (FieldSet FIELDSET) mapFieldSet Client lance BindException { 
                Client client = nouveau client (); 
                customer.setId (fieldSet.readLong ( "id"));
                customer.setFirstName (fieldSet.readString ( "firstName")); 
                customer.setLastName (fieldSet.readString ( "Nom")); 
                customer.setBirthday (fieldSet.readString ( "anniversaire")); 

                retour à la clientèle; 
            } 
        }); 
        mapper.afterPropertiesSet (); 
        reader.setLineMapper (mapper); 
        retourner lecteur; 
    } 
}
ItemWriterDbConfig
emballer com.practice.itemwriterdb; 

importer org.springframework.batch.item. base de données .BeanPropertyItemSqlParameterSourceProvider; 
importer org.springframework.batch.item. base de données .JdbcBatchItemWriter; 
importation org.springframework.beans.factory.annotation.Autowired; 
importation org.springframework.context.annotation.Bean; 
importation org.springframework.context.annotation.Configuration; 

importation javax.sql.DataSource; 

@Configuration 
publique classe ItemWriterDbConfig {
     @Autowired 
    DataSource privée dataSource; 
    @Bean 
    publique JdbcBatchItemWriter < Client > itemWriterDb () {
        JdbcBatchItemWriter < Client > auteur = nouveau JdbcBatchItemWriter < Client > (); 
                writer.setDataSource (dataSource); 
                ( "writer.setSql insert  dans le client (id, nom, prénom, anniversaire) valeurs " + 
                "(: id,: firstName, lastName,: anniversaire)"); 
                writer.setItemSqlParameterSourceProvider (nouveau BeanPropertyItemSqlParameterSourceProvider <> ());
                retour écrivain; 

    } 
}
itemWriterDbDemo
emballer com.practice.itemwriterdb; 

importation org.springframework.batch.core.Job; 
importation org.springframework.batch.core.Step; 
importation org.springframework.batch.core.configuration.annotation.JobBuilderFactory; 
importation org.springframework.batch.core.configuration.annotation.StepBuilderFactory; 
importation org.springframework.batch.item.ItemReader; 
importation org.springframework.batch.item.ItemWriter; 
importer org.springframework.batch.item. déposer .FlatFileItemReader; 
importation org.springframework.beans.factory.annotation.Autowired; 
importation org.springframework.beans.factory.annotation.Qualifier; 
importation org.springframework.context.annotation.Bean;
importation org.springframework.context.annotation.Configuration; 

@Configuration 
publique classe itemWriterDbDemo {
     @Autowired 
    JobBuilderFactory privée jobBuilderFactory; 

    @Autowired 
    StepBuilderFactory privé stepBuilderFactory; 
    @Autowired 
    @Qualifier ( "flatFileReader") 
    ItemReader < Client > flatFileItemReader;
    @Autowired 
    @Qualifier ( "itemWriterDb") 
    ItemWriter < ? super - client > itemWriterDb;
    @Bean 
    publique Job itemWriterDemoDbJob () {
         retour jobBuilderFactory.get ( "itemWriterDemoDbJob") départ (itemWriterDbDemoStep ()) build ().. 
    } 

    @Bean 
    publiqueÉtape itemWriterDbDemoStep () { 


        retour stepBuilderFactory.get ( "itemWriterDbDemoStep"). < Client, > gros morceau ( 10 ) 
                .reader (flatFileItemReader) 
                .writer (itemWriterDb) 
                .build (); 
    } 
}

les clients

. 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
résultats d'exploitation :

 

Je suppose que tu aimes

Origine www.cnblogs.com/Syue/p/12507631.html
conseillé
Classement