使用嵌入式Java数据库从Web处理CSV文件

时间:2008-12-20 12:24:26

标签: java csv hsqldb data-processing

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

这是一个无人值守的过程。

详细说明:

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

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

  1. 在HSQLDB中创建一个新数据库。
  2. 三个启动三个HTTP GET 线程使用Apache HttpClient。
  3. 将CSV导入三个HSQLDB 记忆表。
  4. 运行一些SQL。
  5. 将结果解析为现有结果 DTO的。
  6. 等等...
  7. 我可以使用对项目1和3有用的代码和实用程序的指针。还有我应该考虑的HSQLDB的替代方案吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

要使用的命令行应用程序是HSQLDB附带的SqlTool实用工具jar。您的过程可以完成如下:

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

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