【问题标题】:How to run a HSQLDB server in memory-only mode如何在仅内存模式下运行 HSQLDB 服务器
【发布时间】:2010-12-02 15:24:28
【问题描述】:

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

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

我跑了以下,但没有得到任何线索。

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

【问题讨论】:

    标签: java hsqldb


    【解决方案1】:

    我花了大约 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

    【讨论】:

    • 这是我找到的唯一一个完整的基于程序内存的示例。
    【解决方案2】:

    使用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-1.8.0.10.jar 中的版本,但它可以工作。谢谢。
    【解决方案3】:

    我相信该文件用于将数据库加载到内存中,然后在服务器停止时持续存在。我认为您在运行时不会访问该文件。

    我已经有一段时间没有使用 HSQLDB(或 H2)了,但我很确定它是这样工作的。

    【讨论】:

    • 如果你从一个文件加载,它确实主要在内存中运行它,而且速度非常快,但如果你进行更改,它最终会将它们刷新回磁盘,这可能不是你想要的想。要解决此问题,您需要设置 hsqldb 'files_readonly' 选项。在连接字符串中执行此操作无效,但您可以在 DB 属性文件中执行此操作:第一次运行上述内容时,如果 mydb.properties 不存在,它将创建它。在底部添加一个新行“hsqldb.files_readonly=true”,就完成了。
    猜你喜欢
    • 1970-01-01
    • 2011-11-17
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多