如何在仅内存模式下运行HSQLDB服务器

时间:2009-09-30 12:38:58

标签: java hsqldb

在HSQLDB的文档中是一个命令行语句,用于启动HSQLDB服务器(HSQLDB Doc)。但是有这个“file:mydb”属性,所以我假设它不是仅在内存模式。

如何运行仅内存的HSQLDB服务器?

我跑了以下但是没有任何线索。

java -cp ../lib/hsqldb.jar org.hsqldb.Server -?

3 个答案:

答案 0 :(得分:9)

我花了大约2天的时间来弄清楚如何在内存中启动服务器然后从外部访问。希望这能节省一些人的时间。

Server server = new Server();
server.setDatabaseName(0, "mainDb");
server.setDatabasePath(0, "mem:mainDb");
server.setDatabaseName(1, "standbyDb");
server.setDatabasePath(1, "mem:standbyDb");
server.setPort(9001); // this is the default port
server.start();

当您必须访问任何CRUD的内存数据库时,您需要执行以下操作: -

String url="jdbc:hsqldb:hsql://192.168.5.1:9001/mainDb";
Class.forName("org.hsqldb.jdbc.JDBCDriver");
Connection conn = DriverManager.getConnection(url, "SA", "");

其中192.168.5.1是运行HSQL的服务器IP。要连接到standbyDb,请在第一行中将standbyDb替换为standbyDb。获得连接后,您可以执行所有与数据库相关的操作。

要使用DatabaseManagerSwing从远程连接到服务器,您需要执行以下操作。

下载hsqldb-x.x.x jar并将其复制到一个文件夹(x.x.x是该版本) 打开终端或命令提示符并cd到该文件夹​​并运行

java -cp hsqldb-x.x.x.jar org.hsqldb.util.DatabaseManagerSwing

从“类型”下拉列表中选择“HSQL数据库引擎服务器”,并将“jdbc:hsqldb:hsql://192.168.5.1:9001 / mainDb”作为URL。这将连接到远程HSQL内存服务器实例。

快乐编码!!
DbManagerSwing UI

答案 1 :(得分:6)

使用java -cp .\hsqldb-1.8.0.10.jar org.hsqldb.Server -database.0 mem:aname

在内存模式中由连接URL指定 - 所以如果需要,您可以在同一目录中拥有server.properties文件,并设置连接URL以使用mem协议 - 或者如果您在另一个允许您指定连接URL的应用程序中使用hsqldb,例如jdbc,指定jdbc:hsqldb:mem:aname

答案 2 :(得分:0)

我相信该文件用于将db加载到内存中,然后在Server停止时保持不变。我认为你在运行时不会访问该文件。

自从我使用HSQLDB(或H2)以来已经有一段时间了,但我很确定它是如何工作的。