spring批量写入mysql数据库_快速使用组件-spring batch(3)读文件数据到数据库

本文介绍如何利用Spring Batch的FlatFileItemReader和JdbcBatchItemWriter组件,从CSV文件读取数据并批量写入MySQL数据库,提高批处理开发效率。
摘要由CSDN通过智能技术生成

tags: springbatch

1.引言

上一篇文章《快速了解组件-spring batch(2)之helloworld》对Spring Batch进行了入门级的开发,也对基本的组件有了一定的了解。但实际开发过程中,更多的是涉及文件及数据库的操作,以定时后台运行的方式,实现批处理操作。典型操作是从文本数据(csv/txt等文件)中读取数据,然后写入到数据库存储。如下图所示:

a3d481121e77?utm_campaign=maleskine

读文件流程

若需要开发此过程,可以按照上一篇文章所写的,自定义ItemReader和ItemWriter来实现,但是Spring Batch其实已经提供现成的文件读取和数据库写入的组件,开发人员可以直接使用,提高开发效率。本文将会对文件读取和数据库写入进行实战介绍。

2.开发环境

JDK: jdk1.8

Spring Boot: 2.1.4.RELEASE

Spring Batch:4.1.2.RELEASE

开发IDE: IDEA

构建工具Maven: 3.3.9

日志组件logback:1.2.3

lombok:1.18.6

3.Spring Batch提供的读-处理-写组件一览

在使用Spring Batch内置的读写组件时,首先我们先弄清楚有哪些组件可以用,按读、写、处理,见下面说明。Spring Batch已提供了比较全面的支持。

3.1 ItemReader

ItemReader

说明

ListItemReader

读取List类型数据,只能读一次

ItemReaderAdapter

ItemReader适配器,可以复用现有的读操作

FlatFileItemReader

读Flat类型文件

StaxEventItemReader

读XML类型文件

JdbcCursorItemReader

基于JDBC游标方式读数据库

HibernateCursorItemReader

基于Hibernate游标方式读数据库

StoredProcedureItemReader

基于存储过程读数据库

JpaPagingItemReader

基于Jpa方式分页读数据库

JdbcPagingItemReader

基于JDBC方式分页读数据库

HibernatePagingItemReader

基于Hibernate方式分页读取数据库

JmsItemReader

读取JMS队列

IteratorItemReader

迭代方式的读组件

MultiResourceItemReader

多文件读组件

MongoItemReader

基于分布式文件存储的数据库 MongoDB读组件

Neo4jItemReader

面向网络的数据库Neo4j的读组件

ResourcesItemReader

基于批量资源的读组件,每次读取返回资源对象 AmqpItemReader读取AMQP队列组件

RepositoryItemReader

基于 Spring Data的读组件

3.2 ItemWriter

ItemWriter

说明

FlatFileItemWriter

写Flat类型文件

MultiResourceItemWriter

多文件写组件

StaxEventItemWriter

写XML类型文件

AmqpItemWriter

写AMQP类型消息

ClassifierCompositeItemWriter

根据 Classifier路由不同的Item到特定的ItemWriter处理

HiberateItemWriter

基于Hibernate方式写数据库

ItemWriterAdapter

ItemWriter适配器,可以复用现有的写服务

JdbcBatchItemWriter

基于JDBC方式写数据库

JmsItemWriter

写JMS队列 JpaItemWriter基于Jpa方式写数据库

GemfireItemWriter

基于分布式数据库Gemfire的写组件

SpELMappingGemfireItemWriter

基于Spring表达式语言写分布式数据库Gemfire的写组件

MimeMessageItemWriter

发送邮件的写组件

MongoItemWriter

基于分布式文件存储的数据库MongoDB写组件

Neo4jItemWriter

面向网络的数据库Neo4j的读组件

PropertyExtractingDelegatingI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值