HSQLDB是一個開源的DBMS數(shù)據(jù)庫,以其體積小巧、功能實用、使用方便而越來越受到開發(fā)人員的歡迎,特別是在平時的開發(fā)、單元測試中。如果你不想安裝龐大的ORACLE、SQL Server數(shù)據(jù)庫,同時又想盡快擁有一個可用的數(shù)據(jù)庫,那么HSQLDB絕對是你的首選。
Ant是一個人皆知之的打包發(fā)布工具,其簡單的語法,豐富的功能,讓我們不但可以方便地進行像資源管理、編譯、運行、測試的功能,同時也能夠快速地管理數(shù)據(jù)庫。
下面就以這兩者為例,來介紹一下他們的結合運用。
一、下載Ant和HSQLDB:
Ant的下載地址:http://ant.apache.org/bindownload.cgi
HSQLDB的下載地址:http://sourceforge.net/project/showfiles.php?group_id=23316
二、安裝Ant和HSQLDB:
Ant的安裝我就不多說了,可以參考其網(wǎng)站的文檔。HSQLDB的安裝更簡單,直接把hsqldb.jar包拷貝到你工程的lib目錄下就可以了。
三、配置HSQLDB:
在你的工程目錄下創(chuàng)建一個名為data的目錄,這是HSQLDB用來存放數(shù)據(jù)文件的地方。夠簡單吧,^_^。
四、編寫Ant腳本:
我們的Ant腳本很簡單,主要的功能有:啟動數(shù)據(jù)庫、關閉數(shù)據(jù)庫、顯示Swing界面的HSQLDB管理工具。請看下面的XML文件
<?xml version="1.0" encoding="UTF-8"?>

<project name="hibernate-hsql" default="startDb">

<!-- Set default database properties -->
<property name="hjar" value="lib/hsqldb.jar" />
<property name="hclass" value="org.hsqldb.Server" />
<property name="hfile" value="-database.0 data/test" />
<property name="halias" value="test" />
<property name="hport" value="9005" />

<!-- Start up HSQLDB instance, use default properties as arguments: database file,database name,port -->
<target name="startDb">
<java fork="true" classname="${hclass}"
classpath="${hjar}"
args="${hfile} -dbname.0 ${halias} -port ${hport}" />
</target>

<!-- Start up HSQLDB swing manager UI -->
<target name="hsqldm">
<java fork="true" classname="org.hsqldb.util.DatabaseManagerSwing"
classpath="${hjar}" />
</target>
<!-- Shut down HSQLDB -->
<target name="shutdownDb">
<sql classpath="${hjar}"
driver="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:hsql://localhost:${hport}/${halias}"
userid="sa" password=""
print="yes">
SHUTDOWN
</sql>
</target>
</project>
首先我們定義了幾個屬性:
·hjar:HSQLDB的JAR包位置
·hclass:org.hsqldb.Server,代表了HSQLDB。
·hfile:相當于URL,其中database.0代表了第一個數(shù)據(jù)庫,data是存放數(shù)據(jù)的地方,test是數(shù)據(jù)庫名
·halias:別名
·hport:端口號,默認為9905
接著我們我們看startDb這個Target,它相當于我們在DOS下轉到data目錄下,執(zhí)行java -classpath /lib/hsqldb.jar org.hsqldb.Server。啟動HSQLDB數(shù)據(jù)庫。執(zhí)行該Target后我們可以看到如下輸出:
startDb:
[java] The args attribute is deprecated. Please use nested arg elements.
[java] [Server@a62fc3]: [Thread[main,5,main]]: checkRunning(false) entered
[java] [Server@a62fc3]: [Thread[main,5,main]]: checkRunning(false) exited
[java] [Server@a62fc3]: Startup sequence initiated from main() method
[java] [Server@a62fc3]: Loaded properties from [D:\peng\Java\Pro\framework\hibernate\server.properties]
[java] [Server@a62fc3]: Initiating startup sequence...
[java] [Server@a62fc3]: Server socket opened successfully in 32 ms.
[java] [Server@a62fc3]: Database [index=0, id=0, db=file:data/test, alias=test] opened sucessfully in 968 ms.
[java] [Server@a62fc3]: Startup sequence completed in 1000 ms.
[java] [Server@a62fc3]: 2008-02-24 22:56:39.468 HSQLDB server 1.8.0 is online
[java] [Server@a62fc3]: To close normally, connect and execute SHUTDOWN SQL
[java] [Server@a62fc3]: From command line, use [Ctrl]+[C] to abort abruptly
hsqldbm這個Target是一個Swing界面的HSQLDB管理工具,可以在上面執(zhí)行一系列的簡單的SQL操作,對于不想看日志的人來說比較方便,但功能不多。值得注意的是:執(zhí)行這個Target并需要先啟動HSQLDB。
啟動后我們可以看到如下界面:

最后是HSQLB的關閉了。在Ant中我們可以采用<sql></sql>這個命令來執(zhí)行SQL操作,首先當然是指定數(shù)據(jù)庫的一系列配置信息,然后在<sql></sql>之間書寫SQL語句。這里SHUTDOWN是HSQLDB提供的一個用來關閉數(shù)據(jù)庫的命令。執(zhí)行該命令后,我們可以看到如下輸出:
[java] [Server@a62fc3]: Initiating shutdown sequence...
[java] [Server@a62fc3]: Shutdown sequence completed in 16 ms.
[java] [Server@a62fc3]: 2008-02-24 22:57:27.375 SHUTDOWN : System.exit() is called next
OK,這個簡單的腳本就完成了,現(xiàn)在我們可以直接在DOS、Eclipse下啟動、關閉、瀏覽HSQLDB了。
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
posted on 2008-02-24 22:40
Paul Lin 閱讀(2339)
評論(3) 編輯 收藏 所屬分類:
Java 工具