当前位置: 首页 > 面试题库 >

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

孙风畔
2023-03-14
问题内容

我使用以下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解答和ThomasMueller的评论。显然,Web控制台尝试自动附加.mv.db扩展名。即使已经有带有h2.db扩展名的文件。

.mv.db -files用于H2的即将推出/测试版存储类型“ MVStore”。

这是来自http://www.h2database.com/html/changelog.html的内容:

新的表引擎“ org.h2.mvstore.db.MVTableEngine”在内部使用MVStore保留数据。要进行尝试,请将“; DEFAULT_TABLE_ENGINE = org.h2.mvstore.db.MVTableEngine”附加到数据库URL。这仍然是非常试验性的,尚不支持许多功能。数据存储在后缀为.mv.db的文件中 。

因此,我将代码的H2版本从1.3.175升级到1.4.178,最后,我可以看到我的数据了…

编辑
这是@devdanke提出的替代解决方案:

您必须手动告诉H2 1.4.x不要使用MV_Store:“; mv_store = false”。真麻烦

例如,您将以类似于以下代码的结尾:

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


 类似资料:
  • 使用和启动H2管理系统 H2 管理系统让你能够通过一个浏览器对 H2 的 SQL 数据库进行管理操作。H2 管理系统不仅可以连接 H2 数据库,也可以连接其他支持 JDBC API 的数据库。 这是一个 C/S 应用,在服务器和客户端(浏览器)上都要运行 H2 的管理程序。根据平台不同,H2 管理系统支持多种启动应用的方式: 操作系统 启动 Windows 点击 [Start], [All Pro

  • 在H2文档中,它表示只有web服务器支持浏览器连接。这是否意味着我们只能在WebServer模式下通过控制台访问H2数据库,而不能通过TcpServer?但当我做以下测试时,结果完全不符合预期。 如果启动TcpServer,我可以通过以下url访问DB:jdbc:h2:tcp://localhost:9092/mem:test在控制台中。 但是当我启动WebServer时,我尝试使用jdbc: h

  • 我对一个应用程序的JPA层进行了几个单元测试。这个JPA层由JPA实体和一个提供持久化实体所需的基本API的服务组成。单元TET直接使用javax.Persistence类来处理PersistenceManager。然后测试持久性API,我可以在日志中看到创建表和序列等的SQL语句。 persistence.xml文件的相关部分如下所示: 我已经下载了Windows安装程序H2 1.4.200,并

  • 有人知道为什么吗?我该怎么解决?

  • 我在一个Spring Boot应用程序中使用H2数据库。但无法在http://localhost:8080/console的浏览器中打开它。我的pom.xml如下所示: Spring引导配置: Springboot配置文件

  • 我使用gradle idea运行project,以更新依赖项,然后使用gradlew build和gradlew run。没有错误,但当我转到localhost:8080/h2-console时,我得到的只是连接错误。我也试过用gradle Build。为什么会出现这种情况?我也使用IntelIJ,我有红色的build和gradle文件夹,为什么?我使用的是这个指南:https://www.bae