我的项目有这个要求,用户上传一个必须被推送到mysql数据库的CSV文件 . 我知道我们可以使用Spring批处理大量记录 . 但我无法找到我的这个要求的任何教程/示例代码 . 我遇到的所有教程都硬编码了CSV文件名,如下所示:
https://spring.io/guides/gs/batch-processing/
我需要使用用户上传的文件并相应地处理它 . 任何帮助在这里将不胜感激..
如果不是Spring批处理,有没有其他方法将上传的CSV数据插入mysql?
我的项目有这个要求,用户上传一个必须被推送到mysql数据库的CSV文件 . 我知道我们可以使用Spring批处理大量记录 . 但我无法找到我的这个要求的任何教程/示例代码 . 我遇到的所有教程都硬编码了CSV文件名,如下所示:
https://spring.io/guides/gs/batch-processing/
我需要使用用户上传的文件并相应地处理它 . 任何帮助在这里将不胜感激..
如果不是Spring批处理,有没有其他方法将上传的CSV数据插入mysql?
2 回答
请将此作为主要参考:http://walkingtechie.blogspot.co.uk/2017/03/spring-batch-csv-file-to-mysql.html这解释了如何使用Batch将CSV文件导入MySQL数据库 .
但是,正如您所说,所有示例都假定硬编码文件不是您想要的 .
在下面的代码中,重要位(与我提供的链接中的示例不同)是控制器,它采用多部分文件并将其保存在临时文件夹中 . 然后将文件名作为参数传递给Job:
最后,importReader使用param fullPathFileName加载用户上传的文件:
这里的完整代码(未经过测试,但它有大部分组件)给你一个想法:
我是通过混合Spring MVC(RestController)和Spring Batch来实现的 . Spring MVC帮助将csv文件作为多部分请求上传 . 然后我通过将上传的CSV传递给Spring Job来异步调用Spring批处理 . 一旦Spring作业收到csv文件,它就会通过读取,处理和写入DB作业进行 spring 批处理 .