Vincent Thinking

All about Vincent's work and life

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  34 随笔 :: 0 文章 :: 183 评论 :: 0 Trackbacks

                                                                     HSQLDB简介 
                                                                     

Vincent 2006年2月24日
 
一 什么是HSQLDB? 
        HSQLDB是一个用java编写的关系型数据库,它支持ANSI-92 SQL (BNF tree format) plus SQL 99 and 2003 enhancements. 它提供了一个非常小而快速的数据库引擎,同时提供了相关的JDBC驱动和一些实用的工具。
 
         最新的HSQLDB版本为1.8.0 ,经过了1年的开发,和1.7.2相比,1.8.0的功能更加强大, 对数据库的容量支持达到了8GB,性能也更加出色。和当年相比,HSQLDB已经不仅仅很多人眼里的玩具,完全可以胜任商业的需求。(OpenOffice.org 2.0的数据库引擎为HSQLDB1.8.0)
 
这里有一张数据库的performance test对比图(HSQLDB的性能远远超过其他的数据库)
 


二 HSQLDB介绍

 1.1 简介


hsqldb.jar 包含所有的组件(数据库引擎,jdbc驱动, 数据工具), 不同的命令用来执行不同的组件。
hsqldb.jar主要包含了一下组件: 

HSQLDB RDBMS                数据库引擎
HSQLDB JDBC Driver          JDBC驱动
Database Manager            管理工具
Query Tool (AWT)            查询工具
Sql Tool (command line)     SQL工具


1.2 运行工具(Running Tools) 

      所有的工具都以jar的方式来运行,下面的例子讲运行AWT方式的DataBase Manager,我们假设hsqldb.jar位于../lib目录中

 java -cp ../lib/hsqldb.jar org.hsqldb.util.DatabaseManager 

Hsqldb工具的主类:

org.hsqldb.util.DatabaseManager 
org.hsqldb.util.DatabaseManagerSwing
org.hsqldb.util.Transfer
org.hsqldb.util.QueryTool 
org.hsqldb.util.SqlTool 

其中,DatabaseManager和SqlTool都可以有命令行参数,你可以用-?来察看它们有什么参数。DatabaseManager和Transfer都有图形界面可以更好地交互。
 
1.3 运行HSQLDB
 
HSQLDB可以通过多种不同的方式来运行,通常把它分为Server模式和In-Process模式(也叫做Standalone模式),对于每种模式,Jar中都有相应的子程序来运行HSQLDB。
 
每个HSQLDB数据库包含2到5个命名相同但扩展名不同的文件组成,他们位于同一个目录下。例如,名为“test”的数据库包含了以下几个文件: 

test.properties
test.script
test.log 
test.dat 
test.backup

properties文件包含了数据库的基本配置,script文件包含了Table的定义和其他相关的数据对象,以及non-cached表的数据。log文件记录了数据库最近所做的更新。dat文件包含了cached表的数据,backup文件是上一次数据库持久化后的压缩备份文件,所有的这些文件都是最基本的,绝对不能删除。如果你的数据库没有缓冲表(cached table),test.data和test.backup文件是不会存在。此外,HSQLDB数据库可以链接到磁盘上任何地方任何格式的文本文件,比如CSV 列表。
 
当"test"数据库正在运行时,test.log文件用来记录所有的操作记录,"test.log"文件将在数据库正常关闭(ShutDown)情况下自动删除。否则(在非正常退出的时候),它将用来在下次启动HSQLDB时恢复"test.log"中记录的更新操作。"test.lck"文件也可以用来记录数据库是否被打开,它在HSQLDB正常退出的时候会被移除。有些情况下,HSQLDB会生成"test.data.old "文件,但随后会被删除掉。

注意: 当HSQLDB引擎关闭数据库的时候,它会产生扩展名为.new的临时文件,然后会把这些文件重命名为上面所列出的文件的名称。

posted on 2006-02-24 19:55 Vincent Thinking 阅读(1935) 评论(1)  编辑  收藏 所属分类: JAVA

评论

# re: HSQLDB(一) 2006-11-28 18:43 chenliguo
chenliguo@bj.xinwei.com.cn

我用iBatis操作hsqldb,采用独占访问文件数据库的方式,表类型为cached;但是插入操作不能保存数据,必须关闭shutdown,如程序终止,没有显示执行shutdown则数据丢失;什么原因?  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: