进程中的HSQLDB数据库不会被其他人打开,即使对于基于文件的存储也是如此。
文档提示可以:Server Modes,Advanced Topics,但我还没有找到有关如何激活此行为的网址。
有没有人这样做,所以他们可以分享如何?
答案 0 :(得分:5)
以下适用于我:
从您的代码启动服务器,该代码显示在HSQLDB源代码中的org.hsqldb.test.TestBase代码中。类似的东西:
Server server = new Server();
server.setDatabaseName(0, "test");
server.setDatabasePath(0, "file:/path/to/db");
server.start();
在同一个JVM中,以与普通(非服务器)程序相同的方式打开与同一数据库的连接,例如:
conn = DriverManager.getConnection("jdbc:hsqldb:file:/path/to/db");
然后使用conn执行你想要的任何SQL。
在我自己的实验中,这似乎有效,它适用于内存和文件数据库。
当然,其他JVM需要使用TCP连接到服务器。尝试直接在另一个JVM中打开数据库文件将导致关于数据库被锁定的常见错误。
答案 1 :(得分:0)
我在应用程序之外以服务器模式启动HQLDB并从多个应用程序连接到数据库时遇到过。
正如doc所述,这个过程很简单。