Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 无法从其他工具访问内存中的Spring引导数据库_Hibernate_Spring Boot_Spring Data Jpa_H2 - Fatal编程技术网

Hibernate 无法从其他工具访问内存中的Spring引导数据库

Hibernate 无法从其他工具访问内存中的Spring引导数据库,hibernate,spring-boot,spring-data-jpa,h2,Hibernate,Spring Boot,Spring Data Jpa,H2,我正试图从intellij控制台访问内存中的H2数据库。我正在使用SpringBoot来配置一切。连接字符串是:spring.datasource.url=jdbc:h2:mem:testdb 当我使用intellij连接到数据库时,我无法查看或查询表。我可以运行CREATETABLE命令来获取它,但仅此而已。以下是该配置的图像: SHOW TABLES查询的结果不返回任何内容 为什么我不能连接到此数据库?当使用内存中的数据库(如H2或HSQLDB)时,内存中的实例只能从应用程序访问 如果你想

我正试图从intellij控制台访问内存中的H2数据库。我正在使用SpringBoot来配置一切。连接字符串是:spring.datasource.url=jdbc:h2:mem:testdb

当我使用intellij连接到数据库时,我无法查看或查询表。我可以运行CREATETABLE命令来获取它,但仅此而已。以下是该配置的图像:

SHOW TABLES查询的结果不返回任何内容


为什么我不能连接到此数据库?

当使用内存中的数据库(如H2或HSQLDB)时,内存中的实例只能从应用程序访问


如果你想拥有一个共享数据库(这样你就可以看到里面有什么),你必须在[服务器模式][2]下启动它,或者改用基于文件的模式(
jdbc:h2:~/your db
)。

@m-deinum的答案通常是正确的,因为默认情况下它只对应用程序可用。如果要从外部访问内存中的实例,必须:

  • 并使用tcp连接字符串或
  • 并将其用于登录或
  • 启用并使用其设施检查数据库

并确保应用程序正在运行。否则,您只需在mem实例中创建另一个实例。

为什么您决定您的应用程序不运行您的模式?我运行了您的代码并运行了它。我建议在您的属性文件中启用h2控制台:
spring.h2.console.enabled=true
spring.h2.console.path=/console
,这样您就可以从浏览器()中查询数据库了。这只是从您的日志:
从类路径资源[schema-h2.SQL]执行SQL脚本
不要使用h2控制台,使用直接访问DB:当然,您看不到它。。。它是内存中的数据库,仅对应用程序可用。您基本上是从IntelliJ开始一个新的db。您必须在服务器模式下启动H2并连接到它,或者使用基于文件的URI而不是内存中的URI。