spring Batch实现数据库大数据量读写
1. data-source-context.xml
?
?2.?quartz-context.xml ? ? ??commit-interval="10000"每次批量数据的条数,数值越大效率越高,可在此处添加事物处理,
每次回滚数就是commit-interval数
?
?
3.定时调度job类 QuartzLedgerJob.java
?
?package net.etongbao.vasp.ac.quartz;
??
? 总结:?测试数据8万多条,响应时间3分多钟。
?
关键在于quartz-context.xml 中<bean id="ledgerReader"
ref="dataSource" />
<property name="sql" value="select * from ledger" />?
<property name="rowMapper" ref="ledgerRowMapper" />
</bean> 负责读取数据 ,在程序执行时一次性抓取全部数据后在批量的交给LedgerWriter进行写操作。当然也可以使用分页读取JdbcPagingItemReader,但要分页数量与写入数量要大写相同,还可以对分页出来的数据进行添加悲观锁
LedgerWriter.java 负责写入数据,每次写入1000条。
?
?
?
?
?