`
lida2006
  • 浏览: 3470 次
  • 性别: 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左右。再大量级的数据导入建议后台操作或采用相关数据库工具,避免过长的页面等待时间。

分享到:
评论

相关推荐

    SuperMap iObjects Java 8C CSV格式数据导入生成几何数据集

    **SuperMap iObjects Java 8C CSV格式数据导入生成几何数据集** 在GIS(地理信息系统)领域,数据的导入和处理是至关重要的步骤。SuperMap iObjects Java 8C 是一款强大的开发工具,它提供了丰富的功能,使得开发者...

    oracle 文本导入工具

    Oracle文本导入工具是一种...通过使用这个工具,用户可以更高效、更可靠地将大量文本数据导入到Oracle数据库中,从而提高工作效率并减少潜在错误。对于需要频繁进行数据导入的团队和组织来说,这样的工具是宝贵的资产。

    使用csv文件批量导入数据

    CSV文件因其通用性、简单性和易读性而被大量用于数据导入和导出操作,特别是在数据库管理、数据分析以及各种应用程序之间交换数据时。 在描述中提到的"使用csv文件批量导入数据"是一个常见的业务场景,尤其在电商或...

    access数据导入工具

    Access数据导入工具是一款专为Microsoft Access数据库设计的实用软件,旨在简化用户的数据导入与导出过程。Access数据库是Microsoft Office套件的一部分,主要用于管理和存储结构化的数据,如表、查询、窗体、报表等...

    PLSQL导入.csv文件.docx

    PLSQL 导入 CSV 文件是指使用 PLSQL 语言将 CSV 文件的数据导入到 Oracle 数据库中。 在 PLSQL 中导入 CSV 文件之前,需要首先将 Excel 文件保存为 CSV 格式。这是因为 CSV 文件是文本文件,可以轻松地被 PLSQL ...

    CSV文件数据抽取

    TXT文件由于其简洁的文本格式,通常被用作数据导入和导出的便捷工具。 在CSV文件数据抽取的过程中,主要涉及以下几个步骤和相关的知识点: 1. **读取CSV文件**:首先需要使用编程语言(如Python、Java、R等)中的...

    各种csv格式的数据集

    CSV文件以纯文本形式存储数据,每一行代表一条记录,各字段之间由逗号分隔。有时,如果字段内含有逗号,会使用引号进行包围。这种格式使得CSV文件可以被多种数据分析工具,如Excel、Python的Pandas库、R语言等轻松...

    QQ邮箱txt转csv文本工具

    QQ邮箱txt转csv文本工具是一款专门用于处理邮箱数据的实用程序,主要功能是将从QQ邮箱导出的纯文本文件(.txt格式)转换为逗号分隔值(.csv)文件,以便用户能更方便地在电子表格软件如Microsoft Excel中进行数据...

    SqlServer数据导入工具

    【SqlServer数据导入工具】是一种高效实用的软件,旨在帮助用户便捷地将各种格式的数据文件,如Access、Excel、DBF、TXT、CSV以及XML文件,批量导入到Sql Server数据库中。这一工具极大地简化了数据迁移过程,对于...

    Excel导入CSV文件

    标题中的“Excel导入CSV文件”指的是在Microsoft Excel中将逗号分隔值(Comma Separated Values, CSV)格式的数据导入到工作表中。CSV文件是一种常见的数据交换格式,因其简单和通用性而广泛使用。它以纯文本形式...

    Csv导入导出.rar

    压缩包中的"导入导出"可能是实现CSV导入导出功能的代码示例或工具,可能包括了不同场景下的导入导出策略,比如错误处理、数据转换、类别选择等功能的实现。 总的来说,“Csv导入导出.rar”提供了一个全面的工具集...

    CSV 快速拆分工具

    CSV(Comma Separated Values)是一种常见的数据存储格式,它以逗号作为字段分隔符,使得数据在纯文本文件中可读且易于处理。在处理大量数据时,有时我们需要将一个大型CSV文件拆分为多个小文件,以便于管理、分析或...

    MATLAB 导入CSV数据的 脚本

    这篇博客“MATLAB导入CSV数据的脚本”提供了具体的方法,通过一个名为`lq_imp.m`的MATLAB脚本来实现这一功能。下面我们将详细探讨这个过程以及相关知识点。 首先,我们需要理解CSV文件的结构。CSV文件是一种简单的...

    csv导入sqlite工具

    在IT领域,将CSV数据导入SQLite数据库是常见的数据处理操作,尤其在数据分析、数据迁移或应用程序开发中。 1. CSV文件的基本结构与特性: - CSV文件每一行代表一条记录,每条记录由一个或多个字段组成。 - 字段...

    csv文件批量合并工具

    这种格式便于数据导入和导出,尤其适用于数据分析、报表生成和数据库管理。 2. **批量合并功能**:此工具的核心功能是能够一次处理多个CSV文件,将它们合并成一个单一的CSV文件。这对于需要整合来自不同来源或时间...

    csv导出大量数据

    CSV(Comma Separated Values)是一种常见的数据存储格式,它以纯文本形式存储表格数据,用逗号分隔每一列的值。在处理大量数据时,CSV文件因其轻量级、易于读写和跨平台兼容性而备受青睐。本篇文章将深入探讨CSV...

    Oracle 数据导入工具

    Oracle 数据导入工具是数据库管理员和开发人员用于高效地将大量数据加载到Oracle数据库中的利器。在Oracle环境中,SQL*Loader是这样一个强大的工具,它允许用户快速地从外部数据文件批量导入数据,而无需编写复杂的...

    CSV拆分工具.exe

    CSV(Comma Separated Values)是一种常见的数据存储格式,它以逗号作为字段分隔符,广泛用于数据交换和导入导出。CSV文件因其简单、通用性而被各种应用程序所支持,包括电子表格软件如Microsoft Excel和数据分析...

    hbase导出csv,文本,html文件

    4. **数据导入关系型数据库**:创建一个与Hive表结构匹配的关系型数据库表,然后使用ETL(提取、转换、加载)工具或SQL语句将Hive中的数据导入该数据库。 5. **数据导出**:在关系型数据库中,使用`SELECT INTO ...

    MSSql跨平台数据导入工具

    CSV文件尤其适合于不同系统间的数据传输,数据导入工具可以轻松处理这些文件,将数据批量导入SQL Server。 从标签"数据导入工具"我们可以理解,这个工具的主要功能就是帮助用户便捷、高效地完成数据迁移,无论数据...

Global site tag (gtag.js) - Google Analytics