【问题标题】:HSQLDB Properties in JavaJava 中的 HSQLDB 属性
【发布时间】:2021-01-10 22:09:17
【问题描述】:

谁能告诉我为什么我在连接到银行的 url 中插入的参数没有改变? 例如:数据库中的hsqldb.full_log_replay = true属性仍然为false,我已经尝试重新创建银行但仍然没有更改

connectionSource = new JdbcConnectionSource("jdbc:hsqldb:file:./database/db;ifexists=false;" +
    "shutdown=true;hsqldb.lock_file=false;hsqldb.write_delay=false;hsqldb.full_log_replay=true",
    "SA", "", new HsqldbDatabaseType());
connection = DriverManager.getConnection("jdbc:hsqldb:file:./database/db;ifexists=false;" +
    "shutdown=true;hsqldb.lock_file=false;hsqldb.write_delay=false;hsqldb.full_log_replay=true");

【问题讨论】:

  • 您是否尝试使用接受Properties 实例作为单独参数的DriverManager.getConnection(...)

标签: java hsqldb


【解决方案1】:

属性ifexistsshutdown 是单个连接的属性。但是属性hsqlb.lock_file 是数据库操作属性,属性hsqldb.write_delay + hsqldb.full_log_replay 是数据库文件和内存属性。因此,当您尝试在 Java 代码中连接时,这些属性不会更改。您可以在documentation 中了解更多信息。

如果您仍想更改属性,可以为您的数据库创建一个db.properties 文件。该文件包含数据库本身的属性。这个post 描述了为数据库创建的其他文件。

【讨论】:

  • 我的数据库有一个 db.properties 文件,但是当我输入 hsqldb.full_log_replay 时,它会更改数据库中的值,但是每当我重新启动数据库时,它都会删除数据库的所有权并将值改回
  • 如何重启数据库?
  • 关闭runManagerSwing.bat或关闭我的应用程序,其中包含连接url中的关闭,所以我不知道它是删除db.properties还是只是删除了我添加的属性
  • 在此之后检查文件是否仍然存在的最好方法是检查文件。但事实并非如此。我无法确定属性是否被删除。也许日志文件会有所帮助。
  • 其实属性文件应该在那里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-09
相关资源
最近更新 更多