Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 通过DB工具访问H2嵌入式数据库的自己的模式/表?_Database_H2 - Fatal编程技术网

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

Database 通过DB工具访问H2嵌入式数据库的自己的模式/表?,database,h2,Database,H2,我有一个使用嵌入式(内存中)H2数据库的web应用程序。在Tomcat启动时,H2 DB似乎设置正确(服务器日志中没有错误),但在访问DB(通过应用程序)时,它似乎是“空的”(没有可用的应用程序表或数据,即使日志声明它们已创建/插入) 如何检查H2 DB是否真正设置?我一直在尝试使用DB工具(例如H2控制台、DB Visualizer)连接到DB,但我不确定正确的DB连接字符串或用户名/pw,因为它在项目中没有明确定义 通过提高服务器日志中的日志级别,我至少可以检索以下信息: Creating

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

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

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

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

不确定我是否真的连接了,因为我可以通过任何用户/pw组合,并且仍然可以“连接”?可能这不是正确的方法,因为我只能检索数据库上的SCHEMA信息\u SCHEMA和PUBLIC?

您不能使用内存数据库,甚至不能使用命名数据库,因为一旦使用它的最后一个SQL连接关闭,数据库将被清除。如果您再次打开它,您将看到的唯一内容是模式表和视图的信息

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

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

可能对您有帮助: