如何创建持久化 HSQL 数据库?

Posted

技术标签:

【中文标题】如何创建持久化 HSQL 数据库?【英文标题】:How to create a persistence HSQL database? 【发布时间】:2019-08-03 10:31:50 【问题描述】:

我是 HSQLDB 的新手,想创建一个持久性数据库,以便在打开 HSQLDB 时,已经创建的表及其内容存在。我在documentation 中阅读了有关 HSQLDB 的信息,但找不到相关信息。我当前的HSQLDB.bat 如下:

cd %HSQLDB%
java -cp ../lib/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing
REM java -cp ../lib/hsqldb.jar org.hsqldb.server.Server
REM java -classpath lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:hsqldb/demodb --dbname.0 testdb

运行批处理时,将打开以下对话框:

请注意,提交的 URL 包含 jdbc:hsqldb:mem:.

在 [OK] 之后,我调用了两个脚本,一个创建两个表,另一个用测试数据填充它们。但重新打开 HSQLDB 不会读取包含数据的表。

缺少什么,出了什么问题? SHUTDOWN 不会改变任何东西。我还用file 替换了mem,但无法使数据库持久化。我在 HSQLDB 指南中监督了什么?

【问题讨论】:

【参考方案1】:

使用Type: 的下拉列表并选择HSQL Database Engine Standalone,然后编辑建议的URL 以添加您的数据库文件路径,例如jdbc:hsqldb:file:///C:/Program Files/hsqldb-2.5.0/hsqldb/data/dbname,其中路径的最后一部分是数据库文件的名称。

首选绝对路径以避免依赖于执行批处理的目录。

【讨论】:

非常感谢!这就是解决方案!在您的回答中查看我的小修改!

以上是关于如何创建持久化 HSQL 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate、Spring 和 HSQL:找不到表异常

嵌入式 HSQLDB 将数据持久化到文件中

为啥我无法检索我刚刚保留的实体?

关闭应用程序后删除 Spring JPA 数据

使用hsql hibernate数据源隔离Junit测试

如何在 PHP + MySQL 中正确实现自定义会话持久化器?