2017-05-02 17 views
0

我使用的運行模式在我的春天應用H2如何瀏覽h2database

<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

UPDATE 我看到,當我停止我的Spring應用程序,我仍然能夠通過H2控制檯瀏覽到H2,我期待這將是離線...我不不明白

+0

您正在尋找在內存中的DB這是在過程H2瀏覽器,而不是您自己的應用程序中的嵌入式數據庫。不要將H2控制檯作爲單獨的應用程序運行,而是將其嵌入到自己的應用程序中。看到這個:[查看H2或HSQLDB內存數據庫的內容](http://stackoverflow.com/questions/7309359/view-content-of-h2-or-hsqldb-in-memory-database)。 – Jesper

回答

0

如果您使用的是內存中的h2數據庫,請使用下面的JDBC url。

jdbc:h2:mem:testdb 

檢查在郵局How to connect H2 console to embedded Spring H2 DB

+0

它不工作,或者我不明白,什麼是testdb?這個名字來自哪裏? – user829174

+0

testdb是Spring分配的默認數據庫名稱。 – abaghel

+0

好的。我仍然沒有看到我的桌子,我看到與我附加的圖像一樣 – user829174

0

提供的配置我發現,我只能這樣做,當我使用的文件數據庫。

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

我在使用dbVizualizer而不是Intelij。

0

作爲H2documentation says

以下連接模式被支持:

  • 嵌入模式(本地連接使用JDBC)
  • 服務器模式(使用JDBC或ODBC通過TCP遠程連接/ IP)
  • 混合模式(同時本地和遠程連接)

爲了能夠簡單地從兩個單獨的應用程序連接到數據庫,連接方式應Server ModeMixed Mode(讀作進一步信息H2文檔)。您使用的模式取決於您用來連接的連接網址,在您的情況下,連接網址爲jdbc:h2:~/test,這意味着您在Embedded Mode中啓動H2。這意味着數據庫服務器將從您的應用程序中啓動,並且只能訪問該單個JVM。

TLDR

你可以簡單地使用Automatic Mixed-Mode功能的模式改變爲Mixed mode。爲此,只需將您的jdbc網址(在這兩個應用程序中 - 您的應用程序和客戶端應用程序)更改爲:jdbc:h2:~/databasefile;AUTO_SERVER=TRUE

~/databasefile是存儲實際數據的位置 - 同樣,訪問同一文件對於兩個連接/應用程序都很重要。

如果你使用Spring啓動使用缺省配置,改變JDBC URL,你只需要添加以下屬性:

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