Chinaunix首页 | 论坛 | 博客
  • 博客访问: 107331
  • 博文数量: 14
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 184
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-01 23:15
个人简介

我只是一个喜欢开发的测试,喜欢测试的开发,喜欢每天都知道得更多一些,更深入一些的感觉。。。。。

文章分类

全部博文(14)

文章存档

2015年(5)

2014年(2)

2013年(7)

分类: 敏捷开发

2015-08-14 23:40:52

ANT执行SQL

 

部署时很多时候需要更新数据库,今天初步考察了一下用Ant连接MySQLOracle,执行SQL语句或sql文件。

 

 

0.       软件版本

1)      操作系统Win7 旗舰版(64)

2)      JDK1.7

3)      EclipseMars Release (4.5.0) Eclipse Java EE IDE for Web Developers

4)      ANTapache-ant-1.9.6

5)      MySQLmysql-5.6.25-winx64

6)      OracleOracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

7)      mysql-connector-java-5.0.7

8)      ojdbc6-11.2.0.3.0

 

 

1.       Ant执行SQL方法说明

Ant中使用<sql>标签来执行SQL语句或sql文件,在这个标签中必须有的属性为:

1)        driver:数据库驱动名,MySQL"com.mysql.jdbc.Driver"Oracle"oracle.jdbc.driver.OracleDriver"

2)        url:数据库urlMySQL"jdbc:mysql://IP/数据库名"Oracle"jdbc:oracle:thin:@IP:port:SID"

3)        userid:数据库用户

4)        password:该数据库用户密码

5)        classpath:数据库连接jarMySQLmysql-connector-java-版本号-bin.jarOracleojdbc6-版本号.jar

 

<sql>标签还有一个很有意思的属性print,如果置为true,则会打印执行sql的详细输出信息,在下面的例子中,我们都把这个属性打开,可以更好地跟踪sql的执行情况。

 

要执行的SQL语句(可以多个),可以直接放在<sql>标签中,也可以放在一个sql文件中,然后将文件名赋值给<sql>子标签<transaction>src属性。下面的例子中这两个方式都有列出,其中直接用SQL语句的语句被注释掉了。

 

 

2.       MySQL

例子很简单,我觉得我也写得很明白,呵,就不再做进一步的说明了,build.xmlmysql.sql都放在项目的根目录下,mysql.sql中包含的就是在代码中注释掉的两个SQL语句。

点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project name="DBHandler" basedir="." default="ConnectMySQL">
  3.        <property name="mysqlDriver" value="com.mysql.jdbc.Driver"/>
  4.        <property name="mysqlJar" location=" WebContent\WEB-INF\lib\mysql-connector-java-5.0.7-bin.jar" />
  5.        <property name="mysqlUrl" value="jdbc:mysql://127.0.0.1/db_shopping"/>
  6.        <property name="mysqlUser" value="root" />
  7.        <property name="mysqlPassword" value="" />
  8.        <property name="mysqlFile" value="mysql.sql" />
  9.       
  10.        <target name="ConnectMySQL">
  11.               <sql driver="${mysqlDriver}"
  12.                    url="${mysqlUrl}"
  13.                    userid="${mysqlUser}"
  14.                    password="${mysqlPassword}" 
  15.                    classpath="${mysqlJar}"
  16.                    print="true">
  17.                      <!--insert into user(name,age) values("bell","47");-->
  18.                      <!--select * from user;-->
  19.                      <transaction src="${mysqlFile}"/>
  20.               </sql>
  21.        </target>
  22. </project>

执行结果:

3.       Oracle


执行Oracle SQL语句和MySQL的,方法是完全一样的,区别只在于驱动名称,连接jar包,还有url的格式,当然用户名和密码也可能会不同,哈!

 

oracle.sql也在项目根目录下,其中包含的就是代码注释掉的那个SQL语句。

点击(此处)折叠或打开

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project name="DBHandler" basedir="." default="ConnectMySQL">
  3.        <property name="oracleDriver" value="oracle.jdbc.driver.OracleDriver"/>
  4.        <property name="oracleJar" location="WebContent\WEB-INF\lib\ojdbc6-11.2.0.3.0.jar" />
  5.        <property name="oracleUrl" value="jdbc:oracle:thin:@172.16.210.91:1521:TEST"/>
  6.        <property name="oracleUser" value="mw_app" />
  7.        <property name="oraclePassword" value="app" />
  8.        <property name="oracleFile" value="oracle.sql" />
  9.       
  10.        <target name="ConnectOracle">
  11.               <sql driver="${oracleDriver}"
  12.                    url="${oracleUrl}"
  13.                    userid="${oracleUser}"
  14.                    password="${oraclePassword}"
  15.                    classpath="${oracleJar}"
  16.                    print="true">
  17.                      <!--select * from t_role where role_wid= 'Everyone';-->
  18.                      <transaction src="${oracleFile}"/>
  19.               </sql>
  20.        </target>
  21. </project>

       执行结果:


 

 

参考资料

[1]  Ant工具高级功能学习系列笔记(1)-整合AntMysql数据库  http://blog.sina.com.cn/s/blog_4c925dca0100ibto.html

 

阅读(2468) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~