java代码将csv格式的文件导入数据库
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格式的文件导入数据库相关推荐
- mysql数据导入导出 CSV格式_导出mysql的数据为csv格式的文件
Mysql自带数据导出的命令 into outfile(本地导出) SELECT * FROM server_warning_repaired into outfile '/tmp/test.csv' ...
- java代码使用ImageJ解析dicom文件成图片
ImageJ解析dicom文件成jpg图片 Dicom全称是医学数字图像与通讯,这里讲java解析diocm格式文件变成jpg示例. 这里的代码只能解析普通的dicom文件成jpg图片,对于压缩的di ...
- php导出csv_原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
本文实例讲述了原生PHP实现导出csv格式Excel文件的方法.分享给大家供大家参考,具体如下: 效果图 源码分析 index.php require_once "./Export.php& ...
- CSV文件导入数据库后中文乱码
CSV文件导入数据库后中文乱码 背景:我用的是Dbeaver连接的clickhouse数据库,向现场的同事要了数据(CSV格式文件),导入后都是途中这样的,根本用不了.在网上找到同样的情况的文章,记录 ...
- Android 读取csv格式数据文件
前言 什么是csv文件呢?百度百科上说 CSV是逗号分隔值文件格式,也有说是电子表格的,既然是电子表格,那么就可以用Excel打开,那为什么要在Android中来读取这个.csv格式的文件呢?因为现在 ...
- CSV格式的文件与EXCEL文件的区别
CSV格式的文件与EXCEL文件的区别 Excel CSV 这是一个二进制文件,它保存有关工作簿中所有工作表的信息 CSV代表Comma Separated Values .这是一个纯文本格式,用逗号 ...
- .csv格式的文件是怎么编码的
.csv是数据集中的常用格式,但是我们总是直接使用 Excel等软件直接打开了,或者直接copy别人的数据处理代码.但总有要自己动手丰衣足食的时候,此时我们就需要知道.csv是如何编码的了. 当我学过 ...
- excel xml mysql数据库,数据库文本文档excel表格-excel xml格式的文件 导入到 MYSQL 数据库的语句...
教你怎样将Word表格导入到Excel中 方法如下: 1.首先,打开媒介工具"记事本",将word文件里需要导入的数据,复制粘贴到记事本当中,然后保存成为txt文件,本例中将txt ...
- Java代码的基本格式及注释
Java代码的基本格式: 修饰符 class 类名{ 程序代码 } 注:Java中的程序代码必须放在一个类中 在编写时要注意如下: 1.Java中的程序代码可分为:结构定义语句(用于声明一 ...
最新文章
- react-native 组件之间传值
- Objective-C学习笔记(十九)——对象方法和类方法的相互调用
- STM32:从菜鸟到牛人就是如此简单!为了学习单片机而去学习单片机的思路是不对的
- MySQL外键关联(一对多)MySQL连接查询
- python访问web网页_python访问web的利器:urllib2
- advances search design time和runtime显示差异的原因
- 树莓派UART串口编程--使用wiringPi库-C开发【1-基础应用】
- spss相关性分析看结果_spss相关性分析
- 列举python中可变数据类型_python 可变数据类型 和 不可变数据类型
- java实验 输入输出_实验十三 Java输入输出(一)
- 两个table怎么对齐_Origin教程|“师兄,图表坐标轴下的分组表格是怎么添加的?”...
- python中的pylab_Python数值计算:一 使用Pylab绘图(1)
- 箱线图2种画法-直接给出各个四分位值或者数据集
- POJ - 3376 Finding Palindromes(拓展kmp+trie)
- AndroidStudio
- 算法第一次作业(2.帐篷问题)
- neko虚拟机对象文档与扩充
- Round 1A 2022 - Code Jam 2022 C.Weightlifting(区间dp)
- BNU Training 2017.07.20 【(2+1+0.233)/11】[待补]
- EXSI6.7.0安装