2014-10-10 183 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