SpringBatch简介:
Spring Batch是一个轻量级且完善的批处理框架,旨在帮助企业构建健壮高效的批处理应用。Spring Batch是Spring的子项目,使用Java语言,基于Spring框架开发,使得已经使用Spring框架的开发人员或企业更容易访问和利用企业服务。Spring Batch提供了大量可重用的组件,包括日志、跟踪、事务、作业统计、任务重启、跳过、重复和资源管理。对于数据量大、性能高的批处理任务,Spring Batch还提供了分区功能、远程功能等高级功能和特性。总之,Spring Batch可以支持简单、复杂、数据量大的批量作业。
Spring Batch是一个批处理应用框架,不是调度框架,但是需要配合调度框架来构建完成的批处理任务。它只关注与批处理任务相关的问题,如事务、并发、监控、执行等。并且不提供相应的调度功能。如果需要调用框架,很多优秀的企业级调度框架(比如Quartz、Tivoli、Control-M、Cron等。)可用于商业软件和开源软件。
SpringBatch官方API不支持MyBatis
SpringBatch自己的案例是没有MyBatis的ItemReader和ItemWriter,很少有人提供相关的开发实例。这份文件是为了积累和传播知识而写的。00-1010 1.页面读取:MyBatisPagingItemReader
这个Bean是一个ItemReader,它通过分页从数据库中读取数据。
它执行指定queryId属性的查询来获取数据,并使用pageSize属性来指定分页大小。
项目阅读器
命名查询SQL可以使用以下部分或全部参数来构造分页SQL:
_page:要读取的页码(从0开始)
_pagesize:页面的大小,即要返回的行数。
_ skip ows:page和pagesize的乘积
MyBatis配置
2.要读取的光标:MyBatisCursorItemReader
这个bean是一个IteamReader,它使用游标从数据库中读取记录。
请注意,要使用这个bean,您至少需要MyBatis 3.4.0或更高版本。
它通过使用方法selectCursor()来执行指定为setQueryId属性的查询,从而检索请求的数据。每次调用read()方法时,它都会返回光标的下一个元素,直到没有其他元素为止。
ItemReader使用单独的连接,因此select语句不参与作为步骤处理的一部分创建的任何事务。
和项目MyBatis配置
MyBatis的ItemReader
1.MyBatisBatchItemWriter它是一个ItemWriter,使用SqlSessionTemplate的批处理功能为所有提供的项执行一批语句。SqlSessionFactory需要使用配置的批处理执行器。
当调用write()时,它会执行statementId属性中指示的映射语句。期望在事务中调用write()。
Witer配置r
2.复合写入,即同时写入多个表的数据。
待续.
如果你对复合写作感兴趣或者需要一个完整的案例,可以私信我。