实例介绍
spring batch 学习多种场景练习demo项目源码,包括: 1.读取文件--处理--写入文件; 2.读取文件--处理--写入数据库 ; 3.读数据库--处理--写入数据库; 4.读数据库--处理--写入文件; 文件类型包括:CSV,TXT,JSON,XML; 数据库读写操作包括:JDBC 游标,JDBC分页,JDBC存储过程; Hibernate 游标,Hibernate分页,ibatis分页,jpa分页。
【实例截图】
【核心代码】
4744302542923945607.rar
└── spring-boot-batch-example
├── pom.xml
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── xh
│ │ │ └── batch
│ │ │ ├── csv
│ │ │ │ ├── callback
│ │ │ │ │ ├── DefaultFlatFileFooterCallback.java
│ │ │ │ │ └── DefaultFlatFileHeaderCallback.java
│ │ │ │ ├── CsvItemProcessor.java
│ │ │ │ └── launch
│ │ │ │ ├── JobLaunchCsvToCsv.java
│ │ │ │ └── JobLaunchCsvToDb.java
│ │ │ ├── db
│ │ │ │ ├── hibernate
│ │ │ │ │ ├── JobLaunchDbHibernateCursorToHibernate.java
│ │ │ │ │ ├── JobLaunchDbHibernatePageToHibernate.java
│ │ │ │ │ └── ProductBeanItemProcessor.java
│ │ │ │ ├── ibatis
│ │ │ │ │ ├── JobLaunchDbIbatisPageToDb.java
│ │ │ │ │ └── ProductIbatisItemWriter.java
│ │ │ │ ├── jpa
│ │ │ │ │ ├── JobLaunchJdbcPageToJpa.java
│ │ │ │ │ └── JobLaunchJpaPageToJpa.java
│ │ │ │ ├── launch
│ │ │ │ │ ├── JobLaunchDbJdbcPageToDb.java
│ │ │ │ │ ├── JobLaunchDbToCsv.java
│ │ │ │ │ ├── JobLaunchDbToDb.java
│ │ │ │ │ ├── JobLaunchDbToJson.java
│ │ │ │ │ ├── JobLaunchDbToTxt.java
│ │ │ │ │ └── JobLaunchDbToXml.java
│ │ │ │ ├── procedure
│ │ │ │ │ └── JobLaunchStoredProcedureToDb.java
│ │ │ │ ├── processor
│ │ │ │ │ └── ProductItemProcessor.java
│ │ │ │ ├── reader
│ │ │ │ │ └── ProductFieldSetMapper.java
│ │ │ │ ├── tasklet
│ │ │ │ │ └── ArchiveProductImportFileTasklet.java
│ │ │ │ └── writer
│ │ │ │ └── ProductItemWriter.java
│ │ │ ├── hello
│ │ │ │ ├── launch
│ │ │ │ │ └── JobLaunchHello.java
│ │ │ │ └── WriteTasklet.java
│ │ │ ├── json
│ │ │ │ ├── BeanJsonLineAggregator.java
│ │ │ │ ├── JsonItemProcessor.java
│ │ │ │ ├── launch
│ │ │ │ │ ├── JobLaunchJsonToDb.java
│ │ │ │ │ └── JobLaunchJsonToJson.java
│ │ │ │ ├── ProductJsonLineMapper.java
│ │ │ │ └── WrappedJsonLineMapper.java
│ │ │ ├── manyFile
│ │ │ │ ├── launch
│ │ │ │ │ ├── JobLaunchManyCsvToManyFileByRouter.java
│ │ │ │ │ ├── JobLaunchManyFileCsvToTxt.java
│ │ │ │ │ ├── JobLaunchOneCsvToManyCsv.java
│ │ │ │ │ ├── JobLaunchOneCsvToManyFileByRouter.java
│ │ │ │ │ └── JobLaunchOneCsvToManyFile.java
│ │ │ │ └── routerClass
│ │ │ │ ├── ProductRouterClassifier2.java
│ │ │ │ └── ProductRouterClassifier.java
│ │ │ ├── manyLine
│ │ │ │ ├── launch
│ │ │ │ │ └── JobLaunchManyLineCsv.java
│ │ │ │ ├── ManyLineCsvItemProcessor.java
│ │ │ │ ├── ManyLineRecordSeparatorPolicy.java
│ │ │ │ └── ProductFieldSetMapper.java
│ │ │ ├── mixtype
│ │ │ │ ├── GoodsFieldSetMapper.java
│ │ │ │ ├── launch
│ │ │ │ │ └── JobLaunchMixTypeFile.java
│ │ │ │ ├── MixTypeItemWriter.java
│ │ │ │ └── StudentFieldSetMapper.java
│ │ │ ├── pojo
│ │ │ │ ├── Goods.java
│ │ │ │ ├── ProductBean2.java
│ │ │ │ ├── ProductBean.java
│ │ │ │ ├── Product.java
│ │ │ │ └── Student.java
│ │ │ ├── txt
│ │ │ │ ├── launch
│ │ │ │ │ ├── JobLaunchTxtToDb.java
│ │ │ │ │ └── JobLaunchTxtToTxt.java
│ │ │ │ └── TxtItemProcessor.java
│ │ │ ├── util
│ │ │ │ ├── DateUtil.java
│ │ │ │ ├── ProductLineAggregator.java
│ │ │ │ ├── ProductObjectMapper.java
│ │ │ │ └── ReflectBeanUtil.java
│ │ │ └── xml
│ │ │ ├── callback
│ │ │ │ ├── FooterStaxWriterCallback.java
│ │ │ │ └── HeaderStaxWriterCallback.java
│ │ │ ├── launch
│ │ │ │ ├── JobLaunchXmlToCsv.java
│ │ │ │ ├── JobLaunchXmlToDb.java
│ │ │ │ ├── JobLaunchXmlToJson.java
│ │ │ │ ├── JobLaunchXmlToTxt.java
│ │ │ │ └── JobLaunchXmlToXml.java
│ │ │ └── XmlItemProcessor.java
│ │ └── resources
│ │ ├── applicationContext-db.xml
│ │ ├── applicationContext.xml
│ │ ├── batch-hello.xml
│ │ ├── csv
│ │ │ ├── batch-csv-csv.xml
│ │ │ └── batch-csv-db.xml
│ │ ├── hibernate
│ │ │ ├── batch-db-hibernate-cursor-hibernate.xml
│ │ │ ├── batch-db-hibernate-page-hibernate.xml
│ │ │ └── hibernate.cfg.xml
│ │ ├── ibatis
│ │ │ ├── batch-db-ibatis-page-db.xml
│ │ │ ├── ibatis-config.xml
│ │ │ └── ibatis-sqlMap.xml
│ │ ├── inputFile
│ │ │ ├── inputDB.csv
│ │ │ ├── inputDbFile.json
│ │ │ ├── inputDbFlie.xml
│ │ │ ├── inputDb.txt
│ │ │ ├── inputFile.csv
│ │ │ ├── inputFile.json
│ │ │ ├── inputFile.txt
│ │ │ ├── inputFile.xml
│ │ │ ├── inputMayLineFile.csv
│ │ │ ├── manyFile
│ │ │ │ ├── inputFile1.csv
│ │ │ │ ├── inputFile2.csv
│ │ │ │ ├── inputFile3.csv
│ │ │ │ ├── inputFile4.csv
│ │ │ │ └── inputFile5.csv
│ │ │ ├── manyToMany
│ │ │ │ ├── inputFile1.csv
│ │ │ │ ├── inputFile2.csv
│ │ │ │ └── inputFile3.csv
│ │ │ └── oneToMany
│ │ │ └── inputFile.csv
│ │ ├── jdbc
│ │ │ ├── batch-db-csv.xml
│ │ │ ├── batch-db-db.xml
│ │ │ ├── batch-db-jdbc-page-db.xml
│ │ │ ├── batch-db-json.xml
│ │ │ ├── batch-db-txt.xml
│ │ │ └── batch-db-xml.xml
│ │ ├── jpa
│ │ │ ├── batch-db-jdbc-page-jpa.xml
│ │ │ ├── batch-db-jpa-page-jpa.xml
│ │ │ └── persistence.xml
│ │ ├── json
│ │ │ ├── batch-json-db.xml
│ │ │ └── batch-json-json.xml
│ │ ├── log4j.xml
│ │ ├── manyFile
│ │ │ ├── batch-manycsv-manycsv-router.xml
│ │ │ ├── batch-manyFile-csv-txt.xml
│ │ │ ├── batch-onecsv-manycsv.xml
│ │ │ ├── batch-onecsv-manyFile-router.xml
│ │ │ └── batch-onecsv-manyFile.xml
│ │ ├── manyline
│ │ │ └── batch-manyline-csv.xml
│ │ ├── mixtype
│ │ │ └── batch-mixtype-file.xml
│ │ ├── mixTypeManyFile
│ │ ├── mysql.sql
│ │ ├── outputFile
│ │ │ ├── manyToMany
│ │ │ │ ├── outputFile_Large.csv
│ │ │ │ ├── outputFile_Medium.csv
│ │ │ │ └── outputFile_Small.csv
│ │ │ ├── oneToMany
│ │ │ │ ├── outputCsv1.csv
│ │ │ │ ├── outputCsv2.csv
│ │ │ │ ├── outputFile1.xml
│ │ │ │ ├── outputFile2.txt
│ │ │ │ ├── outputFile3.json
│ │ │ │ ├── outputFile4.csv
│ │ │ │ ├── outputFile_Large.csv
│ │ │ │ └── outputFile_Small.csv
│ │ │ ├── outputDbFile.csv
│ │ │ ├── outputDbFile.json
│ │ │ ├── outputDbFile.txt
│ │ │ ├── outputFile.csv
│ │ │ ├── outputFile.json
│ │ │ ├── outputFile.txt
│ │ │ ├── outputFile.xml
│ │ │ ├── outputManyFile.txt
│ │ │ ├── outputMayLineFile.csv
│ │ │ ├── outputxmlFile.csv
│ │ │ ├── outputXmlFile.json
│ │ │ └── outputXmlFile.txt
│ │ ├── procedure
│ │ │ └── batch-db-stored-procedure-db.xml
│ │ ├── txt
│ │ │ ├── batch-txt-db.xml
│ │ │ └── batch-txt-txt.xml
│ │ └── xml
│ │ ├── batch-xml-csv.xml
│ │ ├── batch-xml-db.xml
│ │ ├── batch-xml-json.xml
│ │ ├── batch-xml-txt.xml
│ │ └── batch-xml-xml.xml
│ └── test
│ ├── java
│ └── resources
└── target
├── classes
│ ├── applicationContext-db.xml
│ ├── applicationContext.xml
│ ├── batch-hello.xml
│ ├── com
│ │ └── xh
│ │ └── batch
│ │ ├── csv
│ │ │ ├── callback
│ │ │ │ ├── DefaultFlatFileFooterCallback.class
│ │ │ │ └── DefaultFlatFileHeaderCallback.class
│ │ │ ├── CsvItemProcessor.class
│ │ │ └── launch
│ │ │ ├── JobLaunchCsvToCsv.class
│ │ │ └── JobLaunchCsvToDb.class
│ │ ├── db
│ │ │ ├── hibernate
│ │ │ │ ├── JobLaunchDbHibernateCursorToHibernate.class
│ │ │ │ ├── JobLaunchDbHibernatePageToHibernate.class
│ │ │ │ └── ProductBeanItemProcessor.class
│ │ │ ├── ibatis
│ │ │ │ ├── JobLaunchDbIbatisPageToDb.class
│ │ │ │ └── ProductIbatisItemWriter.class
│ │ │ ├── jpa
│ │ │ │ ├── JobLaunchJdbcPageToJpa.class
│ │ │ │ └── JobLaunchJpaPageToJpa.class
│ │ │ ├── launch
│ │ │ │ ├── JobLaunchDbJdbcPageToDb.class
│ │ │ │ ├── JobLaunchDbToCsv.class
│ │ │ │ ├── JobLaunchDbToDb.class
│ │ │ │ ├── JobLaunchDbToJson.class
│ │ │ │ ├── JobLaunchDbToTxt.class
│ │ │ │ └── JobLaunchDbToXml.class
│ │ │ ├── procedure
│ │ │ │ └── JobLaunchStoredProcedureToDb.class
│ │ │ ├── processor
│ │ │ │ └── ProductItemProcessor.class
│ │ │ ├── reader
│ │ │ │ └── ProductFieldSetMapper.class
│ │ │ ├── tasklet
│ │ │ │ └── ArchiveProductImportFileTasklet.class
│ │ │ └── writer
│ │ │ ├── ProductItemWriter$1.class
│ │ │ └── ProductItemWriter.class
│ │ ├── hello
│ │ │ ├── launch
│ │ │ │ └── JobLaunchHello.class
│ │ │ └── WriteTasklet.class
│ │ ├── json
│ │ │ ├── BeanJsonLineAggregator.class
│ │ │ ├── JsonItemProcessor.class
│ │ │ ├── launch
│ │ │ │ ├── JobLaunchJsonToDb.class
│ │ │ │ └── JobLaunchJsonToJson.class
│ │ │ ├── ProductJsonLineMapper.class
│ │ │ └── WrappedJsonLineMapper.class
│ │ ├── manyFile
│ │ │ ├── launch
│ │ │ │ ├── JobLaunchManyCsvToManyFileByRouter.class
│ │ │ │ ├── JobLaunchManyFileCsvToTxt.class
│ │ │ │ ├── JobLaunchOneCsvToManyCsv.class
│ │ │ │ ├── JobLaunchOneCsvToManyFileByRouter.class
│ │ │ │ └── JobLaunchOneCsvToManyFile.class
│ │ │ └── routerClass
│ │ │ ├── ProductRouterClassifier2.class
│ │ │ └── ProductRouterClassifier.class
│ │ ├── manyLine
│ │ │ ├── launch
│ │ │ │ └── JobLaunchManyLineCsv.class
│ │ │ ├── ManyLineCsvItemProcessor.class
│ │ │ ├── ManyLineRecordSeparatorPolicy.class
│ │ │ └── ProductFieldSetMapper.class
│ │ ├── mixtype
│ │ │ ├── GoodsFieldSetMapper.class
│ │ │ ├── launch
│ │ │ │ └── JobLaunchMixTypeFile.class
│ │ │ ├── MixTypeItemWriter.class
│ │ │ └── StudentFieldSetMapper.class
│ │ ├── pojo
│ │ │ ├── Goods.class
│ │ │ ├── ProductBean2.class
│ │ │ ├── ProductBean.class
│ │ │ ├── Product.class
│ │ │ └── Student.class
│ │ ├── txt
│ │ │ ├── launch
│ │ │ │ ├── JobLaunchTxtToDb.class
│ │ │ │ └── JobLaunchTxtToTxt.class
│ │ │ └── TxtItemProcessor.class
│ │ ├── util
│ │ │ ├── DateUtil.class
│ │ │ ├── ProductLineAggregator.class
│ │ │ ├── ProductObjectMapper.class
│ │ │ └── ReflectBeanUtil.class
│ │ └── xml
│ │ ├── callback
│ │ │ ├── FooterStaxWriterCallback.class
│ │ │ └── HeaderStaxWriterCallback.class
│ │ ├── launch
│ │ │ ├── JobLaunchXmlToCsv.class
│ │ │ ├── JobLaunchXmlToDb.class
│ │ │ ├── JobLaunchXmlToJson.class
│ │ │ ├── JobLaunchXmlToTxt.class
│ │ │ └── JobLaunchXmlToXml.class
│ │ └── XmlItemProcessor.class
│ ├── csv
│ │ ├── batch-csv-csv.xml
│ │ └── batch-csv-db.xml
│ ├── hibernate
│ │ ├── batch-db-hibernate-cursor-hibernate.xml
│ │ ├── batch-db-hibernate-page-hibernate.xml
│ │ └── hibernate.cfg.xml
│ ├── ibatis
│ │ ├── batch-db-ibatis-page-db.xml
│ │ ├── ibatis-config.xml
│ │ └── ibatis-sqlMap.xml
│ ├── inputFile
│ │ ├── inputDB.csv
│ │ ├── inputDbFile.json
│ │ ├── inputDbFlie.xml
│ │ ├── inputDb.txt
│ │ ├── inputFile.csv
│ │ ├── inputFile.json
│ │ ├── inputFile.txt
│ │ ├── inputFile.xml
│ │ ├── inputMayLineFile.csv
│ │ ├── manyFile
│ │ │ ├── inputFile1.csv
│ │ │ ├── inputFile2.csv
│ │ │ ├── inputFile3.csv
│ │ │ ├── inputFile4.csv
│ │ │ └── inputFile5.csv
│ │ ├── manyToMany
│ │ │ ├── inputFile1.csv
│ │ │ ├── inputFile2.csv
│ │ │ └── inputFile3.csv
│ │ ├── mayFile
│ │ ├── mayToMay
│ │ ├── oneToMany
│ │ │ └── inputFile.csv
│ │ └── oneToMay
│ ├── jdbc
│ │ ├── batch-db-csv.xml
│ │ ├── batch-db-db.xml
│ │ ├── batch-db-jdbc-page-db.xml
│ │ ├── batch-db-json.xml
│ │ ├── batch-db-txt.xml
│ │ └── batch-db-xml.xml
│ ├── jpa
│ │ ├── batch-db-jdbc-page-jpa.xml
│ │ ├── batch-db-jpa-page-jpa.xml
│ │ └── persistence.xml
│ ├── json
│ │ ├── batch-json-db.xml
│ │ └── batch-json-json.xml
│ ├── log4j.xml
│ ├── manyFile
│ │ ├── batch-manycsv-manycsv-router.xml
│ │ ├── batch-manyFile-csv-txt.xml
│ │ ├── batch-onecsv-manycsv.xml
│ │ ├── batch-onecsv-manyFile-router.xml
│ │ └── batch-onecsv-manyFile.xml
│ ├── manyline
│ │ └── batch-manyline-csv.xml
│ ├── META-INF
│ │ ├── MANIFEST.MF
│ │ └── maven
│ │ └── com.xh.spring.batch.example
│ │ └── spring-boot-batch-example
│ │ ├── pom.properties
│ │ └── pom.xml
│ ├── mixtype
│ │ └── batch-mixtype-file.xml
│ ├── mysql.sql
│ ├── outputFile
│ │ ├── manyToMany
│ │ │ ├── outputFile_Large.csv
│ │ │ ├── outputFile_Medium.csv
│ │ │ └── outputFile_Small.csv
│ │ ├── oneToMany
│ │ │ ├── outputCsv1.csv
│ │ │ ├── outputCsv2.csv
│ │ │ ├── outputFile1.xml
│ │ │ ├── outputFile2.txt
│ │ │ ├── outputFile3.json
│ │ │ ├── outputFile4.csv
│ │ │ ├── outputFile_Large.csv
│ │ │ └── outputFile_Small.csv
│ │ ├── oneToMay
│ │ ├── outputDbFile.csv
│ │ ├── outputDbFile.json
│ │ ├── outputDbFile.txt
│ │ ├── outputFile.csv
│ │ ├── outputFile.json
│ │ ├── outputFile.txt
│ │ ├── outputFile.xml
│ │ ├── outputManyFile.txt
│ │ ├── outputMayLineFile.csv
│ │ ├── outputxmlFile.csv
│ │ ├── outputXmlFile.json
│ │ └── outputXmlFile.txt
│ ├── procedure
│ │ └── batch-db-stored-procedure-db.xml
│ ├── txt
│ │ ├── batch-txt-db.xml
│ │ └── batch-txt-txt.xml
│ └── xml
│ ├── batch-xml-csv.xml
│ ├── batch-xml-db.xml
│ ├── batch-xml-json.xml
│ ├── batch-xml-txt.xml
│ └── batch-xml-xml.xml
└── test-classes
126 directories, 297 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论