java代码将csv格式的文件导入数据库

最近接到了一个需求,将csv文件的内容通过java进行入库操作,在此记录一下整个完整的代码

主要逻辑

读取csv的每一个数据,对数据对应的对象赋值,将对象放入集合中,因为数据量大,对list进行拆分,最后分批量入库操作,关键代码如下

1、pom.xml引入依赖

1.1 关于csvRead的依赖

<dependency><groupId>net.sourceforge.javacsv</groupId><artifactId>javacsv</artifactId><version>2.0</version>
</dependency>

1.2 关于Lists拆分集合的依赖

<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>29.0-jre</version>
</dependency>

2、bean

@Data
public class CsvData {private Integer id;private String name;private String school;
}

3、controller层代码

@RestController
public Map<String,Object> CSVImport(String fileName){//接收返回的数据返回给前端HashMap<String,Object> result = new HashMap<String,Object>();CsvData csvData =null;CsvReader r;try{//放文件的位置String cvsFilePath="磁盘地址"+fileName+".csv";r = new CsvReader(cvsFilePath,',',Charset.forName("utf-8"));//读取表头boolean b = r.readHeaders();ArrayList<CsvData> list = new ArrayList<CsvData>();while(r.readRecord()){csvData = new CsvData();//注意,此处的id,name,school是csv文件里的列名csvData.setId(Integer.parseInt(r.get("id")));csvData.setName(r.get("name"));csvData.setSchool(r.get("school"));list.add(csvData);}//等份拆分listList<List<CsvData>> partition = Lists.partition(list,150);//将数据分批存入数据库for(List<CsvData> eachList:partition){csvDataService.insertBatch(eachList);}result.put("success","success");list.clear();r.close();}catch(Exception e){e.printStackTrace();}return result;
}

4、service.serviceImpl层省略

5、dao层

public interface CSVDataDao{void insertBatch(@Param("list") List<CsvData> list);
}

6、Mapper.xml

<insert id="insertBatch" parameterType="csvData的包名">insert into 数据库名.表名 (id,name,school)values<foreach collection ="list" item ="item" separator=",">(#{item.id},#{item.name},#{item.school})</foreach>
</insert>

java代码将csv格式的文件导入数据库相关推荐

  1. mysql数据导入导出 CSV格式_导出mysql的数据为csv格式的文件

    Mysql自带数据导出的命令 into outfile(本地导出) SELECT * FROM server_warning_repaired into outfile '/tmp/test.csv' ...

  2. java代码使用ImageJ解析dicom文件成图片

    ImageJ解析dicom文件成jpg图片 Dicom全称是医学数字图像与通讯,这里讲java解析diocm格式文件变成jpg示例. 这里的代码只能解析普通的dicom文件成jpg图片,对于压缩的di ...

  3. php导出csv_原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】

    本文实例讲述了原生PHP实现导出csv格式Excel文件的方法.分享给大家供大家参考,具体如下: 效果图 源码分析 index.php require_once "./Export.php& ...

  4. CSV文件导入数据库后中文乱码

    CSV文件导入数据库后中文乱码 背景:我用的是Dbeaver连接的clickhouse数据库,向现场的同事要了数据(CSV格式文件),导入后都是途中这样的,根本用不了.在网上找到同样的情况的文章,记录 ...

  5. Android 读取csv格式数据文件

    前言 什么是csv文件呢?百度百科上说 CSV是逗号分隔值文件格式,也有说是电子表格的,既然是电子表格,那么就可以用Excel打开,那为什么要在Android中来读取这个.csv格式的文件呢?因为现在 ...

  6. CSV格式的文件与EXCEL文件的区别

    CSV格式的文件与EXCEL文件的区别 Excel CSV 这是一个二进制文件,它保存有关工作簿中所有工作表的信息 CSV代表Comma Separated Values .这是一个纯文本格式,用逗号 ...

  7. .csv格式的文件是怎么编码的

    .csv是数据集中的常用格式,但是我们总是直接使用 Excel等软件直接打开了,或者直接copy别人的数据处理代码.但总有要自己动手丰衣足食的时候,此时我们就需要知道.csv是如何编码的了. 当我学过 ...

  8. excel xml mysql数据库,数据库文本文档excel表格-excel xml格式的文件 导入到 MYSQL 数据库的语句...

    教你怎样将Word表格导入到Excel中 方法如下: 1.首先,打开媒介工具"记事本",将word文件里需要导入的数据,复制粘贴到记事本当中,然后保存成为txt文件,本例中将txt ...

  9. Java代码的基本格式及注释

    Java代码的基本格式:  修饰符 class 类名{      程序代码 } 注:Java中的程序代码必须放在一个类中 在编写时要注意如下: 1.Java中的程序代码可分为:结构定义语句(用于声明一 ...

最新文章

  1. react-native 组件之间传值
  2. Objective-C学习笔记(十九)——对象方法和类方法的相互调用
  3. STM32:从菜鸟到牛人就是如此简单!为了学习单片机而去学习单片机的思路是不对的
  4. MySQL外键关联(一对多)MySQL连接查询
  5. python访问web网页_python访问web的利器:urllib2
  6. advances search design time和runtime显示差异的原因
  7. 树莓派UART串口编程--使用wiringPi库-C开发【1-基础应用】
  8. spss相关性分析看结果_spss相关性分析
  9. 列举python中可变数据类型_python 可变数据类型 和 不可变数据类型
  10. java实验 输入输出_实验十三 Java输入输出(一)
  11. 两个table怎么对齐_Origin教程|“师兄,图表坐标轴下的分组表格是怎么添加的?”...
  12. python中的pylab_Python数值计算:一 使用Pylab绘图(1)
  13. 箱线图2种画法-直接给出各个四分位值或者数据集
  14. POJ - 3376 Finding Palindromes(拓展kmp+trie)
  15. AndroidStudio
  16. 算法第一次作业(2.帐篷问题)
  17. neko虚拟机对象文档与扩充
  18. Round 1A 2022 - Code Jam 2022 C.Weightlifting(区间dp)
  19. BNU Training 2017.07.20 【(2+1+0.233)/11】[待补]
  20. EXSI6.7.0安装

热门文章

  1. 七牛 js JDK使用 - 上传APP 1
  2. 创弘星鹏科技:开抖音小店如何去选畅销类目
  3. Azkaban——使用指南
  4. java图片上传和加水印
  5. java soap 操作和发送soap消息
  6. Python程序设计之 —— 简易学生信息管理系统
  7. 物联网与区块链相关的国家标准
  8. 《光遇》收集翅膀技巧攻略:如何才能快速收集翅膀?
  9. RFS的web自动化验收测试——第5讲 工作区Run
  10. 时间序列模型 (五): 趋势外推预测方法