Viv*_*vek 11 java database hsqldb
我在嵌入模式下使用HSQLDB.
"JDBC:HSQLDB:文件:ABC\TESTDB;
创建数据库后,文件夹abc具有以下文件
TESTDB.lck TESTDB.script TESTDB.log TESTDB.properties
我的申请工作正常
但我的问题是上面列出的文件中哪个是主数据库文件?
或者主数据库文件存储在其他一些位置?
.script包含创建表,更改它们和插入数据的所有语句.在内存中使用hsqldb时会创建此文件.(所以我说这是你的数据库)否则数据库存储在 .data中,正如其他人已经说过的那样
.lck是锁定文件,hsqldb通过该文件知道数据库是否被进程锁定.通常,只有在程序运行时才有此文件,并且在停止程序时会自动删除该文件.
.log包含运行事务的内部日志语句,例如一些提交或回滚点.
.properties包含用于初始化hsqldb的属性(如果您不知道自己在做什么,最好不要更改任何内容).这不应与持久性单元配置混淆.
亲切的问候
由于各种原因,文件夹中可能不包含包含实际数据的文件 - 尤其是在使用内存或非缓存表时.由于各种原因,HSQLDB使用您在其工作文件夹中找到的各种文件.您可以在此处阅读有关其用途的更多信息:HSQLDB参考.
我解释一些更相关的信息:
脚本文件包含表和其他数据库对象的定义,以及非高速缓存表的数据.日志文件包含对数据库的最新更改.数据文件包含缓存表的数据,备份文件是数据文件的最后已知一致状态的压缩备份.所有这些文件都是必不可少的,不应删除.如果数据库没有缓存表,则test.data和test.backup文件将不存在.除了这些文件之外,HSQLDB数据库还可以链接到磁盘上任何位置的任何格式化文本文件,例如CSV列表.
当"test"数据库可操作时,test.log文件用于写入对数据所做的更改.此文件在正常SHUTDOWN时被删除.否则(异常关闭)此文件在下次启动时用于重做更改.test.lck文件还用于记录数据库打开的事实.这在正常SHUTDOWN时被删除.在某些情况下,之后会创建并删除test.data.old.