HSQLDB是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口, 它可以自由使用和分发,非常简洁和快速。Hsqldb具有Server模式,进程内模式(In-Process)和内存模式三种。运行Hsqldb需要hsqldb.jar包, 它包含了一些组件和程序。每个程序需要不同的命令来运行。HSqlDB是由Tomas Muller的Hypersonic SQL后续开发出来的项目。
Hsqldb是纯 java 所开发的数据库, 可以透过 jdbc driver 来存取, 支持 ANSI-92 标准的 SQL 语法, 而且他占的空间很小, 大约只有 160K, 拥有快速的数据库引擎, 也提供了一些工具, 例如 web-server, 缓冲查询, 及一些管理工具. 他是属于 BSD 的 授权, 可以自由下载, 并且可以安装使用在商业产品之上。HSqlDB非常适合在用于快速的测试和演示的Java程序中。做单元测试也非常理想。
Hsqldb2.2 支持多线程,提供更改的高性能,提供并发事物控制模型。HSQLDB具有十多年的开发历史,并在1700多个开源项目中被广泛使用。应用程序(客户端)通过Hsqldb的JDBC驱动连接服务器。在服务器模式中,服务器在运行的时候可以被指定为多10个数据库。这种模式是首选的也是快的。它采用HSQLDB专有的通信协议。启动服务器需要编写批处理命令。Hsqldb提供的所有工具都能以java class归档文件。
HSQLDB提供两种操作模式,进程内以及客户机服务器模式。由于我们的目的是为了嵌入因此我们只介绍进程内模式。应用该模式时数据库的访问只能是同一个虚拟机内。Hsqldb数据库的访问同样是使用JDBC接口,但又无需网络连接。运行于进程内模式的HSQLDB只能有一个数据库,也就是说我们无法同时创建两个或者两个以上的数据库并访问它们。由于HSQLDB是完全运行内存中的数据库引擎,一旦数据库有改变时,这些信息会保存到磁盘中,以便下次启动的时候是新的状态。由于是运行于内存中,所以数据量的大小就仅仅是受限于内存的大小。由于HSQLDB并不会应用在生产环境中,因此这个倒不是用户需要非常关心的问题。启动一个HSQLDB实例的时候需要给它制定一个目录用于存放数据库的一些文件,这些文件包 括$DBNAME.data,$DBNAME.properties,$DBNAME.script(其中$DBNAME为数据库名)这三个文件分别是数据文件;配置文件以及数据库创建的脚本文件,但是实际上数据文件内容是空的,所有的数据都写在脚本文件中。