为了账号安全,请及时绑定邮箱和手机立即绑定

H2内存数据库。找不到表格

H2内存数据库。找不到表格

Cats萌萌 2019-11-11 15:09:56
我有一个带有URL的H2数据库"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]。我可能在这里缺少一些简单的东西,但是任何帮助将不胜感激。
查看完整描述

3 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

hbm2ddl在创建表后关闭连接,因此h2放弃该连接。


如果您的连接网址是这样配置的


jdbc:h2:mem:test

在最后一个连接关闭时,数据库的内容会丢失。


如果要保留内容,则必须像这样配置网址


jdbc:h2:mem:test;DB_CLOSE_DELAY=-1

如果这样做,h2将保留其内容,直到虚拟机存活。


查看完整回答
反对 回复 2019-11-11
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

我知道这不是您的情况,但我遇到了同样的问题,因为即使我在所有脚本(包括创建脚本)中都使用小写字母,H2都使用大写名称创建表,然后区分大小写。

通过添加;DATABASE_TO_UPPER=false到连接URL来解决。


查看完整回答
反对 回复 2019-11-11
  • 3 回答
  • 0 关注
  • 2020 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信