java - 在 Web 控制台中看不到我的 H2 数据库

标签 java h2

我用我的代码和这个 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/

相关文章:

java - SQL(Java,h2): What's the best way to retrieve the unique ID of the single item I just inserted into my database?

java - Spring - 未创建 CrudRepository

java - 当覆盖多个接口(interface)时,你能确定调用者的上下文吗?

java - 如何在两个不同的数据库上运行 JUnit 测试

java - JSCH依次执行并打印命令输出

java - 与 Swingworker 的对话是先有鸡还是先有蛋

java - h2 升级到 1.2.147 时出现问题 - getNString 异常

java - H2 数据库中的长字符串数据类型

java - JTable读取空值

java - 检索当前 Windows 用户的名字和姓氏?