以CSV文件导入MySQL的批量数据插入操作之Java操作

最近工作涉及将excel中的数据导入到MySQL数据库,由于Excel中数据并不规范,需要进行二次加工。将excel中数据加工后,通过mybatis批量插入mySQL数据库,其相关联的技术点比较简单,经过半天的编写,算是把任务完成了。但测试时性能太差,处理2W条数据的excel文件需要将近两分钟,后来在网上了解到了通过load data infile的方式,让数据库去加载csv数据文件,效率能提高几十倍,所以小可打算尝试一下,最终效果真的很不错,加载5W条数据的excel文件时间可以控制在6秒以内【小可已经很满足了】,应该还可以优化,但是限于小可的能力,先把完成的工作做一个总结,也算是一个分享吧。

编程语言Java

平台框架Spring、Spring MVC、MyBatis

解析ExcelApache POI

生成CSVApache commons-csv

一、解析excel

        Workbook workBook = parseExcelGetWorkbook(is,fileName);
        Sheet sheet = workBook.getSheetAt(0);
        int rowsNum = sheet.getPhysicalNumberOfRows();
        List<List<String>> resultList = Lists.newArrayList();
        Row rootRow = sheet.getRow(0);
        int cellsNum = rootRow.getPhysicalNumberOfCells();
        for(int j=1;j<rowsNum;j++){
            Row row = sheet.getRow(j);
            List<String> list = new ArrayList<String>();
            for(int i=0;i<cellsNum;i++){
                Cell cell = row.getCell(i);
                if(cell!=null){
                    cell.setCellType(Cell.CELL_TYPE_STRING);
                    list.add(StringUtils.noNull(cell.getStringCellValue()));
                }else{
                    list.add("");
             
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值