从另一个客户端连接到内存中的HSQL数据库(由Spring启动)

时间:2014-10-10 17:26:57

标签: java spring spring-mvc hsqldb in-memory-database

我使用以下Spring配置创建了一个HSQL数据库:

<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的数据库支持)连接该数据库的相同实例,以便出于开发原因更改/监视某些表的状态。可能吗?怎么样?如果没有,是否有任何替代方案/解决方法?

1 个答案:

答案 0 :(得分:0)

你做不到。在嵌入模式下打开的HSQL数据库以独占模式打开,只能在一个JVM中使用。

有不同的选择:

  • Spring应用程序可以实现一个允许对数据库进行管理监督的协议
  • 您可以在服务器模式下使用数据库而不是嵌入模式

在服务器模式下,有一个专用应用程序以独占模式(服务器)打开数据库,然后任何客户端应用程序连接到服务器。但是你不能再使用<jdbc:embedded-database id="dataSource" type="HSQL">,因为它是一个真正的jdbc服务器。