【问题标题】:Creating a shared HSQLDB database创建共享 HSQLDB 数据库
【发布时间】:2010-11-01 03:52:42
【问题描述】:

进程中的 HSQLDB 数据库不应被其他人打开,即使是基于文件的存储也是如此。

文档提示这是可能的:Server ModesAdvanced Topics,但我还没有找到如何激活此行为的 URL。

有没有人这样做以便他们可以分享如何做?

【问题讨论】:

    标签: java hsqldb


    【解决方案1】:

    我有在应用程序之外以服务器模式启动 HQLDB 并将多个应用程序连接到数据库的经验。

    doc 中所述,该过程非常简单。

    【讨论】:

    • 什么意思?我是否在进程中启动了服务器 - 否(我直接从操作系统运行它),我是否已连接到进程中的服务器 - 是的。你想做什么?您是否尝试在服务器模式下启动进程内服务器?
    【解决方案2】:

    以下对我有用:

    1. 从您的代码启动服务器,该代码显示在 HSQLDB 源代码中的 org.hsqldb.test.TestBase 代码中。比如:

      Server server = new Server();
      server.setDatabaseName(0, "test");
      server.setDatabasePath(0, "file:/path/to/db");
      server.start();
      
    2. 在同一个 JVM 中,像在普通(非服务器)程序中一样打开到同一个数据库的连接,例如:

      conn = DriverManager.getConnection("jdbc:hsqldb:file:/path/to/db");
      

    然后使用 conn 执行你想要的任何 SQL。

    在我自己的实验中,这似乎可行,并且适用于内存和文件数据库。

    当然,其他 JVM 需要使用 TCP 连接到服务器。尝试直接在另一个 JVM 中打开数据库文件会导致数据库被锁定的常见错误。

    【讨论】:

      猜你喜欢
      • 2014-12-27
      • 2016-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      • 2011-04-06
      • 1970-01-01
      相关资源
      最近更新 更多