數據庫環境配置和使用
首先從http://www.hsqldb.org/下載一個hsqldb的穩定版本,解壓後可以瀏覽解壓目錄下的index.html,它描述了各個目錄所包含內容,在doc段裏有一個重要的鏈接User Guide: index.html,有空好好研究吧!
數據庫實例創建
在hsqldb的管理中,如果啓動的數據庫文件不存在,就新建該數據庫文件。
Hsldb啓動
Hsqldb的啓動模式有三種主要模式,其他參見User Guide:
Server
該模式就像啓動mysql、oracle等數據庫一樣,數據庫啓動後作爲一個服務存在,其他數據庫工具可以通過jdbc的方式訪問他,這是我們最熟悉的模式。啓動腳本如下:
java -cp hsqldb.jar org.hsqldb.Server -database.0 ./db/test -dbname.0 test
後面參數:
-database.n 數據庫文件(其他數據庫中對應:數據庫實例)地址,支持相對路徑,注意使用反斜槓
-dbname.n 數據庫文件的訪問同義詞,就是用這個名稱訪問數據庫的
server模式jdbc訪問方式:
Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost:9002/test", "sa", "");
可以啓動多個數據庫文件,例如:
java -cp hsqldb.jar org.hsqldb.Server -database.0 ./db/test0 -dbname.0 test0 -database.1 ./db/test1 -dbname.1 test1
In-Process (Standalone)
該模式更接近於文件型數據庫這個概念,當你訪問時他就啓動,這種模式訪問速度最快,缺點是隻能當前訪問線程使用,其他數據庫工具不能同時訪問。例如jdbc訪問:
Connection c = DriverManager.getConnection("jdbc:hsqldb:file:/opt/db/testdb", "sa", "");
In-Memory
顧名思義,內存中的數據庫,你所做的數據庫ddl、dml不會寫入磁盤,也是當你訪問時他就啓動。例如jdbc訪問:
Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:aname", "sa", "");
Hsqldb 管理工具
hsqldb.jar中自帶了一個數據庫管理工具:DatabaseManagerSwing(Swing界面,還有一個是Awt界面的:DatabaseManager),該工具可以通過jdbc訪問多種數據庫。
我們使用server模式啓動hsqldb數據庫,然後運行下列命令:
java -cp hsqldb.jar org.hsqldb.util.DatabaseManagerSwing
java -cp hsqldb.jar org.hsqldb.util.DatabaseManager
就可打開主界面,連接時注意選擇:Type,應該是HSQL Database Engine Server
Hsqldb關閉
對於任何一種啓動模式,都可以在輸入sql腳本的狀態輸入:SHUTDOWN 或 SHUTDOWN COMPACT 語法來關閉數據庫。
對於In-process和In-memory這兩種模式只要所有的連接關閉了,數據庫也就關閉了。
Server模式參數設置
在server模式下可以設置一些參數,主要的例如訪問端口,可以參見User Guide的第四章高級屬性,一般我們可以在啓動腳本的目錄下編輯一個server.properties,內容如下:
server.port=9002
server.trace=true