通过数据库工具访问 H2 嵌入式数据库的自己的模式/表



我有一个使用嵌入式(内存中)H2数据库的Web应用程序。似乎 H2 DB 在 Tomcat 启动时设置正确(服务器日志中没有错误),但是当访问数据库(通过应用程序)时,它似乎是"空的"(没有可用的应用程序表或数据,即使日志声明它们已被创建/插入)。

如何检查 H2 数据库是否真的设置好了?我一直在尝试使用数据库工具(例如 H2 控制台、DB 可视化工具)连接到数据库,但我不确定正确的数据库连接字符串或用户名/pw,因为它没有在项目中明确定义。

通过提高服务器日志中的日志级别,我至少可以检索以下信息:

Creating new JDBC Driver Connection to [jdbc:h2:mem:myDataSource;DB_CLOSE_DELAY=-1]

不确定我是否真的连接,因为我可以通过任何用户/pw 组合并且仍然可以"连接"?可能这不是正确的方法,因为我只能在数据库上检索INFORMATION_SCHEMA和 PUBLIC 的模式?

您不能使用内存数据库,即使是命名数据库,因为一旦关闭使用该数据库的最后一个 SQL 连接,数据库就会被清除。如果再次打开它,您唯一会看到的是information_schema表和视图。

我建议您改用嵌入式模式:数据库将被持久化,如果您启动了 H2 服务器,您可以在另一个进程、数据库查看器甚至 tcp 模式下打开它。

当你使用Tomcat时,我今天刚刚写了一个类似问题的答案(在WEB-INF目录中嵌入一个H2数据库)。

可能对您有帮助:https://stackoverflow.com/a/30638808/3956551

相关内容

最新更新