16.3.2 发送数据库管理员命名
预先定义的<mysql-admin>任务可以把命名发给数据库。下面是一对任务,分别可以移除(如果存在)数据库和创建新数据库,并为diary账户设置密码和所有权限。如果diary不存在,这个一些列操作会隐式地创建它,其密码设置在mysql.diary.pass特征中。
<target name="mysql-drop-db" depends="mysql-init" |
mysql-create-db目标依赖于mysql-drop-db目标。重新创建数据库以前必须前把旧有的销毁掉。为了避免由于找不到数据库而引发的错误,<sql>调用设置了onerror="continue"。当我们调用mysql-create-db目标时,它将创建一个全新的数据库。
mysql-drop-db: |
我们可以使用新定义的<mysql>任务向新创建的Diary数据库发送命令,比如运行前的一些设置:
<target name="mysql-create-events" depends="mysql-init" |
这个目标将创建一个EVENTS表。Web应用程序可以直接使用它:
mysql-create-events: |
尽管EJB运行时可以根据程序的需要创建数据库的Schema,但在生产系统中,数据库管理员(DBA)仍然有他自己的问题。DBA应该为开发者准备SQL语句,帮助他们设置数据库,也要为操作员准备数据绑定文件,应用服务器需要将Web应用程序与它绑定。<sql>任务可以运行这些命令。如果它们在独立的文件中,那么可以使用src属性进行加载、解析、运行文件。
使用<sql>任务时,有一件事需要小心。<sql>会内联地执行SQL语句序列,这些语句可能来自于src属性指定的文件,也可能来自于嵌套的<transaction>元素。在通过JDBC驱动调用数据库之前,这个任务必须负责解析文本,把它分成单独的语句。它还会识别以--或//开始的注释,但是这样的代码非常容易出问题。因此在文件中,避免使用注释和任何非标准SQL的内容,否则JDBC会拒绝执行。
总结:如果你的应用程序用到了数据库,那么数据库的创建和配置也应该是一个能够自动完成的任务。<sql>能做到这些。然而对于数据库服务器自身的安装和配置,或者绑定应用服务器和数据库,Ant就无能为力了。因此,我们需要另一个工具。
| 回书目 上一节 下一节 |
|
· 第六章 你能帮我吗?.. · Linux笔试面试题选摘测.. · 08年5月软考网管上午真.. · 性能测试从零开始 目录 · 08年5月软考网工上午真.. · 上周拒绝服务攻击(DDo.. |
· 08年5月各大网上书店及.. · 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. · 08年4月各大网上书店及.. |
|
||||
| · Vista SP1对决XP SP3 · SQL Server 2008/2005.. · 浏览器的战国时代 · Windows Server 2008专.. · 程序员如何成长? · ARP攻击防范与解决方案 · C#技术开发指南 · 虚拟化技术还有点“虚” |
· ASP.NET开发教程 · 专题:ASP.NET 2.0基础.. · LAMP技术精解 · 服务器节能与绿色IT · Linux 集群技术专题 · Windows集群服务应用 · CISSP认证成长之路 · SQL Server入门到精通 |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · C#技术开发指南 · Apache技术专题 · Windows集群服务应用 |
· C#技术开发指南 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 · 了解统一威胁管理(UTM).. |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 · 访问控制列表(ACL)介绍 |
|||