目前稳定版本 hsqldb_1_8_0_9.zip
下载处 http://hsqldb.sourceforge.net/
(1)简介
hsqldb 是由 Tomas Muller 的 Hypersonic SQL 後续开发出来的专案, hsql 已经停止研发了, hypersonic db 是纯 java 所开发的资料库, 可以透过 jdbc driver 来存取, 支援 ANSI-92 标准的 SQL 语法, 而且他占的空间很小, 大约只有 160K, 拥有快速的资料库引擎, 也提供了一些工具, 例如 web-server, 记忆体查询, 及一些管理工具.
他是属於 BSD 的 license, 可以自由下载, 并且可以安装使用在商业产品之上.
(2)安装
当你下载了hsqldb_1_8_0_9.zip, 将他解压缩到一个目录, 我将称之为 %HSQLDB_HOME% , 你可以看到 hsqldb 下面有这些目录
- bin
- build
- data
- demo
- doc
- lib - hsqldb.jar
- servlet.jar
- src
最重要的就是 hsqldb.jar, 将他放到工作目录下的 lib 中.
(3)使用
在命令列模式到工作目录
cmd>java -cp lib/hsqldb.jar org.hsqldb.util.DatabaseManager
选择 HSQL Database Engine Standalone ( 档案型资料库 )
Driver : org.hsqldb.jdbcDriver
URL : jdbc:hsqldb:test
sa 登入, 如果该资料库 ( test ) 不存在, 他就会建立
test.properties 及 test.script
可以直接在 fundad.script 加入 SQL 标准语法,
当程式起来的时候, hsqldb 会自动汇入 script 中的资料到记忆体之中
语法与 T-SQL 相当, 可参考 http://hsqldb.sourceforge.net/doc/hsqlSyntax.html
(4)结论
如果你是小型简单的资料库运用, 可以采用这个 opensource
尤其在 embedded application 的应用,
但是大型资料例如上百万笔, 除非你的 RAM 很大很大,
否则会导致速度过慢,
我尝试在我的电脑 P4-1.8G 512MB 安装 1百万笔资料 ( 每笔 4 栏位 )
就会 out of memory
如果强制 java -mx1024m -ms1024m 也要花上超过一小时.... @@"
不过, 他有个很好用的地方, 就是 bundle 在 Applet 之中
有兴趣的人可以参考他的范例.
附带一提
顺便说一下,在hibernate中,使用hsql中,如果设置主键类型用Idenetity,那么java的field用Integer类型,不能用Long。