如何找出H2 DB在内存中运行

时间:2014-09-14 17:58:57

标签: h2 in-memory-database

我知道这是非常基本的问题。但我了解到H2 DB可以在内存中运行,就像普通的DB(例如mysql)一样。我如何才能发现我的H2在内存中运行?

Multiple processes can access the same database without having to start the server manually.
To do that, append ;AUTO_SERVER=TRUE to the database URL. You can use the same database URL
independent of whether the database is already open or not. **This feature doesn't work with in-
`memory databases.`**

1 个答案:

答案 0 :(得分:0)

根据我的研究,我发现我们必须更改连接URL 才能在内存数据库中使用。

在内存中使用h2:

<property name="hibernate.connection.url"
 value="jdbc:h2:mem:test;DB_CLOSE_DELAY=-1" />

在HDD上使用h2:

<property name="hibernate.connection.url"
 value="jdbc:h2:~/test;DB_CLOSE_DELAY=-1;AUTO_SERVER=TRUE"/>

连接URLS的说明:

  

根据:h2database.com

     

<强> DB_CLOSE_DELAY = -1

     
    

默认情况下,关闭与数据库的最后一个连接会关闭数据库。对于内存数据库,这意味着内容丢失。要使数据库保持打开状态,请将DB_CLOSE_DELAY = -1添加到数据库URL。要在虚拟机处于活动状态时保留内存数据库的内容,请使用jdbc:h2:mem:test; DB_CLOSE_DELAY = -1。

  
     

<强> AUTO_SERVER = TRUE

     
    

多个进程可以访问同一个数据库,而无需手动启动服务器。为此,请将AUTO_SERVER = TRUE附加到数据库URL。您可以使用相同的数据库URL,而不管数据库是否已打开。此功能不适用于内存数据库。示例数据库URL: