初步学习spring-batch
2023-12-25 10:43:30
JobLauncher
?????????负责启动Job
JobRepository
????????对整个批处理的新增、更新、执行进行记录。
Job
????????封装处理实体,定义过程逻辑。
????????定义一个Job
关键是定义好一个或多个Step
,然后把它们组装好即可。
Step
? ??Step是对Job某个过程的封装,一个Job可以包含一个或多个Step,一步步的Step按特定逻辑执行,才代表Job执行完成
定义
Step
,输入
——
处理
——
输出
,即Item Reader
、Item Processor
和Item Writer
。
- 通过
Item Reader
从文件输入数据- 通过
Item Processor
进行业务处理和数据转换- 通过
Item Writer
写到数据库中去
Spring-batch 处理csv
reader
使用FlatFileItemReader去读cvs文件
BeanWrapperFieldSetMapper<BlogInfo> fieldSetMapper = new BeanWrapperFieldSetMapper<>();
fieldSetMapper.setTargetType(BlogInfo.class);//实体类与csv做映射
return new FlatFileItemReaderBuilder<BlogInfo>()
??????? .name("reader")
???????.delimited()
??????? .names(fields) //String数组-头标签
??????? .fieldSetMapper(fieldSetMapper)//映射
??????? .build();
Step
@Bean
public Step importContractDetailStep() {
??? return new StepBuilder("importContractDetailStep", jobRepository)
??????????? .<BlogInfo,BlogInfo>chunk(CHUNK_SIZE, transactionManager)
??????????? .reader(csvReader())
??????????? .writer(chunk -> {
??????????????? List<BlogInfo> items = (List<BlogInfo>) chunk.getItems();
??????????????? service.saveBatch(items);//写进数据库
??????????? })
??????????? .build();
}
Job
@Bean
public Job importContractDetailJob(Step step) {
??? return new JobBuilder("importContractDetailJob", jobRepository)
??????????? .start(step)
??????????? .build();
}
在HeidiSQL 导出为csv
SELECT * FROM csv INTO OUTFILE 'C:\\note\\csv\\demo.csv' fields terminated by ','
文章来源:https://blog.csdn.net/LUOZONGW/article/details/135192317
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!