【问题标题】:How to get stream to "in-memory" database created via H2DB?如何获取通过 H2DB 创建的“内存”数据库的流?
【发布时间】:2010-04-19 11:11:54
【问题描述】:

我必须创建这样一个机制:

  1. 创建内存 (H2DB) 数据库;
  2. 创建表格并使用一些数据填充它们;
  3. 获取该数据库的流;
  4. 通过 WebDAV 或其他方式发送该流;

除了“如何将流传输到通过 H2DB 创建的“内存”数据库”之外,我什么都知道?


还有一些解释:

  • 由于某些服务器限制,我无法创建文件;
  • 我需要该流来创建文件;

【问题讨论】:

    标签: java database stream h2


    【解决方案1】:

    您可以使用org.h2.tools.Script.execute(String url, String user, String password, OutputStream out) 从数据库创建 SQL 脚本。这甚至适用于内存数据库。

    您可以使用所谓的“in-memory file system”。但是,要将文件作为流获取,您需要使用内部 H2 文件 API (org.h2.IOUtils.openFileInputStream)。

    【讨论】:

    • 感谢您提供指向文件系统选项的链接。与这个问题无关,但我发现 nioMapped FileSystem 对于我的 300MB 数据集要快几个数量级。
    【解决方案2】:

    H2 支持 In-Memory Databases 使用数据库 URL jdbc:h2:mem:

    附录:连接到数据库后,您可以使用jdbc 提交查询以获得所需的数据。 DatabaseMetaData 可能对全面访问有用。流格式将取决于预期的目标。

    【讨论】:

    • 是的,我知道如何创建数据库以及如何操作它。但我不知道如何“转储”数据库以流式传输并将该流发送到另一个应用程序。
    • 我已经在上面详细说明了。你能在这种情况下澄清“转储”和“流”吗?
    猜你喜欢
    • 1970-01-01
    • 2010-09-23
    • 2012-02-28
    • 2014-06-23
    • 1970-01-01
    • 2021-10-28
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多