如何使用ANT自动进行数据库的相关操作

原创 2003年07月29日 08:15:00

如何使用ANT自动进行数据库的相关操作

 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

赵才文(vipcowrie@sina.com)版权所有

 

 

       如今的系统,无论是基于CS的还是基于BS的架构,如果与数据库打交道,那么程序员在开发系统的时候,或者在进行单元测试的时候,经常要对数据库进行一些重复的操作,例如初始化,建库,删除表格,插入测试数据等等。每次要做测试的时候,因为要求环境为最基本、最初始的环境,所以程序员必须手动的重复的执行某些sql语句,使得我们程序员的工作效率十分的低下。

       ANT,是apache组织推出的基于java的构建工具,非常象C世界里面的MAKE工具,只要你写好构建程序的教本,就好比是戏剧的剧本一样,它会自动的按照你的要求去编译,运行、发布等等。

       ANT的下载地址是:http://ant.apache.org

       ANT基本上是由一个一个的TARGET(任务)构成的,你可以在一个Project内部建立NTARGET,并且每个TARGET可以独立也可以依存于(depends)其他的任务,也就是说,只有其他的任务完成的时候,这个任务才有可能执行。

       ANT里面有许多内置的task,这些task可以用来构建target,比如,你要完成一个编译的任务,那么你就可以引用这个taskjavac,看上去象是java内部的命令,其实ant对他进行了封装。例如:

  />

 

这个任务将会编译src里面所有的源代码到目标文件夹build,使用的classpathxyz.jar,并且是debug模式的。

 

       ANT里面还有一个非常有用的task就是与数据库操作相关的一个tasksql,它的原理如下:

       通过JDBC执行一系列的sql语句,语句可以从文本文件中读取,也可以通过包含的方式放在任务中。语句之间的间隔使用的是“;”或者自己定义的分割符号。注释的语句使用的是REM或者“――”。可以使用autocommit属性来控制语句是否真的被提交,还可以使用onerror属性来控制当执行的过程中遇到错误的时候应该怎么办?(abortcontinuestop)。

 

       它有下列属性:

 

Attribute

Description

Required

driver

Class name of the jdbc driver

Yes

url

Database connection url

Yes

userid

Database user name

Yes

password

Database password

Yes

src

File containing SQL statements

Yes, unless statements enclosed within tags

encoding

The encoding of the files containing SQL statements

No - defaults to default JVM encoding

delimiter

String that separates SQL statements

No, default ";"

autocommit

Auto commit flag for database connection (default false)

No, default "false"

print

Print result sets from the statements (default false)

No, default "false"

showheaders

Print headers for result sets from the statements (default true)

No, default "true"

output

Output file for result sets (defaults to System.out)

No (print to System.out by default)

append

whether output should be appended to or overwrite an existing file. Defaults to false.

No

classpath

Classpath used to load driver

No (use system classpath)

classpathref

The classpath to use, given as a reference to a path defined elsewhere.

No (use system classpath)

onerror

Action to perform when statement fails: continue, stop, abort

No, default "abort"

rdbms

Execute task only if this rdbms

No (no restriction)

version

Execute task only if rdbms version match

No (no restriction)

caching

Should the task cache loaders and the driver?

No (default=true)

 

 

例子:

       假如,我们有一个任务,就是每次程序运行的时候我们都要初始化整个数据库。要执行的sql语句如下:

 

drop table CHILD;

drop table TOY;

 

create table CHILD (id number,name varchar(200));

create table TOY(t_id number, c_id number,description varchar(200));

 

insert into child values(1,”tom”);

insert into toy values(1,1,”a baby”);

 

我们把上述语句存为一个文件叫ddl.sql,然后建立ant教本如下:

<project name=”test” basedir=”.”>

  <target name=”dbinit”>

         <echo message="create database schema...If error occurs,let it be" />

         <sql

                driver="oracle.jdbc.driver.OracleDriver"

                     url="jdbc:oracle:thin:@localhost:test"

                     userid="test"

                     password="test"

                     classpathref="classes12.jar"

                     src="${ddl.sql}"

                     onerror="continue"

              />

  </target>

</project>

 

这样,我们已经建立好了ant的教本,把它另外存储为build.xml,在命令行方式下面,运行下面的命令:

 

ant dbinit

结果如下:

dbinit:

     [echo] create database schema...If error occurs,let it be

      [sql] Executing file: D:/jbproject/test/db/ddl.sql

      [sql] 6 of 6 SQL statements executed successfully

 

BUILD SUCCESSFUL

 

这样我们每次的工作就减少了很多了。

22_ant_完整操作一个用户管理的小例子_发布web项目和设置数据库

  • 2017年10月26日 21:40
  • 49.34MB
  • 下载

Ant学习例子2(用ant发布web项目,及连接数据库)

build.xml
  • ZKLxuankai
  • ZKLxuankai
  • 2012年11月21日 10:59
  • 2208

Ant工具与MySQL数据库

前言:我们如果要整合Ant与MySQL数据库,那么首先我们需要熟悉数据库的CRUD操作,创建用户和授权操作,以及数据库的备份和导入操作。针对数据库的基本操作我不想提及,但是我会针对我感觉重点的MySQ...
  • fanxiaobin577328725
  • fanxiaobin577328725
  • 2016年12月15日 21:37
  • 581

Ant 脚本在部署过程中实现系统参数的自动发现

在使用 Ant 进行软件包的部署时,经常需要输入一些系统环境参数,例如主机名称、IP 地址,一些服务的配置文件路径等等。在一些重复性的场景中,例如软件开发、测试过程中,每次部署都手工去配置一遍系统...
  • wanglha
  • wanglha
  • 2015年07月08日 12:56
  • 769

ant使用总结(一):使用ant自动打包apk

配置ant环境 (1)下载ant 下载地址一:http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.9.4-bin.zip 下载地址二...
  • linchaolong
  • linchaolong
  • 2015年04月15日 11:46
  • 2270

ant.design实践手札之---ajax数据调用

今天正好在弄项目的ajax数据调用情况,趁热打铁记录下实际的运行步骤状态1、创建一个对应的对象model、service、routes、mock作为一个简单的ajax的准备工作/src/models/...
  • xupeng874395012
  • xupeng874395012
  • 2017年01月20日 16:26
  • 3340

数据库中datetime型数据的操作

向数据库中添加datetime型数据: 例如: 2007-09-05 11:08:53 public boolean addSraimsUserTime(int sraimsuser_id, java...
  • zhangtian_84Fighting
  • zhangtian_84Fighting
  • 2007年09月05日 11:36
  • 2676

利用Ant向数据库插入数据

利用Ant向数据库插入数据 一、  安装Ant 到ant的主页下载页面,下载最新版本(本文使用的版本为1.6.0)的Ant压缩包,解压缩后配置下ANT_HOME就行了,具体的配置步骤参考配置说明。...
  • wgw335363240
  • wgw335363240
  • 2011年11月06日 20:54
  • 2426

使用Hibernate操作数据库需要七个步骤

使用Hibernate操作数据库需要七个步骤
  • Android_MSK
  • Android_MSK
  • 2017年03月30日 15:43
  • 1779

使用Eclipse与Ant进行java程序开发

 相信大家已经对Eclipse的使用有一定的经验,在编写java源代码是件听自豪的事,大要编译一大批java源代码却实践比较苦恼的事情,如果一个一个点"run"去编译实在太浪费时间了.想脱离"苦海",...
  • lujar
  • lujar
  • 2007年04月02日 16:04
  • 6531
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何使用ANT自动进行数据库的相关操作
举报原因:
原因补充:

(最多只允许输入30个字)