我用我的代码和这个 URL 创建了一个 H2 数据库:
jdbc:h2:C:/data/fixed.db
我的代码可以创建表、执行查询。如果我手动打开文件,我可以成功地看到它的内容并查看创建查询等
但是,当我尝试通过 Web 界面使用 H2 控制台时,我看不到数据库。相反,Web 控制台创建另一个 空数据库,位于C:/data/fixed.db.mv.db
。我只是无法加载我的数据库。
我错过了什么?
编辑
我的代码使用 H2 1.3.175
Web 控制台 H2 1.4.178
最佳答案
终于解决了我的问题...
从 1.4.x 开始,H2 使用 MV_STORE(参见 SO 回答 here 和 Thomas Mueller 评论)。
显然,Web 控制台试图自动附加一个 .mv.db
扩展名。即使已经有一个扩展名为 h2.db
的文件。
所以,我将代码的 H2 版本从 1.3.175 升级到 1.4.178,最后,我可以看到我的数据...
编辑
这是 @devdanke 提出的替代解决方案:
You must manually tell your H2 1.4.x not to use MV_Store: ";mv_store=false". What a hassle.
例如,您将以类似于以下的代码结束:
Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection( //
"jdbc:h2:file:C:\\my\\java\\projects\\test;mv_store=false" //
);
关于java - 在 Web 控制台中看不到我的 H2 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24401635/