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

时间:2014-11-26 07:35:31

标签: database h2

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

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

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

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

不确定我是否真的被连接,因为我可以传递任何用户/ pw组合,但仍然可以"连接"?可能它不是正确的方法,因为我只能在DB上检索模式INFORMATION_SCHEMA和PUBLIC?

1 个答案:

答案 0 :(得分:0)

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

我建议您使用嵌入式模式:数据库将被保留,稍后您可以在另一个进程,数据库查看器中打开它,如果启动了H2服务器,甚至可以在tcp模式下打开它。

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

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