捕風(fēng)之巢

          統(tǒng)計(jì)

          留言簿(3)

          java友情鏈接

          閱讀排行榜

          評論排行榜

          使用Ant管理HSQLDB的小腳本

          HSQLDB 是一個(gè)開源的DBMS數(shù)據(jù)庫,以其體積小巧、功能實(shí)用、使用方便而越來越受到開發(fā)人員的歡迎,特別是在平時(shí)的開發(fā)、單元測試中。如果你不想安裝龐大的 ORACLE、SQL Server數(shù)據(jù)庫,同時(shí)又想盡快擁有一個(gè)可用的數(shù)據(jù)庫,那么HSQLDB絕對是你的首選。

          Ant是一個(gè)人皆知之的打包發(fā)布工具,其簡單的語法,豐富的功能,讓我們不但可以方便地進(jìn)行像資源管理、編譯、運(yùn)行、測試的功能,同時(shí)也能夠快速地管理數(shù)據(jù)庫。

          下面就以這兩者為例,來介紹一下他們的結(jié)合運(yùn)用。


          一、下載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)建一個(gè)名為data的目錄,這是HSQLDB用來存放數(shù)據(jù)文件的地方。夠簡單吧,^_^。

          四、編寫Ant腳本:

          我們的Ant腳本很簡單,主要的功能有:啟動(dòng)數(shù)據(jù)庫、關(guān)閉數(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>


          首先我們定義了幾個(gè)屬性:

          ·hjar:HSQLDB的JAR包位置
          ·hclass:org.hsqldb.Server,代表了HSQLDB。

          ·hfile:相當(dāng)于URL,其中database.0代表了第一個(gè)數(shù)據(jù)庫,data是存放數(shù)據(jù)的地方,test是數(shù)據(jù)庫名
          ·halias:別名
          ·hport:端口號,默認(rèn)為9905

          接著我們我們看startDb這個(gè)Target,它相當(dāng)于我們在DOS下轉(zhuǎn)到data目錄下,執(zhí)行java -classpath /lib/hsqldb.jar org.hsqldb.Server。啟動(dòng)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這個(gè)Target是一個(gè)Swing界面的HSQLDB管理工具,可以在上面執(zhí)行一系列的簡單的SQL操作,對于不想看日志的人來說比較方便,但功能不多。值得注意的是:執(zhí)行這個(gè)Target并需要先啟動(dòng)HSQLDB。
          啟動(dòng)后我們可以看到如下界面:



          最后是HSQLB的關(guān)閉了。在Ant中我們可以采用<sql></sql>這個(gè)命令來執(zhí)行SQL操作,首先當(dāng)然是指定數(shù)據(jù)庫的一 系列配置信息,然后在<sql></sql>之間書寫SQL語句。這里SHUTDOWN是HSQLDB提供的一個(gè)用來關(guān)閉數(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,這個(gè)簡單的腳本就完成了,現(xiàn)在我們可以直接在DOS、Eclipse下啟動(dòng)、關(guān)閉、瀏覽HSQLDB了。
          posted on 2008-02-24 22:40 Paul Lin 閱讀(820) 評論(2)  編輯  收藏 所屬分類: Java 工具

          posted on 2008-03-14 14:20 捕風(fēng) 閱讀(389) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫技術(shù)

          主站蜘蛛池模板: 河津市| 应城市| 许昌县| 乐清市| 安阳县| 德钦县| 柯坪县| 格尔木市| 安义县| 融水| 屯门区| 河源市| 隆化县| 商南县| 溧水县| 深泽县| 万州区| 宜城市| 镇坪县| 永修县| 察雅县| 淮滨县| 横山县| 太湖县| 神木县| 永春县| 元阳县| 斗六市| 道真| 双鸭山市| 都匀市| 同仁县| 叶城县| 武威市| 昆明市| 嘉祥县| 津市市| 洪湖市| 鸡东县| 虹口区| 奎屯市|