代码之家  ›  专栏  ›  技术社区  ›  Robert Munteanu

创建共享的hsqldb数据库

  •  5
  • Robert Munteanu  · 技术社区  · 15 年前

    进程中的hsqldb数据库不希望被其他人打开,即使是用于基于文件的存储。

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

    有人这样做是为了分享如何做到的吗?

    2 回复  |  直到 9 年前
        1
  •  5
  •   Robert Munteanu    14 年前

    以下对我有效:

    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中打开数据库文件会导致数据库被锁定的常见错误。

        2
  •  0
  •   FoxyBOA    15 年前

    我有在应用程序外部以服务器模式启动HQLDB以及从几个应用程序连接到数据库的经验。

    如中所述 doc 这个过程是直接的。