我有一个带有URL的H2数据库"jdbc:h2:test"。我使用创建表格CREATE TABLE PERSON (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(64), LASTNAME VARCHAR(64));。然后,我使用从(空)表中选择所有内容SELECT * FROM PERSON。到目前为止,一切都很好。
"jdbc:h2:test"
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]。我可能在这里缺少一些简单的东西,但是任何帮助将不胜感激。
"jdbc:h2:mem:test"
org.h2.jdbc.JdbcSQLException: Table "PERSON" not found; SQL statement: SELECT * FROM PERSON [42102-154]
hbm2ddl在创建表后关闭连接,因此h2放弃该连接。
如果你的连接网址是这样配置的
jdbc:h2:mem:test
在最后一个连接关闭时,数据库的内容会丢失。
如果要保留内容,则必须像这样配置网址
jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
如果这样做,h2将保留其内容,直到虚拟机存活。