2014-10-10 127 views
0

內存HSQL數據庫(由春季推出),我創建了一個HSQL數據庫具有以下Spring配置:連接到另一個客戶端

<jdbc:embedded-database id="dataSource" type="HSQL"> 
    <jdbc:script location="resources/sql/schema.sql"/> 
    <jdbc:script location="resources/sql/test-data.sql"/> 
</jdbc:embedded-database> 

一切工作正常(一次)!我想從另一個客戶端連接同一個數據庫實例(我使用IntelliJ Ultimate的數據庫支持)來改變/監視某些表的狀態,以便於開發。可能嗎?怎麼樣?如果不是,有沒有其他選擇/解決方法?

回答

0

你不能。以嵌入模式打開的HSQL數據庫以獨佔模式打開,並且只能從單個JVM使用。

有不同的選擇:

  • Spring應用程序可以實現一個協議,允許數據庫的行政監督
  • 您可以使用服務器模式的數據庫,而不是嵌入模式的

在服務器模式下,有一個專用應用程序以獨佔模式(服務器)打開數據庫,然後任何客戶端應用程序連接到服務器。但是您不能再使用<jdbc:embedded-database id="dataSource" type="HSQL">,因爲它是一個真正的jdbc服務器。

+0

請注意,要在服務器模式下運行HSQLDB(允許來自外部客戶端的連接),您不需要在單獨的進程中啓動它。你可以通過實例化一個'org.hsqldb.server.Server'對象來將它嵌入到你的應用程序中。 – pacoverflow 2016-10-21 17:42:31