繁体   English   中英

哪种方法更适合导入电子表格数据?

[英]Which way would be better to import spreadsheet data?

我正在尝试使用Java将数据从speadsheet导入数据库。 我可以通过两种方式执行此操作:1)从Speardsheets中读取并提取数据,并将它们组织到数据结构中,例如ArrayList,Vector或不同对象的映射,这样我就可以摆脱多余的条目等,然后编写将数据结构放入数据库。 2)提取数据,并在读取和提取单元格时将其直接放入数据库中。 我认为第一种方法可能会更好,但是第二种方法会更快吗? 我应该考虑其他任何考虑因素吗?

谢谢。

您可能想在此处执行executeBatch() ,类似于方法1。 因此,基本上,您从电子表格中读取批大小(即1000条记录)的数据,然后一次提交一次批处理到数据库的提交。 之后,转到下一批,依此类推。 使用这种方法,您可以有效地利用数据库,节省网络旅行,并且也不会最终在内存中积聚大量数据,而这可能导致内存不足异常。 您还应该重新使用相同的连接和准备好的语句对象。

关于数据清理过程,在放入表之类的持久性存储之前,您绝对应该清理数据。 将来,您可能需要生成报告或在其他应用程序中使用数据,因此从长远来看,结构整洁且结构合理的表将为您提供帮助。 对于批处理应用程序, 通常对性能的要求不如事务处理系统高。

您还应该利用诸如apache poi之类的帮助程序库来读取Excel文档。 就数据结构而言,它取决于您的数据,但通常,这里的ArrayList就足够了。

您可能要考虑的另一点是,通常大多数ETL工具都提供了开箱即用的这类数据加载任务。 如果您的情况允许,我强烈建议您查看类似Kettle的ETL工具来加载数据。 您可能可以节省一些时间并学习新工具。

希望这可以帮助!

您可以考虑使用ETL工具(提取,转换和加载)来完成您要参考的任务

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM