将 HSQLDB 作为便携式数据库与 Spring、Hibernate 一起使用

Using HSQLDB as a portable database with Spring, Hibernate

我是 hsqldb 的新手。 在项目中我使用 Spring 4Hibernate 5HSQLDB

我有一些特定的任务,我正在尝试使用 HSQLDB 作为便携式数据库,它可以转移到闪存驱动器或另一台计算机上。

我已经有了一个 sql 脚本,其中包含所有表格和基本需要的数据。 我有四个问题困扰着我。 (如果这些问题很愚蠢,我提前道歉):

  1. 我需要在程序第一次启动时制作脚本运行,而在其他启动时它必须检查数据库是否已经存在并且(如果它已经存在)仅更新其中的数据。 (该程序将在许多计算机上使用,并且必须在首次启动后创建数据库)。 我怎样才能做到这一点?可能吗?你能给我一些基本的建议或例子吗?

  2. 我正在尝试查找有关将所有数据库信息保存在文件系统中某个文件中的一些信息。你能给我一些关于将 hsqldb 数据保存在文件中以及在另一次启动后使用该文件的有效示例吗?

  3. 我能否将此文件放入我的 project.jar 文件中并使用其中的所有数据更新它 e.t.c。 ?

  4. 使我的数据库可移植(针对特定任务)的最佳做法是什么?我应该将它保存在哪里?在文件中,在我的项目 jar.e.t.c.?

提前感谢您的回答!

对于数据存储,您使用文件:数据库。 JDBC 连接 URL 的形式为 jdbc:hsqldb:file:<file path>。 HSQLDB会将所有数据保存到文件中。

连接到数据库后,您在脚本中一一执行 SQL 语句。如果表已经存在,CREATE TABLE 语句会抛出错误。这表明您不必执行它们。

因为什么时候保留已有的数据,什么时候根据数据库已有的内容更新,都由你自己决定,所以你执行一些SQL语句来决定。没有自动执行此操作的方法。

您可以将 HSQLDB 数据库放入 jar,但无法更新。罐子是只读的。

数据库完全可移植。您可以使用 ~ 符号将它们放在用户主目录的子目录中。有关详细信息,请参阅 http://hsqldb.org/doc/2.0/guide/dbproperties-chapt.html#dpc_variables_url 和本页的其余部分。