在HSQLDB的文档中是一个命令行语句,用于启动HSQLDB服务器(HSQLDB Doc)。但是有这个“file:mydb”属性,所以我假设它不是仅在内存模式。
如何运行仅内存的HSQLDB服务器?
我跑了以下但是没有任何线索。
java -cp ../lib/hsqldb.jar org.hsqldb.Server -?
答案 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)以来已经有一段时间了,但我很确定它是如何工作的。