【问题标题】:Handling large Input data in a Java Application在 Java 应用程序中处理大量输入数据
【发布时间】:2012-04-09 17:03:04
【问题描述】:

我有一个 Web 应用程序,我需要从 Excel 格式的文件中输入大量数据——比如 10,000 行和 200 列。然后我需要处理这些数据,然后从数据库中插入/更新/删除。

我尝试过将所有内容都放在 java 代码应用程序中,但结果太慢了。

有人可以提出更好的方法吗?注意我没有将这些数据放入某些类或对象中。我只是在处理和更新数据库。

【问题讨论】:

  • 你的问题似乎有点模糊,看起来更像是工作转储而不是其他任何东西。如果您展示了您所拥有的什么,这将有所帮助,否则您的问题非常很难回答。 为什么太慢了。 文件中有什么

标签: java import-from-excel


【解决方案1】:

我建议您使用流技术。使用 Apache Commons FileUpload: http://commons.apache.org/fileupload/streaming.html

然后一个一个地处理记录,这样你就不会分配内存。需要考虑的事项:如果您的流程在中间中断会发生什么?如果这对您很重要,请使用事务。不幸的是,我无法为您提供有关阅读 XLS 格式的提示,但如果您可以使用 CSV,事情会变得更简单 - 用于此的库很少。

您可以微调 FileUpload 以将数据存储在内存、磁盘或组合中。或者您可以相信它会做正确的事情。

【讨论】:

    【解决方案2】:

    不清楚您的应用程序中发生了什么:您是在与用户输入(上传)进行交互,还是只是在初始化应用程序?如果是后者,数据更新当然可以在安装应用程序时完成一次,而不是在请求阶段。如果是前者,则取决于很多因素:如何读取数据?文件 IO 可能非常慢;你如何更新数据库? - 使用存储过程?或者只是简单的 JDBC SQL 子句。如果整个过程似乎太慢而无法完成,也许某种后台线程会更好。

    【讨论】:

      猜你喜欢
      • 2021-08-09
      • 2012-07-16
      • 1970-01-01
      • 2013-01-10
      • 2011-01-10
      • 2011-11-24
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多