java - H2DB 文件中的表不会出现在 IDEA 中,但会显示在 H2 控制台中
问题描述
我有一些简单的 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 文件,它将在从应用程序进行数据操作后再次创建。
为什么应用程序和 H2 控制台向我显示表格,但 IDEA 没有?
解决方案
./dbs/database;AUTO_SERVER=TRUE
您可以指定数据库文件的路径,该文件相对于运行程序的正确工作目录进行解析。使用~/Documents/projects/java/seccomp/dbs/database
- 您指定它相对于您的用户主页。确保在这两种情况下您实际上指定了相同的路径。
推荐阅读
- android - Android 模拟器永远不会完成加载
- swift - 如何使用 swift 检查 Firebase DB 节点值是否为真?
- azure-cosmosdb - 带有继续令牌的文档 Db 存储过程无法更新所有记录
- java - 如何使用java过滤亚马逊ec2中的启动时间日期?
- hadoop - 如何知道哪个主机正在写入 HDFS 的目录?
- c# - 未安装字符集 ISO8859_1
- oracle - 使用 HQL/Hibernate 标准从每个部门获得前 5 名的薪水
- jersey-2.0 - 带有杰克逊序列化问题的 Jersey 2
- python - 根据两个字段的总和过滤数据
- ios - TableView 单元格选择无法正常工作