0

简短版本:假设我不想长时间保留数据,如何在 HSQLDB 中以编程方式创建数据库并将一些 CSV 数据加载到其中?我的架构将与文件完全匹配,并且文件确实有足够的列名。

这是一个无人看管的过程。

细节:

我需要对通过网络下载的三个 CSV 文件应用一些简单的 SQL 技术,然后创建一些 DTO,然后我可以使用这些 DTO 与一些现有代码一起处理它们,并通过 REST 保存它们。我真的不想搞乱数据库,但 CSV 文件是通过外键链接的,所以我正在考虑使用内存中的嵌入式数据库来完成这项工作,然后把所有东西都扔掉。

我想到了一个像这样工作的命令行应用程序:

  1. 在 HSQLDB 中创建一个新的数据库。
  2. 使用 Apache HttpClient 在三个线程中启动三个 HTTP GET。
  3. 将 CSV 导入三个 HSQLDB MEMORY 表。
  4. 运行一些 SQL。
  5. 将结果解析为我现有的 DTO。
  6. ETC...

我可以使用对第 1 项和第 3 项有帮助的代码和实用程序的指针。还有我应该考虑的 HSQLDB 的替代方案吗?

4

2 回答 2

1

要使用的命令行应用程序是随 HSQLDB 提供的 SqlTool 实用程序 jar。您的程序可以完成如下:

  1. 创建一个新的 HSQLDB 内存数据库(只需连接到内存数据库)。
  2. 使用 Apache HttpClient 启动三个 HTTP GET 以获取 CSV 文件。
  3. 创建三个 HSQLDB TEXT 表并将这些表的 SOURCE 设置为 CSV
  4. 运行一些 SQL。将结果解析为现有的 DTO。

提出问题时,无法在纯内存表中创建 TEXT 表。现在 HSQLDB 2.x 版本完全支持它。

于 2018-12-20T16:49:16.540 回答
0

检查opencvs。它可以帮助您解析 CSV 文件。

于 2008-12-20T12:30:29.010 回答