HSQLDB是一個開放源代碼的JAVA數據庫,具有標準的SQL語法和JAVA接口。HSQLDB可以自由使用和分發,具有內存數據庫,獨立數據庫和客戶-服務器三種數據庫模式。本文介紹客戶-服務器模式的配置。
從HSQLDB主頁上下載HSQLDB:
http://hsqldb.org/
把下載的壓縮文件解開,然后在系統環境變量中加入hsqldb.jar,如:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;D:\hsqldb\lib\hsqldb.jar |
在硬盤中任意位置建一個目錄作為HSQLDB數據庫的主目錄,然后打開命令行,進入該目錄。在里面建一個server.properties文件,這是HSQLDB服務器模式的配置文件。可以在里面設置數據庫服務的監聽端口、服務名稱、數據文件的相對和絕對路徑:
#begin of 'server.properties' file
#數據庫服務的監聽端口
server.port=9001
#定義服務名稱,也即數據庫名稱。數據庫鏈接的URL即為
#jdbc:hsqldb:hsql://localhost:9001/bitan。
server.dbname.0=bitan
# 該服務在硬盤上的相對或絕對路徑。file:后面可以跟相#對或絕對路徑,如file:bitan表示數據文件為當前目錄下的bitan.*文件。服務名和路徑之間通過小數點后的數字關聯。比如database.0與#dbname.0關聯,database.1與dbname.1關聯,……, database.n與dbname.n關聯。
server.database.0=file:d:/bitan
#mounts a 'file_in_jar' database with alias 'restest'
#database connection url would be 'jdbc:hsqldb:hsql://host:1234/restest'
#server.database.1=res:/mypackage/test
#server.dbname.1=restest
#mounts a 100% in-memory (transient) database with alias 'memtest'
#database connection url would be 'jdbc:hsqldb:hsql://host:1234/memtest'
#server.database.2=mem:test
#server.dbname.2=memtest
#...
#server.database.n=...
#server.dbname.n=...
server.silent=true
#end of 'server.properties' file
|
進入上面設置的主目錄,啟動HSQLDB服務器:HSQLDB會在當前目錄下尋找server.properties文件,如果沒有發現該文件就使用默認設置。
D:\work\eclipse\hibe\data>java org.hsqldb.Server
[Server@1034bb5]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@1034bb5]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@1034bb5]: Startup sequence initiated from main() method
[Server@1034bb5]: Loaded properties from [D:\work\eclipse\hibe\data\server.prope
rties]
[Server@1034bb5]: Initiating startup sequence...
[Server@1034bb5]: Server socket opened successfully in 78 ms.
[Server@1034bb5]: Database [index=0, id=0, db=file:bitan, alias=bitan] opened su
cessfully in 1000 ms.
[Server@1034bb5]: Startup sequence completed in 1093 ms.
[Server@1034bb5]: 2005-11-03 11:30:47.046 HSQLDB server 1.8.0 is online
[Server@1034bb5]: To close normally, connect and execute SHUTDOWN SQL
[Server@1034bb5]: From command line, use [Ctrl]+[C] to abort abruptly
|
另外開一個命令行窗口,啟動HSQLDB的管理工具,這是GUI外觀的程序:
D:\work\eclipse\hibe\data>java org.hsqldb.util.DatabaseManager |
首先出現的是登錄窗口:

在“setting name”中填入“bitan”,下次啟動管理工具時,該字串就會出現在“recent”下拉框中。點擊“clr”按鈕可以清除該字串。在“type”中選擇HSQL Database Engine Server,然后在“URL”中輸入上面server.properties中的設置。
點“OK” 登錄以后,會出現下面的窗口,左邊是目錄窗口,右邊是SQL查詢窗口。我們可以在SQL查詢窗口中鍵入任意SQL語句(包括DDL,DML等等),然后點擊“Execute”執行該語句。HSQLDB安裝文件的doc目錄里附帶了PDF和HTML格式的文檔,介紹了HSQLDB的SQL語法、支持的數據類型、內置函數等等。

可以在SQL窗口里創建新表:
create table events
(event_id integer identity not null,
event_date date,
title varchar(500))
|
(ID的自動插入方式上,HSQLDB支持identity,如sql server;也支持序列+觸發器,如Oracle。)
可以插入記錄:
insert into events (event_id, event_date, title)
values (null, curdate(), 'bitan')
|
(curdate()是HSQLDB內置函數,返回當前日期)
啟動了HSQLDB服務器,我們就可以在java程序中以JDBC方式訪問數據庫了。hsqldb.jar中內置了JDBC驅動程序。
如下例,這是hibernate中的配置文件Hibernate.cfg.xml:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="connection.url">jdbc:hsqldb:hsql://jim:9001/bitan</property>
<property name="connection.username">sa</property>
<property name="connection.password"></property>
<property name="connection.pool_size">1</property>
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="show_sql">true</property>
<!-- property name="hbm2ddl.auto">update</property-->
<mapping resource="hbm/Event.hbm.xml"/>
</session-factory>
</hibernate-configuration> |
posted on 2008-12-02 18:23
caihaibo 閱讀(961)
評論(0) 編輯 收藏