利用Ant向数据库插入数据
来源:互联网 发布:苹果虚拟定位软件 编辑:程序博客网 时间:2024/06/07 03:17
利用Ant向数据库插入数据
一、 安装Ant
到ant的主页下载页面,下载最新版本(本文使用的版本为1.6.0)的Ant压缩包,解压缩后配置下ANT_HOME就行了,具体的配置步骤参考配置说明。下载地址如下:
http://ant.apache.org/bindownload.cgi
二、 Ant向数据库插入数据步骤
正如我们所知的,Ant有很多功能,比如拷贝文件、编译java文件、生成压缩包等。这里将简单说明如何利用Ant来执行指定的sql脚本文件,以向指定的SQL Server数据库中插入数据。
本文使用的所有文件都在下面地址可以下载到,下载地址如下:
http://download.csdn.net/detail/wgw335363240/3756593
文件的目录机构如下:
D:\Pirvate\Study
|
|______ant
|_____libs
|
|________jtds-1.2.jar
|
|_____SqlData
|
|________myData.sql
|
|_____my_build.xml
1. 下载Sql Server的驱动jar包
这里使用的驱动jar包是jtds-1.2.jar(SqlServer的驱动)。
2. 编写可以执行的sql脚本
这里编写了一个可以重复执行的脚本,具体的内容就不说明了。代码如下:
if exists (select * from dbo.sysobjects
where id = object_id(N'[STUDENT]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table STUDENT
CREATE TABLE STUDENT (
STUDENTID INT PRIMARY KEY,
NAME nvarchar(100),
AGE int default(1),
SEX int default(0)
);insert into Student(StudentId,Name,Age,Sex) values(1,'张三',25,0);
insert into Student(StudentId,Name,Age,Sex) values(2,'李四',20,1);
insert into Student(StudentId,Name,Age,Sex) values(3,'王五',18,0);
3. 编写buildfile文件
Buildfile文件是ant执行时默认会查找的文件,默认会在当前路径上查找名为build.xml的文件。这里我们把这个buildfile文件命名为“my_build.xml”。xml文件里的每个标签的说明可以参考下面的网址:
http://ant.apache.org/manual/index.html
4. 执行ant命令,导入数据
C:\Users\Administrator>ant -buildfile D:\Private\Study\ant\my_build.xmlBuildfile: D:\Private\Study\ant\my_build.xml
displayInfo:[echo] 根目录:D:\Private\Study\ant
[echo] 开始向DB中插入数据
insertDataToDB:[sql] Executing file: D:\Private\Study\ant\SqlData\myData.sql
[sql] 1 of 1 SQL statements executed successfully
BUILD SUCCESSFUL
Total time: 8 seconds
C:\Users\Administrator>
ant 命令后的“-buildfile”参数是表明当前ant要执行的builfile文件所在的路径。
5. 查看Sql Server数据库
STUDENTIDNAMEAGESEX1张三2502李四2013王五180
注意:
[1] 这里ant执行的sql Server数据库脚本,由于Sql Server数据库脚本中的分号是可有可无的,所以利用Ant执行时一般没什么问题
[2] 当我们利用ant来执行Oracle脚本的时候,在编写脚本的时候我们要注意,因为Oracle脚本中的sql语句是利用分号来分割的,而ant的buildfile的xml文件中对语句的默认分割也是分号,这时就会产生冲突。通常的解决办法可以修改build.xml中“sql”标签中的“delimiter”属性为“!”,同时在sql脚本中的语句块的结束位置添加“!”即可。下面是是一段可以在ant中正确执行的脚本(注意语句块中的红色感叹号):
declare v_count number(10);begin
SELECT count(*) into v_count FROM xxxx WHERE CKey = 'KM_MAP_NEWDOC_PERCENT' ;
if(v_count<=0 or v_count is null) then
insert into xxxx (configid,ctype,ckey,cvalue,cdesc,encrypted,siteid) select max(configid)+1,21,'KM_MAP_NEWDOC_PERCENT','0.7','聚类地图中新知识点的规则定义,即新知识占所有知识的比例大于此处设置的阈值,默认值为0.7',0,0 from wcmconfig;
update wcmid set nextid=0 where tablename='WCMCONFIG';
end if;
end;!
--增加是否允许创建子场景(即是否为叶子节点)的字段 2011.10.12 by liwei
declare v_count number(10);
begin
SELECT count(*) into v_count FROM cols WHERE table_name = 'xxxx' and column_name='LEAFFLAG' ;
if(v_count<=0 or v_count is null) then
alter table xxxx add LeafFlag number default 0 not null;
end if;
end;!
[3] Ant执行Oracle的其他相关原则
a) 去掉commit、“set serverout off”、“set serverout on”、“set escape on”,和包含有“exec”的语句
b) 去掉"/"
c) 语句分隔符最好使用“分隔符” + “换行”,如:
ALTER TABLE xxx ADD (temp_advtoolbar CLOB)!
UPDATE xxx SETtemp_advtoolbar = advtoolbar!
- 利用Ant向数据库插入数据
- 利用Ant向Oracle中插入数据
- 利用mysql存储过程向数据库批量插入数据
- 利用oracle存储过程向数据库批量插入数据
- 向数据库插入批量数据
- 向数据库中插入数据:
- 2.向数据库插入数据
- PHP向数据库插入数据
- ColdFusion向数据库插入数据例子
- 向derby数据库中插入数据
- 向Oracle数据库插入一条数据
- 向数据库中批量插入数据
- java jdbc向数据库插入大量数据
- JDBC向数据库中插入数据
- 向数据库中插入多条数据
- 向数据库中插入日期数据
- hibernate向数据库插入数据乱码
- PHP-CodeIgniter框架向数据库插入数据
- shuzu
- (转)嫁给一个写WPS的人
- Linux下配置单机nutch1.2
- 跋涉不止(7)
- 找出出现最多的子串
- 利用Ant向数据库插入数据
- The import javax.servlet.http.HttpServletRequest cannot be resolved
- 数据结构:栈、队列、链表(二)
- oracle学习笔记之指定controlfile在不同的磁盘上
- 中兴一道面试题
- 并发数、系统用户数、同时在线数区别
- 并查集
- Java学习日志-IO-File类(复制删除)
- joj1026