springBatchは、データベースファイルにデータを出力します

少しフォロービデオデモを行います

table文の構築

CREATE  テーブル顧客(
ID BIGINT  PRIMARY  KEY 
firstNameのVARCHAR50 )、
lastNameのVARCHAR50 )、
誕生日VARCHAR50 

ディレクトリ構造

 

 

 

顧客エンティティクラス
パッケージcom.practice.itemwriterdb。

パブリッククラスカスタマー{ 
    プライベートロングID。
    プライベート文字列firstNameの; 
    プライベート文字列lastNameの。
    プライベート文字列の誕生日。
    公衆 ロングのgetId(){
         戻りID。
    } 

    公共ボイドSETID(長いID){ 
        this.id = ID。
    } 

    パブリック文字列getFirstName(){
         戻りのfirstNameと、
    } 

    公共ボイドsetFirstName(文字列firstNameの){ 
        this.firstName = firstNameの。
    }

    パブリック文字列getLastNameの(){
         戻りlastNameのを。
    } 

    公共ボイドsetLastName(文字列lastNameの){ 
        this.lastName = lastNameの。
    } 

    パブリック文字列getBirthday(){
         リターン誕生日; 
    } 

    公共ボイドsetBirthday(文字列の誕生日){ 
        this.birthday = 誕生日。
    } 

    @Override 
    パブリック文字列のtoString(){
         戻り "顧客{" + 
                "ID = " + ID +
                "のfirstName = ' " +のfirstName + ' \ ''  + 
                "とLastName = ' " + lastNameの+ ' \ ''  + 
                "誕生日= ' " +誕生日+ ' \ ''  + 
                ' } ' 
    } 




}
DemoApplication
パッケージcom.practice.itemwriterdb。

輸入org.springframework.batch.core.configuration.annotation.EnableBatchProcessing。
輸入org.springframework.boot.SpringApplication。
輸入org.springframework.boot.autoconfigure.SpringBootApplication。

@SpringBootApplication 
@EnableBatchProcessing 
パブリッククラスDemoApplication { 

    公共の静的な無効メイン(文字列[] 引数){ 
        SpringApplication.run(DemoApplication.class、引数)。
    } 

}
FlatFileReaderConfig
パッケージcom.practice.itemwriterdb。

輸入org.springframework.batch.core.configuration.annotation.StepScope; 
org.springframework.batch.itemインポートします。ファイル.FlatFileItemReader; 
org.springframework.batch.itemインポートします。ファイル.mapping.DefaultLineMapper; 
org.springframework.batch.itemインポートします。ファイル.mapping.FieldSetMapper; 
org.springframework.batch.itemインポートします。ファイル.transform.DelimitedLineTokenizer; 
org.springframework.batch.itemインポートします。ファイル.transform.FieldSet; 
輸入org.springframework.context.annotation.Bean; 
輸入org.springframework.context.annotation.Configuration。
輸入org.springframework.core.io.ClassPathResource。
輸入org.springframework.validation.BindException。

@Configuration 
パブリッククラスFlatFileReaderConfig {
     @Bean 
    公共 FlatFileItemReader <商品> flatFileReader(){ 
        FlatFileItemReader <商品>リーダー=新しいFlatFileItemReader <商品> (); 
        reader.setResource(新ClassPathResource( "customers.txt")); 
     //    reader.setLinesToSkip(1 )。

        // 解析数据
        DelimitedLineTokenizerトークナイザ新しいDelimitedLineTokenizer();= 
                customer.setId(fieldSet.readLong( "ID"))。
        tokenizer.setNames(新しい文字列[] { "ID"、 "firstNameの"、 "lastNameの"、 "誕生日"})。

        DefaultLineMapper <お客様>マッパー=新しいDefaultLineMapper <> (); 
        mapper.setLineTokenizer(トークナイザ)。
        mapper.setFieldSetMapper(新しいFieldSetMapper <商品> (){
             @Override 
            公共顧客mapFieldSet(フィールドセットフィールドセット)はBindException {スロー
                顧客顧客= 新しい顧客を();
                customer.setFirstName(fieldSet.readString( "firstNameの")); 
                customer.setLastName(fieldSet.readString( "lastNameの")); 
                customer.setBirthday(fieldSet.readString( "誕生日")); 

                戻り値の顧客; 
            } 
        })。
        mapper.afterPropertiesSet(); 
        reader.setLineMapper(マッパー)
        リターンリーダー; 
    } 
}
ItemWriterDbConfig
パッケージcom.practice.itemwriterdb。

org.springframework.batch.itemインポートします。データベース.BeanPropertyItemSqlParameterSourceProvider; 
org.springframework.batch.itemインポートします。データベース.JdbcBatchItemWriter; 
輸入org.springframework.beans.factory.annotation.Autowired; 
輸入org.springframework.context.annotation.Bean; 
輸入org.springframework.context.annotation.Configuration。

インポートするjavax.sql.DataSource; 

@Configuration 
パブリッククラスItemWriterDbConfig {
     @Autowired 
    プライベートデータソースのdataSource。
    @Bean 
    公共 JdbcBatchItemWriter <商品> itemWriterDb(){
        JdbcBatchItemWriter <お客様>ライター=新しいJdbcBatchItemWriter <顧客> (); 
                writer.setDataSource(データソース)。
                writer.setSql( " インサート 顧客(ID、FirstNameとlastNameの、誕生日)の値 " + 
                "(:ID:FirstNameと:lastNameの、:誕生日)")。
                writer.setItemSqlParameterSourceProvider(新しいBeanPropertyItemSqlParameterSourceProvider <> ());
                リターン・ライター。

    } 
}
itemWriterDbDemo
パッケージcom.practice.itemwriterdb。

輸入org.springframework.batch.core.Job。
輸入org.springframework.batch.core.Step; 
輸入org.springframework.batch.core.configuration.annotation.JobBuilderFactory。
輸入org.springframework.batch.core.configuration.annotation.StepBuilderFactory。
輸入org.springframework.batch.item.ItemReader。
輸入org.springframework.batch.item.ItemWriter; 
org.springframework.batch.itemインポートします。ファイル.FlatFileItemReader; 
輸入org.springframework.beans.factory.annotation.Autowired; 
輸入org.springframework.beans.factory.annotation.Qualifier; 
輸入org.springframework.context.annotation.Bean;
輸入org.springframework.context.annotation.Configuration。

@Configuration 
パブリッククラスitemWriterDbDemo {
     @Autowired 
    プライベートJobBuilderFactory jobBuilderFactoryを。

    @Autowired 
    プライベートStepBuilderFactory stepBuilderFactory。
    @Autowired 
    @Qualifier ( "flatFileReader")
    ItemReader <お客様> flatFileItemReader。
    @Autowired 
    @Qualifier ( "itemWriterDb")
    ItemWriter <スーパーお客様> itemWriterDb。
    @Bean 
    公共職業itemWriterDemoDbJob(){
         リターンjobBuilderFactory.get( "itemWriterDemoDbJob")を開始(itemWriterDbDemoStep())ビルド()。。。
    } 

    @Bean 
    公共ステップitemWriterDbDemoStep(){ 


        リターン stepBuilderFactory.get( "itemWriterDbDemoStep")。<顧客、顧客>チャンク(10 
                .reader(flatFileItemReader)
                .writer(itemWriterDb)
                .build(); 
    } 
}

顧客

。1、ジョン、バレット、1994年10月19日午後2時11分03秒
2、マリア、Barrett2,1999-10-19午後2時11分03秒
。3、リサ、Barrett3,1995-10-19午後2時11分03秒
の営業成績:

 

おすすめ

転載: www.cnblogs.com/Syue/p/12507631.html