关于一个spring batch 大文件文件的BUG

前面关于Spring spring batch 大文件的文章讲述了Springspring batch 夶文件对、,以及这些事例,同一个Reader读取的都是相同格式的数据最终写入一个文件。如果遇到下面这样的数据并想将学生信息和商品信息分类后写入两个文件,应该如何处理呢

这次将和大家一起探讨Spring spring batch 大文件读取复合格式的数据,然后写入不同的文件的处理方式

96-104行配置了Writer的基本信息。Writer也是使用代理的方式学生信息使用106-122行定义的studentWriter按照固定长的格式写入学生信息文件中,商品信息使用124-141行定义的goodsWriter按照CSV的格式写入商品信息文件中MultiItemWriter的代码很简单,就不做详细解释了如下:

// 将传过来的信息按照不同的类型添加到不同的List中 // 如果学生List中有数据,就执行学生信息的写 // 如果商品List中有数据就执行商品信息的写

      至此,复合文件的读写操作已经讨论结束了注意实例没有配置Processor。下面是┅些辅助文件的信息


近日需要实现用户推荐相关的功能也就是说向用户推荐他可能喜欢的东西。

我们的数据分析工程师会将用户以及用户可能喜欢的东西整理成文档给我我只需要将数据從文档中读取出来,然后对数据进行进一步的清洗(例如去掉特殊符号长度如果太长则截取)。然后将处理后的数据存入数据库(Mysql)

  • 哽新数据库(新增或更新)

考虑到这个数据量以后会越来越大,这里没有使用 poi 来读取数据而直接使用了 Springspring batch 大文件。

本文假设读者已经能够使用 SpringBoot 连接处理 Mysql所以这部分文中会省略。

读取到的数据格式如 main() 方法所示清理之后的结果如:

轻想上的轻小说,小说,Fate,同人小说,雪狼八组,社会,囚文,短篇,重新定义,AMV,战争,谁说轻想没人写小说 。

去掉了特殊符号以及数字等使用了 Java8 的 Lambda 表达式。

并且这里在处理的时候判断如果该数据用戶已经存在,则进行更新如果不存在,则新增

5、Job 执行结束回调类

 

具体的逻辑可自行实现。

完成以上几个步骤运行项目,就可以读取並写入数据到数据库了

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者工作能带来一定的帮助如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持

此demo有4种常用的方式:

读文件--处理--寫入文件;

读文件--处理--写入数据库;

读数据库--处理--写入数据库;

读数据库--处理--写入文件;

大部分是配置文件 demo下载在下面,不需要注册就能直接下载下面贴出来核心配置和容易出错的地方。demo包括建表语句和输入文件,记得先修改数据库信息建好表。


我要回帖

更多关于 batch文件 的文章

 

随机推荐