【发布时间】:2015-10-06 15:37:39
【问题描述】:
我有一个 mydata.properties 和 mydata.script 形式的 HSQLDB 1.8。在 mydata.script 中,有一些基本的 SQL 语句来创建模式和填充数据库。
当我使用标准的 Java JDBC 调用加载这个数据库时,我注意到在文件系统上,似乎发生了以下情况:
- 正在创建文件 mydata.script.new。
- 文件 mydata.script 已删除。
- mydata.script.new 重命名为 mydata.script
如何防止 mydata.script 被删除?这是正常的 HSQLDB 行为吗?
我希望 mydata.script 始终在文件系统中保留(及其时间戳),它是作为只读数据源的。
编辑:manual 确实声明这是附录 C 中的默认行为。在我的用例中,多个程序(不仅是 Java)读取了这个数据库。如果一个程序第一次尝试读取 .script 文件,就在因为另一个程序第一次访问而被删除时,会导致错误。
EDIT2:如果上面确实不可能,有没有办法将这个 mydata.script(包含所有 SQL 调用)转换为一些二进制 HSQLDB blob 格式,该格式只是通过 JDBC 加载而没有修改?
【问题讨论】:
-
因此您希望将此 HSQLDB 数据库用作多个应用程序的持久只读资源,其中一些应用程序未用 Java 实现,它们可能会尝试同时访问数据库。对吗?
-
没错。需要的是让这个只读 HSQLDB 文件/数据始终简单地存在于文件系统中。
标签: java sql linux jdbc hsqldb