创建共享的HSQLDB数据库

Rob*_*anu 5 java hsqldb

即使对于基于文件的存储,预计其他人也不会打开进程内HSQLDB数据库.

该文档暗示这是可能的:服务器模式,高级主题,但我还没有找到如何激活此行为的URL.

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

car*_*y m 5

以下适用于我:

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

    Server server = new Server();
    server.setDatabaseName(0, "test");
    server.setDatabasePath(0, "file:/path/to/db");
    server.start();
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在同一个JVM中,以与普通(非服务器)程序相同的方式打开与同一数据库的连接,例如:

    conn = DriverManager.getConnection("jdbc:hsqldb:file:/path/to/db");
    
    Run Code Online (Sandbox Code Playgroud)

然后使用conn执行您想要的任何SQL.

在我自己的实验中,这似乎有效,它适用于内存和文件数据库.

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