作者:曾巧(numenzq)
使用Eclipse等功能强大的集成开发环境(IDE)的主要优势是默认情况下会包含完整的Ant环境。在本教程中,将使用Ant自动完成Derby数据库的创建及填充过程。
我们在build.xml文件里编辑如下Target,
<?xml version="1.0" ?>
<project default="builddb">
<target name="builddb">
<sql
driver="org.apache.derby.jdbc.ClientDriver"
url="jdbc:derby://localhost:1527/WCNDerby01;create=true;"
userid="derbyuser"
password="derbyuser"
οnerrοr="continue" >
<classpath>
<pathelement location="${DERBY_HOME}/lib/derbyclient.jar"/>
</classpath>
<transaction src="CreateSchemas.sql"</transaction>
<transaction>set schema APP;</transaction>
<transaction src="APP/Tables/Glossary.t.sql"></transaction>
<transaction src="APP/Data/Glossary.data.sql"></transaction>
</sql>
</target>
</project>
先来查看一下标准的Ant标记<sql>
中的属性。如果曾经使用过Java数据库连接(Java Database Connectivity,JDBC),该标记中的大部分内容您都应当很熟悉。为方便起见,我使用的是Derby网络客户机;在生产环境中,我将切换到Derby嵌入式驱动器中以避免在网络操作过程中运行DDL脚本。另外,注意到在连接URL时使用了create=true
选项;此选项用于在数据库不存在的情况下创建数据库,但如果已在先前设定的derby.system.home目录中创建了数据库,则此选项将不起作用。
确保Derby网络服务器处于运行状态:在Eclipse Package Explorer视图中的build.xml上单击鼠标右键,单击Run As,然后选择1 Ant Build 选项。执行结果如图:
此外,还可以显示Ant视图,然后使用该视图中的工具栏按钮添加并运行build.xml文件,如图所示。
如果再次运行该脚本,不会对数据库中的数据造成任何破坏。它仅仅是数据库管理的最佳实践的概念。自己编写DDL脚本,并使这些脚本可以重复运行而不会产生任何负面作用。我不只一次看到DDL脚本在重新创建表之前就删除了表。因此,始终要将drop
操作与create
操作分开。还请注意<sql>
标记中的onerror
属性;我在开发时把此属性设为continue
,然后在所有脚本都固定后将其更改为stop
。这样做使您可以逐步完成开发过程。
查看先前设为derby.system.home的目录。现在可以看到一个与数据库同名的子文件夹。该子文件夹中包括与数据库相关的文件。Ant脚本创建了所有这些文件。