我有一个带有 URL "jdbc:h2:test"
的 H2 数据库。我使用 CREATE TABLE PERSON (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(64), LASTNAME VARCHAR(64));
创建一个表。然后我使用 SELECT * FROM PERSON
从这个(空)表中选择所有内容。到目前为止,一切都很好。
但是,如果我将 URL 更改为 "jdbc:h2:mem:test"
,唯一的区别是数据库现在只在内存中,这给了我一个 org.h2.jdbc.JdbcSQLException: Table "PERSON" not found; SQL statement: SELECT * FROM PERSON [42102-154]
。我可能在这里遗漏了一些简单的东西,但我们将不胜感激。
原文由 Jorn 发布,翻译遵循 CC BY-SA 4.0 许可协议
DB_CLOSE_DELAY=-1
hbm2ddl 在创建表后关闭连接,因此 h2 将其丢弃。
如果您的连接网址配置如下
数据库的内容在最后一个连接关闭时丢失。
如果你想保留你的内容,你必须像这样配置 url
如果这样做,只要 vm 存在, h2 就会保留其内容。
注意分号 (
;
) 而不是冒号 (:
)。请参阅 功能 页面 的内存数据库 部分。去引用: