我在ubuntu Linux上运行hsqlddb 2.2.9,但我很难理解server.properties文件。在/ usr / local下安装了hsqldb,当我从我放置server.properties文件的地方用java org.hsqldb.server.Server启动服务器时,假设server.properties是:
server.database.0=file:/usr/local/hsqldb-2.2.9/hsqldb/hibernate/hiberdb
server.dbname.0=hiberdb
然后我得到一个子目录hibdernate,其标记为
hibderdb.{log,script,properties,tmp}
使用hibderdb.tmp一个空目录。到目前为止一切都很好。
但是在以下情况下我无法理解hyper sql db的逻辑:
假设server.properties是:
server.database.0=file:/usr/local/hsqldb-2.2.9/hsqldb/hibernate
server.dbname.0=hiberdb
然后hibderdb别名是ignode,我得到文件
hibernate.{log,properties,script,tmp}
在与server.properties文件相同的目录中(即在当前目录中)。
甚至以下内容:
server.database.0=file:/usr/local/hsqldb-2.2.9/hsqldb/hibernate/
server.dbname.0=hiberdb
然后我得到的是一个没有hibderdb。*文件的hibernate子目录,而是我有文件
hibernate/{.log,.properties,.script,.tmp}
(这些是隐藏的Unix文件,同样会忽略别名属性dbname。)
HSQLDB文档有一个例子:
http://hsqldb.org/doc/2.0/guide/listeners-chapt.html#lsc_server_props
server.database.1=file:/opt/db/mydb
server.dbname.1=enrolments
此示例是否过时或错误?
谢谢,
杰森波西特答案 0 :(得分:0)
server.dbname.0=hiberdb
与属性文件中的另一行完全无关。
这个'别名'从客户端访问服务器时使用。
文档中的示例是正确的。外部数据库客户端正在处理它知道为“注册”的数据库别名,并且不需要知道您在服务器上存储文件的位置。
访问您的' hiberdb'无论您将文件放在何处,客户端始终都是通过jdbc:hsqldb:hsql://localhost/hiberdb
之类的URL。