频 道 直 达 - 新闻 - 读书 - 培训 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 技术圈 - 博客 - BBS
51CTO.COM_中国领先的IT技术网站
找资料:

使用Ruby配备Oracle数据库(7)

作者: Dustin Marx 出处:Oracle中文技术网  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2007-04-12 11:18
关 键 词:Ruby  配备  Oracle  数据库
阅读提示:凭借其自身的精致性、简洁性、丰富的库以及对面向对象的特性的强力支持,Ruby成为编写成熟应用程序以及脚本的出色语言。本文介绍如何交互地使用Ruby以及与以前编写的脚本协同使用,以支持与数据库相关的常用函数。并配有示例不仅介绍Ruby如何支持与Oracle数据库有关的简单脚本编写,还会演示Ruby的某些简单但强大的特性。

清单 13 中显示的其他 DBI 异常包括那些派生自 DBI::DatabaseError 的异常,以及用于捕获与 DBI 接口而非数据库有关的异常的 DBI::InterfaceError 异常。

清单 13 中的代码将导致抛出一个异常,因为存在一个“while 0”循环(Ruby 中 0 的值为“true”),该循环将重复执行,直至抛出异常。由于在抛出 DBI::DatabaseError 之前重复调用 DBI.connect 而没有正确关闭打开的连接,因此的确会抛出该异常。在这种情况下,显示的错误代码为 12520(特定于 Oracle 的数据库错误代码),错误字符串为“ORA-12520:TNS:listener could not find available handler for requested type of server.”这些输出代码和字符串值是使用适当的 DBI::DatabaseError 属性(err 和 errstr)输出的。

如果用一个数据库操作(如 SELECT 语句)替换清单 13 中的 while 循环(故意强制数据库错误),rescue、else 和 ensure 块将和清单 12 中的对应块一样被激活。如果仍出现任何异常(如完整性约束),将调用适当的“rescue”块。如果没有遇到指定了 rescue 块的异常,“else”块中的代码将执行并提交事务。在任何情况下,无论是否抛出异常,都将执行“ensure”代码块,并相应地断开与处理程序的连接。

编写 Ruby 脚本时,不一定需要捕获 (rescue) 异常(考虑 Java 的非强制异常)。清单 12 之前的所有未进行异常处理的代码清单都对此进行了阐释。然而,如果您知道可能出现某些异常并希望您的脚本针对这些情况进行某些处理(如立即退出或者打印出某些与异常相关的详细信息),Ruby 可以简化异常处理。如果您不想将 rescue-else-ensure 块与抛出异常的代码块相关联,该脚本将突然停止该代码块的执行,将显示常规异常信息,执行下一个代码块。

图 12 显示了 Ruby 的一些主要异常。图 13 显示了 Ruby DBI 异常。除了这些标准异常之外,您始终可以创建和使用自己的 Ruby 异常。

图12:所选的 Ruby 异常
图13:Ruby/DBI 异常

由于 Ruby(与 Java 一样)是一种面向对象的语言,因此我能够用 Oracle JDeveloper 10g 的 UML 建模工具创建创建图 12 和 13 中的类图。由于 DatabaseError 属性用在代码清单中,因此在图 13 中专门调用这些属性。

Ruby 与对象关系映射

在本文中,您学习了如何协同使用 Ruby 和 Ruby/DBI 来执行数据库操作。对于我们需要直接进行的大多数数据库脚本编写,这通常是一个合理的方法,但如果您需要通过 Ruby 和 Oracle 数据库使用一个对象关系映射方法,ActiveRecord 可能是您所需要的。

ActiveRecord 是在 Ruby on Rails 中引入的,但现在可在 Rails 之外使用。ActiveRecord 依赖于许多惯例和假设,只有遵守这些惯例,ORM 体验才会相对简单。大多数 ActiveRecord 惯例可以清楚地解释 Ruby 模型类和 Oracle 数据库表及其列的适当命名。ActiveRecord 还提供了简单的覆盖机制,可以在需要的情况下脱离惯例和假设。

ActiveRecord 提供了一个有关 Ruby 的面向对象的功能的值得关注的示例,特别是其对于继承和混合的支持。由于所有模型都继承的基本 ActiveRecord 类可以使用重要的功能,因此使用 ActiveRecord 的开发人员通常很少需要向其 ActiveRecord 模型类添加代码。

Ruby 与 Web 开发

由于近来使用 Ruby of Rails 的人数不断增加,因此很难相信还有其他适用于 Ruby 的 Web 框架。事实上,有多个 Web 框架可用于此用途,但 Rails 肯定是该领域的主导者。实际上,Ruby on Rails 不仅为 Ruby 带来了新的声望,还通过其他语言的(如 Python 和 Java)类似框架进行模仿。如果您打算使用 Ruby 进行 Web 开发,需要使用 Ruby on Rails。

Ruby 不仅仅是脚本编写语言

本文主要介绍 Ruby 与数据库访问以及与数据库相关文件操作有关的脚本编写能力。然而,Ruby 提供的远不止这些功能。凭借其自身的精致性、简洁性、丰富的库以及对面向对象的特性的强力支持,Ruby 成为编写成熟应用程序以及脚本的出色语言。

无论是否使用 Rails,Ruby 都是一种值得学习和使用的非常有用的语言。尽管可用于开发复杂的面向对象的应用程序和 Web 应用程序,它仍然保留了脚本编写语言的强大功能,因此非常适合与 Oracle 数据库和其他 Oracle 工具有关的脚本编写。

【相关文章】

【责任编辑:火凤凰 TEL:(010)68476606-8007】


共7页: 上一页 [1] [2] [3] [4] [5] [6] 7
【内容导航】
发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 领 先 的 IT 技 术 网 站 ·
技 术 成 就 梦 想
·Java基础教程 (查看53147次)
·UML类图详解 (查看47544次)
·Java编程开发手册 (查看25519次)
·UML统一建模语言 (查看24906次)
·C#技术开发指南 (查看23253次)
·Java编程开发手册 (1195个砖)
·Java基础教程 (429个砖)
·C#技术开发指南 (306个砖)
·PB开发教程 (220个砖)
·.NET开发手册 (218个砖)
·Java编程开发手册 (653个好)
·Java基础教程 (570个好)
·.NET开发手册 (252个好)
·PB开发教程 (210个好)
·Delphi开发技术手册 (174个好)
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有