Java之利用openCsv将csv文件导入mysql数据库
前两天干活儿的时候有个需求,前台导入csv文件,后台要做接收处理,mysql数据库中,项目用的springboot+Vue+mybatisPlus实现,下面详细记录一下实现流程。
1.Controller层部分:
/**
* 读取csv文件,批量插入到数据库中
*/
@RequestMapping("/importcsv")
@RequiresPermissions("xxx:xxxxx:xxx")
public R importCsv(@RequestParam("file") MultipartFile file) throws IOException, CsvException {
if (null == file) {
return R.error("上传文件为空");
}
List<xxxEntity> csvFileContentList = xxxService.getCsvFileContent(file);
boolean b = xxxService.saveBatch(csvFileContentList);
if (b) {
return R.ok("文件导入成功");
} else {
return R.ok("文件导入失败");
}
}
这里是先将前端传递过来的file交给getCsvFileContent方法处理,生成要批量插入的list,然后再用mybatisPlus做批量插入。
2.实现类部分:
@Override
public List<xxxEntity> getCsvFileContent(MultipartFile file) throws IOException, CsvException {
//读取csv文件
String charset = "GBK";
Reader reader = new InputStreamReader(file.getInputStream(), charset);
CSVReader csvReader = new CSVReader(reader);
csvReader.readNext(); List<String[]> csvList = csvReader.readAll();
List<xxxEntity> xxxList = new ArrayList<>();
xxxEntity xxx = null;
for(String[] csv : csvList){
xxx = new xxxEntity();
if(null != csv && csv.length != 0){
//这里是查询要入库的数据是不是在数据库中已存在
xxxEntity xxxx = findOneByxxxAndxxx(csv[0], csv[1]);
if (xxxx == null) {
xxx.setXxx(csv[0]);
xxx.setXxx(csv[1]);
xxx.setXxx(csv[2]);
}else {
continue;
}
}
xxxList.add(xxx);
}
return xxxList;
}
这里会将你前端发送过来的文件做读取后直接入库,不会生成中间文件,希望这篇文章能对你有帮助,有问题可以评论区交流哦。
Java之利用openCsv将csv文件导入mysql数据库的更多相关文章
- [转]csv文件导入Mysql
本文转自:https://blog.csdn.net/quiet_girl/article/details/71436108 本篇博客主要讲将csv文件导入Mysql的方法(使用命令行). Step1 ...
- 使用pandas中的raad_html函数爬取TOP500超级计算机表格数据并保存到csv文件和mysql数据库中
参考链接:https://www.makcyun.top/web_scraping_withpython2.html #!/usr/bin/env python # -*- coding: utf-8 ...
- Linux 用 shell 脚本 批量 导入 csv 文件 到 mysql 数据库
前提: 每个csv文件第一行为字段名 创建的数据库字段名同csv 文件的字段名 1. 批量导入 多个 csv 文件 for file in ./*.csv;do mv $file tablename. ...
- 【MySQL】CSV 文件导入MySQL
此问题是前几天整理数据的时候碰到的,数据存在 CSV文件中(200多万记录),通过python 往数据库中导入太慢了,后来使用MySQL 中自带的命令 LOAD DATA INFILE, 30多秒就能 ...
- 大数据量.csv文件导入SQLServer数据库
前几天拿到了一个400多M的.csv文件,在电脑上打开要好长时间,打开后里面的数据都是乱码.因此,做了一个先转码再导入数据库的程序.100多万条的数据转码+导入在本地电脑上花了4分钟,感觉效率还可以. ...
- 将csv文件导入sql数据库
有一个csv文件需要导入到Sql数据库中,其格式为 “adb”,"dds","sdf" “adb”,"dds","sdf" ...
- CSV文件导入到数据库中读取数据详解(接着上个帖子)
一.controller层 二.SERVICE层 @Overridepublic Result importJinjiangAssessResult(MultipartFile file) throw ...
- tp3.2.3运用phpexcel将excel文件导入mysql数据库
1,下载PHPExcel 2,配置将下载好的PHPExcel文件与PHPExcel.php 放到thinkphp 根目录 include/Library/Org/Util/下面 3,同时将PHPExc ...
- python 从csv文件插入mysql数据库
一个工作遇到的问题,将excel文件的内容插入到mysql数据库中. 总体思路是 excel文件-->转换成csv文件-->csv文件读取-->读取数据插入mysql数据库 用到py ...
- 如何将frm文件导入MySql数据库
只要在mysql的安装文件中找到data文件夹,然后在里面建立一个文件夹,比如test.这个test其实就对应着数据库的名称,所以,你想要起什么样的数据库名称就把文件夹起什么名字. 然后把.frm文件 ...
随机推荐
- 【内核】kernel 热升级-1:kexec 机制
内核热升级是指,预先准备好需要升级的内核镜像文件,在秒级时间内,完成内核切换,追求用户服务进程无感知. 欧拉操作系统提供了一套比较成熟的解决方案,该解决方案提供了用户态程序和内核态程序两部分: kex ...
- 若依集成knife4j实现swagger文档增强
若依集成knife4j实现swagger文档增强 本期全是干货,这里我就当你用的非常熟练了,在ruoyi-admin模块中pom文件里加入以下依赖 注:引用knife4j-spring-boot-st ...
- 复现YOLO5所遇到的问题
一. 解决方案: 由于没有影响模型继续运行,理解为简单的warning.根据查询问题,推断是由于 pytorch和torchvision的版本原因导致的. 二. 解决方案: 由于没有影响模型继续运行, ...
- video标签视频指定帧作为预览图
<video :src="videoUrl" :poster=" videoUrl + '?x-oss-process=video/snapshot,t_0,f_j ...
- Unreal学习笔记1-打印输出
1. 概述 相比各种打断点调试的办法,还是更习惯使用打印输出来进行调试. 2. 详论 2.1. 代码 这里写了三个函数:分别是输出到屏幕,输出到警告日志,输出错误日志. Output.h: #prag ...
- 产品经理,项目经理,FTO
职责与自驱 产品经理是要保证做正确的事:项目经理则是保证正确地做事:FTO 既要保证做正确的事,也要保证正确地做事,还要保证能拿到结果,且对结果负责. 能做事的专业人才不缺,但是既有专业知识和技能还能 ...
- 详解Apache Sentry->Ranger平滑升级方案
摘要:本文主要探讨如何平滑解决sentry到ranger升级过程中的权限迁移问题. 本文分享自华为云社区<[平滑上云]Apache Sentry->Ranger平滑升级方案>,作者: ...
- Volcano 监控设计解读,一看就懂
摘要:Volcano 方便AI,大数据,基因,渲染等诸多行业通用计算框架介入,提供高性能任务调度引擎,高性能异构芯片管理,高性能任务运行管理等能力. Volcano 是一个 Kubernetes 云原 ...
- Error: Could not find or load main class org.elasticsearch.tools.java_version_checker.JavaVersionChecker
把elasticsearch目录换到不属于root目录的其他目录就行了
- logback.xml 配置文件
logback.xml <?xml version="1.0" encoding="UTF-8"?> <configuration> & ...