论坛首页 综合技术论坛

HSQLDB介绍[转]

浏览 21038 次
该帖已经被评为精华帖
作者 正文
   发表时间:2003-09-16  
by jini

目前稳定版本 1.7.1
下载处 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_7_1.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 中可以采用 HSQLDialect 去连结,HSQLDB还有支持分页的sql语句
   发表时间:2003-10-16  
^_^,java中不用access了。

顺便说一下,在hibernate中,使用hsql中,如果设置主键类型用Idenetity,那么java的field用Integer类型,不能用Long。
0 请登录后投票
   发表时间:2003-11-20  
hsqldb问题:
sql语句中两张表做join连接时,不支持多条件。执行如下语句时:
SELECT T_BaseOrg.baseorgcode,
T_BaseOrg.baseorgsname,
T_BaseOrg.gatherorgcode,
T_ReportLog.addedon,
T_ReportLog.addedwho,
T_ReportLog.updatedon,
T_ReportLog.updatedwho,
T_ReportLog.audited,
T_ReportLog.auditedon,
T_ReportLog.auditedwho
FROM T_BaseOrg
LEFT JOIN T_ReportLog ON
(T_ReportLog.specialtyuid = T_BaseOrg.specialtyuid)
WHERE T_BaseOrg.specialtyuid = 'f30093:f8a9ded6ac:-8000' AND T_BaseOrg.gatherorgcode LIKE '1010202%' 可正常通过,当换成LEFT JOIN T_ReportLog ON
(T_ReportLog.specialtyuid = T_BaseOrg.specialtyuid
AND T_ReportLog.baseorgcode = T_BaseOrg.baseorgcode
AND T_ReportLog.gatherorgcode = T_BaseOrg.gatherorgcode
AND T_ReportLog.ownerlevel = '4'
AND T_ReportLog.reportno = 'J01'
AND T_ReportLog.year = '2003'
AND T_ReportLog.month = '11')时报"only one join condition on table columns allowed int statement ...",而该语句可在postgresql下执行。hsqldb使用版本为1.7。不知大家是怎么解决这类问题的。
0 请登录后投票
   发表时间:2004-07-22  
想问一下,HSQLDB能做多大量级的应用呢?上十万条记录会不会有问题呢?
0 请登录后投票
   发表时间:2004-07-23  
大型应用就不知道适不适合了,不过这个数据库用来做测试,开发demo什么的还是挺方便的,通过ant脚本基本可以实现所有的操作。
0 请登录后投票
   发表时间:2004-07-27  
其实我就打算用它来存储些日志,最多也就十万条的样子,因为日志还要查询和分析,不知道会不会效率很低?
0 请登录后投票
   发表时间:2004-08-05  
HSQLDB好像我用起来不很稳定,经常无法插入数据,然后只能重create table
0 请登录后投票
   发表时间:2005-02-26  
最近发现hsqldb不能用在jdk1.3,因为用到java.sql.SavePoint,而java.sql这个包又不允许扩展包,唉,可惜
0 请登录后投票
   发表时间:2005-03-30  
http://hsqldb.sourceforge.net/
呵呵,目前已经省级到1.8.
还有一个好处,以前我习惯了用mysql做一些demo,可惜现在碰到了一个问题就是新公司的项目还没启动的时候是不会分配软件安装的而且我们的域账号没有本机管理员权限,所以mysql起不来,呵呵。这个就可以拉
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics