如何浏览h2database

时间:2017-05-02 09:57:37

标签: java spring h2

我在运行模式的spring应用程序中使用h2

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

我能够插入和提取数据(使用邮递员),但我想亲自查看数据库并探索方案和数据

我正在使用Intellij

我已经安装了H2客户端http://www.h2database.com/html/main.html 并通过sa和空白密码浏览(不明白为什么密码是空白的,也不知道如何更改密码)

我的桌子在哪里?我是否连接到正确的实例?enter image description here

enter image description here

更新 我看到当我停止我的Spring应用程序时,我仍然可以通过H2控制台浏览到H2,我当时希望它会离线...我没有得到它

3 个答案:

答案 0 :(得分:0)

如果您使用的是内存中的h2数据库,请使用以下JDBC网址。

jdbc:h2:mem:testdb

检查How to connect H2 console to embedded Spring H2 DB

后发布的配置

答案 1 :(得分:0)

我发现只有在使用文件数据库时才能这样做。

url: jdbc:h2:~/nexin;DB_CLOSE_DELAY=-1;MODE=MySQL;MV_STORE=FALSE;MVCC=FALSE

我使用的是dbVizualizer而不是Intelij。

答案 2 :(得分:0)

作为H2 documentation says

  

支持以下连接模式:

     
      
  • 嵌入模式(使用JDBC的本地连接)
  •   
  • 服务器模式(使用JDBC或ODBC over TCP / IP进行远程连接)
  •   
  • 混合模式(同时本地和远程连接)
  •   

为了能够从两个独立的应用程序简单地连接到数据库,连接模式应该是Server ModeMixed Mode(有关详细信息,请阅读h2文档)。您使用的模式取决于您用来连接它的连接网址,在您的情况下,连接网址为jdbc:h2:~/test,这意味着您在Embedded Mode中启动了H2。这意味着数据库服务器将从您的应用程序中启动,并且只能由该单个JVM访问。

<强> TLDR

您只需使用Mixed mode功能将模式更改为Automatic Mixed-Mode即可。为此,只需将您的jdbc网址(在两个应用程序中 - 您的应用和客户端应用)更改为:jdbc:h2:~/databasefile;AUTO_SERVER=TRUE

~/databasefile是存储实际数据的位置 - 同样,为两个连接/应用程序访问同一文件也很重要。

如果您使用默认配置的Spring Boot,要更改jdbc网址,您只需添加以下属性:

spring.datasource.url=jdbc:h2:~/databasefile;AUTO_SERVER=TRUE