无法在Web控制台中查看我的H2数据库

时间:2014-06-25 06:26:11

标签: java h2

我用我的代码用这个URL创建了一个H2数据库:

  

JDBC:H 2:C:/data/fixed.db

我的代码可以创建表,执行查询。如果我手动打开文件,我可以成功查看其内容并查看创建查询等

但是,当我尝试在网络界面上使用H2控制台时,我无法看到数据库。相反,Web控制台会在此处创建另一个空数据库C:/data/fixed.db.mv.db。我只是无法加载我的数据库。

我错过了什么?

修改

我的代码使用H2 1.3.175
Web控制台H2 1.4.178

2 个答案:

答案 0 :(得分:6)

最后我解决了我的问题...

从1.4.x开始,H2使用MV_STORE(参见SO回答here和Thomas Mueller评论)。 显然,Web控制台会尝试自动附加.mv.db扩展名。即使已存在h2.db扩展名的文件。

所以,我将我的代码的H2版本从1.3.175升级到1.4.178,最后,我可以看到我的数据......

修改
以下是@devdanke提出的替代解决方案:

  

您必须手动告诉您的H2 1.4.x不要使用MV_Store:&#34 ;; mv_store = false"。真是个麻烦。

例如,您将使用类似于:

的代码结束
Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection( //
    "jdbc:h2:file:C:\\my\\java\\projects\\test;mv_store=false" //
);

答案 1 :(得分:0)

我认为jdbc:h2:C:/data/fixed.db

中不需要 .db

我使用了这两行,它对我来说很好用

Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection("jdbc:h2:file:G:\\projects\\test;MODE=MySQL;INIT=RUNSCRIPT FROM '~/test.sql'\\;");

我的代码只是通过名称​​ test.mv.db

创建了一个db文件格式