H2DB 文件中的表不会出现在 IDEA 中,但会显示在 H2 控制台中

Posted

技术标签:

【中文标题】H2DB 文件中的表不会出现在 IDEA 中,但会显示在 H2 控制台中【英文标题】:Tables from H2DB file doesn't appear in IDEA, but shows in H2 console 【发布时间】:2020-06-21 19:10:10 【问题描述】:

我有一些简单的 Spring Boot 项目,其中 H2db 文件的位置为 ./dbs/database.mv.db(来自我项目目录的 ./)。 application.properties 是:

spring.datasource.url=jdbc:h2:./dbs/database;AUTO_SERVER=TRUE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update

# Enabling H2 Console
spring.h2.console.enabled=true
# Custom H2 Console URL
spring.h2.console.path=/h2

所以,Spring Boot App 得到了它,并且可以使用其中的表进行操作,将数据存储在 DB 文件中。 localhost:8080/h2 的控制台也显示它。但我对 IDEA 有疑问:IDEA 仅通过绝对名称获得连接(带有 url jdbc:h2:~/Documents/projects/java/seccomp/dbs/database;AUTO_SERVER=TRUE 的嵌入式源)。但在这种情况下,IDEA 根本没有显示任何表格。我很困惑,可能 App 在目标目录中创建了一些表?不,如果我从 .dbs/ 中删除了我的 mv.db 文件,它将在从 Application 处理数据后再次创建。

为什么 Application 和 H2 Console 向我显示表格,但 IDEA 不显示?

【问题讨论】:

【参考方案1】:

使用./dbs/database;AUTO_SERVER=TRUE,您可以指定数据库文件的路径,该文件相对于运行程序的当前工作目录进行解析。使用~/Documents/projects/java/seccomp/dbs/database - 您相对于您的用户主页指定它。确保在这两种情况下您实际上指定了相同的路径

【讨论】:

以上是关于H2DB 文件中的表不会出现在 IDEA 中,但会显示在 H2 控制台中的主要内容,如果未能解决你的问题,请参考以下文章

分段错误不会出现在 Visual Studio 中,但会出现在学校服务器中

将 "\n" 添加到 Java String 时,换行符不会出现在 JSP 中,但会出现在标准输入中

如何从文件中的数据库中进行选择?

Linux 图像不会显示在主根文件夹中,但会显示在子文件夹中

H2DB:使用 AND 条件导致本地内存出错

将 target=_blank 添加到 react 按钮中的链接标签不会打开新页面但会禁用它?