H2 控制台无法看到由 JAVA 创建的表
我已从 http://www.h2database.com/html/download.html 下载了 H2 控制台
,并将文件中
的 URL 配置为 。jdbc.properties
jdbc:h2:c:/data/Messaging
我在文件中使用相同的URL连接到数据库,但我看不到表;我只能看到信息架构,当我尝试在其中时,我也不能看到表格。select * from tables
有没有人知道可能出了什么问题?
我已从 http://www.h2database.com/html/download.html 下载了 H2 控制台
,并将文件中
的 URL 配置为 。jdbc.properties
jdbc:h2:c:/data/Messaging
我在文件中使用相同的URL连接到数据库,但我看不到表;我只能看到信息架构,当我尝试在其中时,我也不能看到表格。select * from tables
有没有人知道可能出了什么问题?
一个棘手的事情是,如果您尝试连接到不存在的JDBC URL,H2控制台不会给您错误。相反,它将在该 URL 上创建一个新数据库!要连接到内存中数据库,请使用以下 JDBC URL(http://localhost:8080/h2-console 是默认控制台):
jdbc:h2:mem:testdb
如果您要输入类似jdbc:h2:~/test的内容,则会在您的主目录下创建一个 test.mv 文件。但是您的应用程序仍将使用内存中的数据库。
如果您的pom中有h2依赖项,并且还有spring开发人员工具依赖项,则控制台可用。如果您没有工具依赖项,则还可以通过具有 h2 依赖项并将以下内容添加到 application.properties 文件中来查看它:
spring.h2.console.enabled=true #not needed if you have spring-boot-devtools dependency
如果希望将 db 作为文件而不是内存,请将以下内容添加到 applications.properties 中:
spring.datasource.url=jdbc:h2:~/test_db #You will see the file in your home directory.
H2 不用于持久化数据,但如果要持久化以用于测试目的,请添加:
spring.jpa.hibernate.ddl-auto = update
然后启动应用程序,并在控制台上使用此 JDBC URL:
jdbc:h2:~/test_db
如果您想知道,我在 application.properties 中只有 1 个条目(用于数据库文件),以下是我的依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
这是使用 h2 模块启用内存启用数据库的方法。您需要确保以下事项
spring.h2.console.enabled=true
localhost:8080/h2-console
JDBC URL:
-> jdbc:h2:mem:testdb