【发布时间】:2010-12-02 15:24:28
【问题描述】:
在 HSQLDB 的文档中,有一条命令行语句用于启动 HSQLDB 服务器 (HSQLDB Doc)。但是有这个“file:mydb”属性,所以我假设它不是内存模式。
如何运行仅内存的 HSQLDB 服务器?
我跑了以下,但没有得到任何线索。
java -cp ../lib/hsqldb.jar org.hsqldb.Server -?
【问题讨论】:
在 HSQLDB 的文档中,有一条命令行语句用于启动 HSQLDB 服务器 (HSQLDB Doc)。但是有这个“file:mydb”属性,所以我假设它不是内存模式。
如何运行仅内存的 HSQLDB 服务器?
我跑了以下,但没有得到任何线索。
java -cp ../lib/hsqldb.jar org.hsqldb.Server -?
【问题讨论】:
我花了大约 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,请将第一行中的mainDb 替换为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
【讨论】:
使用java -cp .\hsqldb-1.8.0.10.jar org.hsqldb.Server -database.0 mem:aname
内存模式由连接 url 指定 - 因此,如果需要,您可以在同一目录中拥有一个 server.properties 文件,并将连接 url 设置为使用 mem 协议 - 或者如果您正在使用hsqldb 在另一个允许你指定连接url的应用程序如jdbc,指定jdbc:hsqldb:mem:aname。
【讨论】:
我相信该文件用于将数据库加载到内存中,然后在服务器停止时持续存在。我认为您在运行时不会访问该文件。
我已经有一段时间没有使用 HSQLDB(或 H2)了,但我很确定它是这样工作的。
【讨论】: