现在的位置: 首页 > 综合 > 正文

HSQLDB(HyperSQL DataBase)在文件模式(File Mode)下数据的持久化

2018年01月26日 ⁄ 综合 ⁄ 共 797字 ⁄ 字号 评论关闭

关键字:Embedded DB;Hyper SQL;File Mode下持久化

对于任何Embedded DB,我们都期望它能满足以下需求:

  • 与标准SQL兼容,使用标准SQL可以操作数据并进行持久化;
  • 使用简单,就Java而言,它能够和应用处于同一个JVM中。

HSQLDB是一款基于Java的非常优秀的嵌入式数据库。它提供三种使用模式:

  • Mem Mode
  • File Mode
  • Server Mode

Mem Mode只在内存中操作,不对数据进行持久化;使用Server Mode数据库和应用不在一个JVM中,也就是说,和Oracle, MySQL一样,在启动应用前必须先启动数据库,失去嵌入式数据库的意义了。File Mode能够满足上文提出的两个需求。它能够将应用在本次启动中作出的变化持久化,以便下次启动应用后能够基于之前的信息。在默认使用下,File模式是不进行持久化的,需要进行如下配置才能使其持久化:

  • 配置shutdown连接属性
  • 配置hsqldb.write_delay连接属性

配置shutdown连接属性

实例代码如下:

connection = DriverManager.getConnection("jdbc:hsqldb:file:chenzhe;shutdown=true;","SA","");

注意:使用该配置,只有在connection断开时才会进行持久化,如果在代码中没有close连接,修改的数据就不会被持久化,这也就是有些用户抱怨这种方式不工作的原因。

配置hsqldb.write_delay连接属性

实例代码如下:

connection=DriverManager.getConnection("jdbc:hsqldb:file:feng;hsqldb.write_delay=false;","SA","");

使用该模式,无需断开连接,当对数据进行修改后,很快会被持久化,但也正因为此,使用该配置性能稍差些。

抱歉!评论已关闭.