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

智能推荐

mac 无法连接android手机进行调试 解决方案_安卓手机连接mac电脑 微信开发者工具 监测不到 安卓设备-程序员宅基地

文章浏览阅读930次。学习android开发几天了,今天好不容易找了个android手机,直接连接mac电脑,结果eclipse-DDMS里面没有显示任何设备。使用命令行adb devices 试了下,没设备列表。郁闷ing哎,豌豆荚也没有mac版本的,找了个类似的工具,也没有发现我的设备。随即google了一番,发现靠谱的解决方法如下:第一步: 查看usb设备信息在 终_安卓手机连接mac电脑 微信开发者工具 监测不到 安卓设备

做好项目复盘只需掌握这四步-程序员宅基地

文章浏览阅读1.3k次。2019独角兽企业重金招聘Python工程师标准>>> ..._工程项目复盘一般有哪几部分

python利用pandas合并excel表格代码_利用Python pandas对Excel进行合并的方法示例-程序员宅基地

文章浏览阅读204次。前言在网上找了很多Python处理Excel的方法和代码,都不是很尽人意,所以自己综合网上各位大佬的方法,自己进行了优化,具体的代码如下。博主也是新手一枚,代码肯定有很多需要优化的地方,欢迎各位大佬提出建议~代码我自己已经用了一段时间,可以直接拿去用主要功能按行合并 ,即保留固定的表头(如前几行),实现多个Excel相同格式相同名字的表单按纵轴合并;按列合并。 即保留固定的首列,实现多个Excel..._df_merged.to_excel(writer, sheet_name='app function', index=false, engine='o

JavaScript警告框:创建自定义提示框的实现方法_js自定义提示框-程序员宅基地

文章浏览阅读289次。通过以上的HTML、CSS和JavaScript代码,我们可以创建一个自定义的警告框,并可以根据需要进行样式和行为的定制。警告框的显示和隐藏可以通过JavaScript函数来控制,使得开发者能够根据具体的应用场景进行灵活的操作。要定制警告框的外观和行为,我们可以使用HTML、CSS和JavaScript的组合。JavaScript中的警告框是一种常见的弹出框,它用于向用户显示重要的消息或警告。当上述代码执行时,将在页面上显示一个警告框,并显示消息"这是一个警告框的示例!函数,以便显示警告框。_js自定义提示框

android中ListView异步加载图片时的图片错位问题解决方案,Alibaba高并发业务实战文档-程序员宅基地

文章浏览阅读520次,点赞30次,收藏15次。ListView/>加入访问网络和读取,写入sdcard的权限。接下来,我们来看看MainActivity.java。性能考虑,我们使用convertView和ViewHolder来重用控件。这里涉及到比较关键的一步,我们会在getView的时候给ViewHolder中的ImageView设置tag,其值为要放置在该ImageView上的图片的url地址。

随便推点

论文学习——HiFi-GAN: Generative Adversarial Networks for Efficient and High Fidelity Speech Synthesis_hifigan-程序员宅基地

文章浏览阅读1.2k次,点赞3次,收藏10次。* 这篇文章,是《CONDITIONAL SOUND GENERATION USING NEURAL DISCRETE TIME-FREQUENCY REPRESENTATION LEARNING》主要应用到的三个技术之一,我正在复现这篇文章,然后需要了解HiFi-GAN技术,续哦一就翻译了这篇文章。* 这篇文章是2020年的,近三年的文章,是Conference on Neural Information Processing Systems (NeurIPS 2020),这个会议也是人工智能领域的顶会_hifigan

深入理解并发、线程与等待通知机-程序员宅基地

文章浏览阅读52次。为什么用户线程又被称为协程呢?我们知道,内核线程的切换开销是来自于保护和恢复现场的成本, 那如果改为采用用户线程, 这部分开销就能够省略掉吗?答案还是“不能”。但是,一旦把保护、恢复现场及调度的工作从操作系统交到程序员手上,则可以通过很多手段来缩减这些开销。

Redis知识点笔记总结_项目经理应该知道的redis的知识点-程序员宅基地

文章浏览阅读2.4k次,点赞9次,收藏8次。本文参考:Redis详细总结笔记_poizxc2014的博客-程序员宅基地Redis学习资料推荐:Redis笔记(基础+进阶)_爪洼ing的博客-程序员宅基地Redis全面实战教程_challenge-linge的博客-程序员宅基地Redis知识点总结_烧煤的快感的博客-程序员宅基地_redis的知识点Redis面试题总结参考:Redis面试题(2020最新版)_ThinkWon的博客_redis面试题前言:Redis简单介绍1、什么是redisRedis是一个基于_项目经理应该知道的redis的知识点

(Python)Pycharm安装及Python环境配置_pycharm win7-程序员宅基地

文章浏览阅读5k次。以Win7系统为例,详细展示Pycharm安装及Python环境配置。_pycharm win7

从此匡威一生黑-程序员宅基地

文章浏览阅读236次。周六水一篇,真是气人,不吐不快8月份在天猫匡威CONVERSE官方旗舰店买了双帆布鞋,月销好几千,看起来还行,下单前还特意看了用户评价,同时出于对品牌的信任,于是就付款了。平常一周穿两次..._python converse

台达plc控制伺服电机编程实例_三菱PLC控制伺服电机得编程实例-程序员宅基地

文章浏览阅读2.3k次。触摸屏给定转速后电机一直转而且还是伺服电机,如何实现可以从一下两个方案做参考,伺服电机的控制模式1:位置模式,2速度模式。1、位置模式这个伺服电机常用的控制模式,应用于精密定位的场合,例如产业机械,具有方向性的指令脉冲输入可经由外界来的脉冲来操纵电机的转动角度,驱动器接受位置指令,控制电机至目标位置。说到这里就必须说下三菱plc控制伺服电机的几个运动控制指令,根据你的问题,你可以采用PLSY,PL..._台达伺服回原在负极停顿

推荐文章

热门文章

相关标签