`
lida2006
  • 浏览: 3389 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

CSV文本数据导入工具实现

    博客分类:
  • java
阅读更多
BI系统数据的导入导出会经常碰到,如何实现简易的通用导入工具呢?而不需要每次都单独开发程序实现excel数据导入。我们可以采用opencsv来解析文本文件,具体思路如下:

1.文本文件导入上传服务器

可通过jquery的ajaxfileupload异步上传,不详加描述,网上有很多相关帮助实例;

2.CSV/TXT等文本格式数据文件解析入库

代码实例:

   long startTime=System.currentTimeMillis(); //计时开始
   conn = SQLHandler.getInstance().getConnection(“warehouse”);

   stmt = conn.createStatement(1004, 1007);
   rs = stmt.executeQuery(“select * from ” + tableName
     + ” where 1=2 “);
   ResultSetMetaData rsmd = rs.getMetaData();
   int cols = rsmd.getColumnCount(); //获取表的列数
   String paraStr = “”;
   for (int i = 0; i < cols; i++) {
    paraStr += “?”;
    if (i < cols – 1) {
     paraStr += “,”;
    }
   }

   conn.setAutoCommit(false);
   String sql = “INSERT INTO ” + tableName + ” VALUES (” + paraStr
     + “)”;  //构建insert sql

   pstmt = conn.prepareStatement(sql);

   // 全量需先清空表数据
   if (importType.equals(“2″)) {
    stmt.executeUpdate(“truncate table ” + tableName);
   }

   File file = new File(filePath);

   CSVReader reader = new CSVReader(new FileReader(PropertyUtil
     .getProperty(“export.path”)
     + file.getName()),delimiter.toCharArray()[0]);
   String[] nextLine = null;

   while ((nextLine = reader.readNext()) != null) { //逐行导入
    int colNum=(nextLine.length>cols?cols:nextLine.length);
    for (int i = 0; i < colNum; i++) {
     //System.out.println(nextLine[i] + ” “);
     pstmt.setObject(i + 1, nextLine[i]);
    }
    //列数据补全
    if(nextLine.length<cols)
    {
     for(int j=nextLine.length;j<cols;j++)
     {
      pstmt.setObject(j + 1, “”);
     }
    }
    pstmt.executeUpdate();
    cnt++;
    if(cnt%1000==0){
     System.out.println(“累计导入”+cnt+”条记录”);
    }
   }

   conn.commit();
   long endTime=System.currentTimeMillis();
   message = “文本数据入库成功,共导入” + cnt + “条记录!\n耗时”+(endTime-startTime)+”ms!”;

综上,采用jdbc逐条写入方式实现起来比较灵活,但对于大批量数据导入效率是不太理想,经测试1W条3字段的文本数据完成导入需70s左右。再大量级的数据导入建议后台操作或采用相关数据库工具,避免过长的页面等待时间。

分享到:
评论

相关推荐

    Excel导入CSV文件

    NULL 博文链接:https://hellosoft.iteye.com/blog/559700

    xls二维结构数据表转txt数据文本等4小工具集 v1.2.zip

    xls二维结构数据表转txt数据文本等4小工具集包括xls二维结构数据表转txt数据文本、csv数据文本、mysql语句及数据预览小工具。 xls二维结构数据表转txt数据文本等4小工具集 v1.2更新日志 改进读取方式,解决读取...

    OLEDB读取Excel、csv出现字符串截断、丢失原因及其解决方案

    在应用程序的设计中,经常需要读取Excel数据或将Excel数据导入转换到其他数据载体中,例如将Excel数据通过应用程序导入SQL Sever等数据库中以备使用。笔者在开发“汽车产业链ASP协同商务平台”中遇到了类似需求。某...

    comms-analyzer-toolbox:使用Elasticsearch和Kibana对通信内容(例如电子邮件MBOX文件和CSV文本数据)进行取证分析,搜索和作图的工具

    Docker镜像提供了简化的工具集,用于使用Elasticsearch和Kibana从电子邮件文件以及其他CSV数据(例如文本消息)导入和分析通信内容。 这提供了一个命令,该命令可以启动完整的分析软件堆栈,并将所有通信导入其中,...

    《Matlab编程实例视频教程系列33:Matlab 导入导出》文档讲义

    33.10 实例 分类提取文本数据 33.11 逐行读取数据fgetl 33.12 读取二进制数据fread 33.13 移动文件指针fseek 33.14 二进制数据写出到文件fwrite 33.15 格式化混合数据写出到文件fprintf 33.16 导入工具 33.17 实例 ...

    进行一些Matlab的学习,也基于Matlab进行机器学习的练习.rar

    我们可以使用Matlab的数据导入工具来导入数据。Matlab支持多种数据格式,包括CSV、Excel和文本文件等。我们还可以使用Matlab的数据可视化工具来查看数据的分布和特征。 接下来,我们需要选择机器学习算法。Matlab...

    基于Hadoop豆瓣电影数据分析实验报告

    注意:豆瓣网站的数据形式为文本文件(必须将导入到hive中做处理)。也可以为CSV文件,例如下图: 针对本次实验,我们需要用到Hadoop集群作为模拟大数据的分析软件,集群环境必须要包括,hdfs,hbase,hive,flume...

    MATLAB 的一些完整项目,包括机器人仿真,SLAM,视觉识别,和底层的通信等等.rar

    我们可以使用Matlab的数据导入工具来导入数据。Matlab支持多种数据格式,包括CSV、Excel和文本文件等。我们还可以使用Matlab的数据可视化工具来查看数据的分布和特征。来源地址:...

    Kettle关于平面数据的导入

    开源软件kettle是个好工具 效率高 CSV全称 Comma Separated values,是一种用来存储数据的纯文本,文件格式,通常用于电子表格或数据库软件

    MyImport

    一款跨平台(Windows和Linux)的MySQL数据库数据导入工具,可以导入许多不同的数据格式,如MS Excel, MS Access (只能windows版本),DBF, TXT和CSV 文本文件等。带有一个数据导入向导,可以设置所有的导入选项,也...

    EMS MySQL Import v1.6.0.1

    一款跨平台(Windows和Linux)的MySQL数据库数据导入工具,可以导入许多不同的数据格式,如MS Excel, MS Access (只能windows版本),DBF, TXT和CSV 文本文件等。带有一个数据导入向导,可以设置所有的导入选项,也...

    robotframework-datadriver:该库可为Robot Framework提供CSV表的数据驱动测试

    这些数据文件可以是.csv,.xls或.xlsx文件。 数据驱动程序还可以与Microsoft PICT合作。 用于数据组合测试的开源Windows工具。 Pict能够基于文本模型定义生成数据组合。 也可以在Python中实现自己的DataReader,以...

    DBF格式转换器源代码

    DBF文件是一种数据库文件... 3、数据处理:转换成CSV或XLS格式可以使数据更容易被导入到数据分析工具或电子表格软件中,从而进行更高级的数据处理和分析; 4、共享和发布:这些现代文件格式更适合于共享和发布数据。

    windowx64 oracle12.2.0.1.0 命令行工具集

    exp 和 imp: exp 和 imp 是 Oracle 提供的导出和导入工具,用于在 Oracle 数据库之间导出和导入数据、表、索引、视图等数据库对象。 wrc: wrc 是 Oracle 的 Workload Replay Capture 工具,用于捕获生产环境的工作...

    一款来自国外小哥研发的超超超超好用的Sql处理工具!

    从各种来源导入数据,包括 CSV 文件、文本文件和 XML 文件。 将数据导出为多种格式,包括 CSV 文件、文本文件和 XML 文件。 清理和转换数据。 加入表格。 组数据。 计算统计数据。 创建报告。 SQL文件处理工具简单...

    python的语句.docx

    首先需要导入csv模块,然后使用csv.reader()函数来读取CSV文件中的数据。例如: import csv with open('data.csv', 'r') as file: reader = csv.reader(file) for row in reader: print(row) 这个例子中,我们打开名...

    【最新版】navicatess150_premium_en.dmg navicat-premium-essentials: 15.0.14【亲测可用】最好的数据

    使用导入/导出向导可以从纯文本格式(例如TXT,CSV,XML和JSON)进行数据转换。使用我们的内置编辑器添加,修改和删除记录,您可以在Tree View,JSON View和类似电子表格的经典Grid View中方便地进行编辑。Navicat ...

    TxtToPG 数据转换软件 v2.7官方版

    为您提供TxtToPG 数据转换软件下载...基本简介 TxtToPG是一个将文本(csv,tsv)文件数据导入PostgreSQL的工具,帮助用户快速轻松地将CSV和TXT格式的文档导入PostgreSQL数据库,以便导入需要的数据。其采用了简单的向导

    xls转txt等工具集 v1.2

    xls二维结构数据表转txt数据文本、csv数据文本、mysql语句及数据预览小工具。原理:读取.xls文件并显示为制表符分隔.txt格式文本,支持多表。 另1:dohtml.asp可预览xls效果。你可右键查看源文件将.xls格式转html...

    olca-converter:openLCA格式转换器的源代码

    这些数据存储为纯CSV文本文件,并包含在此存储库中。 使用模板转换数据集。 此外,此存储库中还包含不同数据格式的模式,样式表等。 这些其他资源可在)下找到。 建造 要构建此项目,您需要安装&gt; = 7并安装 。 这样...

Global site tag (gtag.js) - Google Analytics