posts - 262,  comments - 221,  trackbacks - 0

HSQLDB是一个开源的DBMS数据库,以其体积小巧、功能实用、使用方便而越来越受到开发人员的欢迎,特别是在平时的开发、单元测试中。如果你不想安装庞大的ORACLE、SQL Server数据库,同时又想尽快拥有一个可用的数据库,那么HSQLDB绝对是你的首选。

Ant是一个人皆知之的打包发布工具,其简单的语法,丰富的功能,让我们不但可以方便地进行像资源管理、编译、运行、测试的功能,同时也能够快速地管理数据库。

下面就以这两者为例,来介绍一下他们的结合运用。


一、下载Ant和HSQLDB:

Ant的下载地址:http://ant.apache.org/bindownload.cgi
HSQLDB的下载地址:http://sourceforge.net/project/showfiles.php?group_id=23316

二、安装Ant和HSQLDB:

Ant的安装我就不多说了,可以参考其网站的文档。HSQLDB的安装更简单,直接把hsqldb.jar包拷贝到你工程的lib目录下就可以了。

三、配置HSQLDB:

在你的工程目录下创建一个名为data的目录,这是HSQLDB用来存放数据文件的地方。够简单吧,^_^。

四、编写Ant脚本:

我们的Ant脚本很简单,主要的功能有:启动数据库、关闭数据库、显示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代表了第一个数据库,data是存放数据的地方,test是数据库名
·halias:别名
·hport:端口号,默认为9905

接着我们我们看startDb这个Target,它相当于我们在DOS下转到data目录下,执行java -classpath /lib/hsqldb.jar org.hsqldb.Server。启动HSQLDB数据库。执行该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管理工具,可以在上面执行一系列的简单的SQL操作,对于不想看日志的人来说比较方便,但功能不多。值得注意的是:执行这个Target并需要先启动HSQLDB。
启动后我们可以看到如下界面:



最后是HSQLB的关闭了。在Ant中我们可以采用<sql></sql>这个命令来执行SQL操作,首先当然是指定数据库的一系列配置信息,然后在<sql></sql>之间书写SQL语句。这里SHUTDOWN是HSQLDB提供的一个用来关闭数据库的命令。执行该命令后,我们可以看到如下输出:

 [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,这个简单的脚本就完成了,现在我们可以直接在DOS、Eclipse下启动、关闭、浏览HSQLDB了。



-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要尽力打好一手烂牌。
posted on 2008-02-24 22:40 Paul Lin 阅读(2305) 评论(3)  编辑  收藏 所属分类: Java 工具


FeedBack:
# re: 使用Ant管理HSQLDB的小脚本
2008-02-25 08:53 | left
谢谢   回复  更多评论
  
# re: 使用Ant管理HSQLDB的小脚本
2008-02-25 10:15 | pikenlike
不错 !很好很强大!  回复  更多评论
  
# re: 使用Ant管理HSQLDB的小脚本
2009-02-02 10:55 | noname
正是我需要的,多谢!  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2008年2月>
272829303112
3456789
10111213141516
17181920212223
2425262728291
2345678

常用链接

留言簿(21)

随笔分类

随笔档案

BlogJava热点博客

好友博客

搜索

  •  

最新评论

阅读排行榜

评论排行榜