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 工具