【问题标题】:Load embedded H2 database to memory将嵌入式 H2 数据库加载到内存
【发布时间】:2016-03-08 15:01:32
【问题描述】:

我正在编写一个带有嵌入式 H2 数据库的可移植应用程序。所以,有两种情况:

  1. 应用程序正在从可写存储(闪存、硬盘等)运行

    这是默认情况。我使用 db 文件并将数据存储到该文件中。

    dataSource = new JdbcDataSource(); dataSource.setURL("jdbc:h2:./" + dbfile + ";MVCC=FALSE;MV_STORE=FALSE");

  2. 应用程序正在从只读存储(如 CD、smb、tsclient 等)运行

    在这种情况下,我用 DB 打开文件,然后我在内存中创建数据库

    JdbcDataSource 内存 = new JdbcDataSource();

    memory.setURL("jdbc:h2:mem:default");

    然后我使用带有大量 SELECT...INSERT...的脚本将所有数据从 fileDB 复制到 memoryDB...

有没有办法直接将db从文件加载到内存? 我可以更优雅地复制表格吗?

【问题讨论】:

  • 像Hibernate和H2一样使用ORM,加载对象,复制对象,持久化对象

标签: java jdbc h2


【解决方案1】:

可以执行SCRIPT命令:

SCRIPT TO '[some_location]'

将数据库的当前状态写入文件系统。然后使用RUNSCRIPT 命令:

RUNSCRIPT FROM '[some_location]'

在创建 jdbc:h2:mem 连接后加载数据库。 SCRIPT TO 和 RUNSCRIPT 对于这种类型的翻译非常方便,并为大型数据库文件提供可选的压缩。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 2022-01-20
    • 2017-03-05
    • 2016-01-22
    • 2016-11-02
    • 1970-01-01
    • 2020-04-12
    相关资源
    最近更新 更多