JAVA 前端上传文件,后端解析文件流并写入数据库_后端怎么把前端传的文件导入-程序员宅基地

技术标签: MultipartFile  java  前端  

controller层: 通过文件流的方式 读取 前端上传的文件 MultipartFile 

上传文件:utf-8编码的csv文件

    @ApiOperation(value = "导入文件")
    @RequestMapping(value = "/updateFieldMapFromCsvfile", method = RequestMethod.POST)
    public BaseResult updateFieldMapFromCsvfile(@RequestParam("file") MultipartFile multipartFile) throws IOException, ParseException {
        BaseResult baseResult = new BaseResult();
        BaseController.execute(null, new ControllerCallback<Long>() {
            @Override
            public void check() {
            }
            @Override
            public Long execute() throws IOException {
                // 更新
                return nodeService.updateFieldMapFromCsvfile(multipartFile);
            }
        }, baseResult);
        return baseResult;

    }

实现层:

   public long updateFieldMapFromCsvfile(MultipartFile multipartFile) throws IOException {
        Reader reader = new InputStreamReader(multipartFile.getInputStream(), "UTF-8");
        BufferedReader br = new BufferedReader(reader);
        br.readLine();//br是迭代器类型的,每readline一次,行数指向next,用于过滤第0行标题
        String line ;
        while ((line = br.readLine()) != null) {
            SqDataNodeFieldMapDO eachData = new SqDataNodeFieldMapDO();
            String item[] = line.split(",");
            eachData.setId(Long.parseLong(item[0]));
            eachData.setOutputNode(item[3]);
            eachData.setOutputField(item[4]);
            eachData.setOutputValueType(item[5]);
            eachData.setSourceNode(item[6]);
            eachData.setSourceField(item[7]);
            eachData.setSourceValueType(item[8]);
            eachData.setLastModer(item[9]);
            eachData.setLinkCode(item[10]);
            eachData.setBizCode(item[11]);
            eachData.setValueUdf(item[12]);
            eachData.setValueCaliber(item[13]);
            fieldMapConfigService.updateFieldMapFromCsv(eachData);//更新数据库
        }
        return 0;
    }

postman调用调试

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Strive_0902/article/details/125818231

智能推荐

libopencv_imgcodecs.so.4.2.0: undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0_../../lib/libopencv_imgcodecs.so.4.9.0: undefined -程序员宅基地

文章浏览阅读6k次,点赞7次,收藏23次。libopencv_imgcodecs.so.4.2.0: undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0错误如下:/usr/local/lib/libopencv_imgcodecs.so.4.2.0: undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0'/usr/local/lib/libopencv_imgcodecs.so.4.2.0: undefined referenc_../../lib/libopencv_imgcodecs.so.4.9.0: undefined reference to tiffreaddirec

OpenCV3.4.0学习笔记(一)——cv::Mat的内存结构与访问_cv::mat data-程序员宅基地

文章浏览阅读5.3k次,点赞8次,收藏23次。cv::Mat的内存结构与访问cv::Mat 是新版opencv主打的也是最为常用的一种数据类型, 可以用于存储任意维度的多通道数组。本文目的在于记录学习过程中得到关于 cv::Mat 内存结构,成员变量的一些认识。从数组、指针的角度解释 cv::Mat ,提供从最底层操作 cv::Mat 的任一内容的方法。首先,cv::Mat 被认为是一个多维数组,那么对任何数组最重要的操作就是数组任意元..._cv::mat data

Android bugreport 分析方法-程序员宅基地

文章浏览阅读98次。文章来源:https://www.jianshu.com/p/20e1bfdf5161作者:特立独行的佩奇Android bugreport 概述bugreport 是Android 系统下的一个工具,功能类似于系统的一个黑匣子;通过执行相应的命令可以获取到bugreport 包,其中包含设备日志,堆栈跟踪和其他诊断信息,可帮助您查找和修复系统错误;bugreport信息量非常之大,几乎涵盖整个系..._bugreport 日志目录结构

物联网|探索cortex-M系列CPU的内核|实验课程前的准备|开发环境构建|开发资料|物联网开发系列课程之零基础玩转Cortex-M系列CPU-学习笔记(5)_基于arm cortex的物联网开发软件-程序员宅基地

文章浏览阅读120次。物联网|探索cortex-M系列CPU的内核|实验课程前的准备|开发环境构建|开发资料|物联网开发系列课程之零基础玩转Cortex-M系列CPU-学习笔记(5)_基于arm cortex的物联网开发软件

华为云云耀云服务器L实例评测 | 企业建站 SoEasy_华为云l实例-程序员宅基地

文章浏览阅读513次。当你的云服务器绑定了域名之后,需要在 WordPress 同步配置域名,才能使用域名正常访问到你的 WordPress 网站。在 WordPress 的后台管理页面中,选择“设置”,接着选择“常规”,找到 “WordPress 地址(URL)”和“站点地址(URL)”,在这两项中填入你的域名,并保存即可生效。完成了以上这些步骤,你就具备了在线访问你的网站,以及配置你的网站的能力。安装插件的步骤很简单,你只需要在管理界面的左侧菜单中选择“插件”,然后点击“安装插件”按钮,就会进入到插件安装列表页面。_华为云l实例

C# Winform 中使用 Webview2_c# webview2-程序员宅基地

文章浏览阅读6k次。目前的windows/Linux下的UI方案,以Qt为主,Flutter, Electron为辅,其他的各种UI都是不堪大用。除了使用CEF的Qt/C++/C#方案,Qt+WebEngine, 目前在Windows下各家的最终归路都转向Webview2方案,可以极大地减少发布的程序的大小。_c# webview2

随便推点

联想Y7000P 2019装Ubuntu双系统遇到的问题_拯救者y7000安装ubuntu出现acpi bios error:-程序员宅基地

文章浏览阅读2.9k次。联想Y7000P 2019装Ubuntu双系统遇到的问题(仅供参考,请通篇阅读完以后,再考虑是否使用本教程)首先电脑买回来有自带的Windows系统,然后装Ubuntu19.04双系统,之所以选择19而不是18是因为听同学说ubuntu18系统有无线网卡不能用,还得修改文件的问题,然而19也遇到了,不过这个后面会介绍到。一 制作装有Ubuntu19.04的U盘1.Ubuntu19.04可以从..._拯救者y7000安装ubuntu出现acpi bios error:

php插件 pycharm_pycharm 安装插件-程序员宅基地

文章浏览阅读412次。打开file——settings——plugings,在右侧的文本框中输入想要查看的插件名称,在下方就会罗列出已安装的相关的插件:1.英语翻译.可以看源码注释2.statisticstatistic是一个项目统计插件,简单来说就是可以给出一个项目的统计信息,包括文件和代码量等,关于统计信的具体内容一会再讲,先来看下Statistic的使用方法。在Pycharm的左下角增加一个Statistic选项..._pycharm php

R7-1 数据结构实验之链表一:顺序建立链表 (20 分)_r7-1 栈的基本操作输入第1行为1个正整数n,表示操作个数; 第2行为给出的n个整数,非-程序员宅基地

文章浏览阅读523次。输入N个整数,按照输入的顺序建立单链表存储,并遍历所建立的单链表,输出这些数据。输入格式:第一行输入整数的个数N(1 <= N <= 100000)。第二行依次输入每个整数。输出格式:输出这组整数。输入样例:812 56 4 6 55 15 33 62输出样例:12 56 4 6 55 15 33 62#include<stdio.h>#include <stdlib.h>struct node{..._r7-1 栈的基本操作输入第1行为1个正整数n,表示操作个数; 第2行为给出的n个整数,非

JVM调优(二)——Linux下监控java线程_linux详细监控java程序-程序员宅基地

文章浏览阅读2.1k次。Linux环境下,当发现java进程占用CPU资源非常高,且又要想更进一步查出哪一个java线程占用了CPU资源时该如何做呢?一、采用命令行形式查看线程,最终用dump进行文本分析1、top命令既可以看进程,又可以看线程1、top命令找出占用资源厉害的java进程id# top2、上图所看到的。java的进程id为’52554’,接下来用top命令单独对这个进程中的全部线程作监视t..._linux详细监控java程序

C语言 在一维数组中找出值最小的元素,并将其与第一个元素的值对调_在一维数组中找出值最小的元素,并将其值与第一个元素的值对调。-程序员宅基地

文章浏览阅读9.6k次,点赞7次,收藏21次。因本人才疏学浅,见识浅薄,有不当之处望指正,谢谢!在一维数组中找出值最小的元素,并将其与第一个元素的值对调思路:每次比较过程中,若一个数比最小的数还要小。那它就是最小的数// 找最小,并和第一个元素的值互换#include &amp;lt;stdio.h&amp;gt;#define N 10int main(void){ int a[N],i,t,min =0; printf(&quot;input ..._在一维数组中找出值最小的元素,并将其值与第一个元素的值对调。

IDEA中快捷创建SpringBoot主启动类的方法的设置_idea本地启动spring配置主类-程序员宅基地

文章浏览阅读4.9k次,点赞4次,收藏11次。IDEA中快捷创建SpringBoot主启动类的方法的设置,自动同步同类名的参数_idea本地启动spring配置主类