将嵌入式H2数据库加载到内存

时间:2016-03-08 15:01:32

标签: java jdbc h2

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

  1. 应用程序正在从可写存储(flash,hdd等)运行

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

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

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

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

    JdbcDataSource memory = new JdbcDataSource();

    memory.setURL(" JDBC:H2:MEM:默认&#34);

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

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

1 个答案:

答案 0 :(得分:0)

您可以执行SCRIPT命令:

SCRIPT TO '[some_location]'

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

`RUNSCRIPT FROM' [some_location]'

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