我知道这是非常基本的问题。但我了解到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.`**
答案 0 :(得分:0)
根据我的研究,我发现我们必须更改连接URL 才能在内存数据库中使用。
<property name="hibernate.connection.url"
value="jdbc:h2:mem:test;DB_CLOSE_DELAY=-1" />
<property name="hibernate.connection.url"
value="jdbc:h2:~/test;DB_CLOSE_DELAY=-1;AUTO_SERVER=TRUE"/>
<强> 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: