Ruby on Rails 之 Oracle 应用:简易教程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

RubyonRails之Oracle应用:简易教程您可能听说过RubyonRails,一个似乎正以狂风暴雨之势席卷Web开发社区(尤其是JEE和PHP的编程人员)的新应用框架。Rails是功能强大的Web应用平台,而且深受JEE和PHP的编程人员的喜爱。当您了解了Rails的优势后,您就会理解它为何对J2EE和PHP编程人员有如此的吸引力。首先,它使用任何自视甚高的设计模式专家都很钦佩的严格的模型-视图-控制器体系结构;这可以解释它为什么吸引了大量JEE开发人员。其次,使用Rails可以轻松地构建基本系统—这对PHP开发人员具有吸引力。然而,从数据库的角度来说,Rails还是有一些非常大的局限性。Rails对您的数据库布局和应用程序需求做出了许多假定。例如,Rails假定所有表都使用单一的非组合式主键。需通过Rails插件支持组合式主键。此外,Rails支持多数据库而且可以对其间事务进行协调;Rails不支持两阶段提交。本文章的目的不在于对Rails进行赞扬或批评,而只是对该技术的介绍。其中包含表扬也包含有批评。有时批评可能看起来过重了(尤其对于那些Rails的热爱者来说),但是请不要将Rails看得神乎其神。使用任何Web应用框架都是需要技巧的,无论是JEE、ASP.NET还是PHP。从长远来看,使用Rails可能比使用许多其他Web应用程序开发平台更高效,但是也需要假以时日来学习其中的技巧。Ruby是什么?Rails是什么?Ruby是一种动态编程语言,在很多方面和Perl、Python以及Smalltalk相似,但也有自己的特点。Java和PHP编程人员似乎可以非常轻松地学会该语言,而且他们是Ruby的最忠实的拥护者。但是其他人也为该语言所吸引;这其中还包括著名的Microsoft王国中最资深的专家之一DonBox。Ruby并不是新生事物;它创建于1993年,时间比1995年发布的Java或PHP都要久。当时Ruby语言虽已成熟,但不如某些其他语言受欢迎。因此,Ruby编程语言的周边体系并不像Java、PHP或Perl那样丰富。因此,您能找到的有关该语言的框架、信息库、书籍、Web站点、网志和其他资源也相对较少。DavidHeinemeierHanson提出了Rails框架(Ruby历史上最受欢迎的应用程序)后,Ruby社区的软弱无力的市场表现近期发生了变化。Rails将Ruby编程语言扩展为域特定的语言,特别适合Web开发。它还使用了另一种语言扩展ActiveRecord,使Ruby具有对象关系持久性。除了不支持组合主键和两阶段提交外,使用Rails的最大障碍是您需要学习一种新的编程语言。这对大多数人来说都是不可忽视的问题;学习新语言是一项有趣的但令人望而却步的任务。然而,如果您希望学习更多语言,我想没有别的语言比Ruby更值得推荐了。Ruby代表着10年无商业利益篡改开发的巅峰。因此,Ruby是受欢迎的语言,而且在很多情况下比Java、C、或Microsoft.NET语言更高效。(可能要排除Microsoft.NET环境的Python语言端口IronPython。Python,像Ruby一样,是一种动态高效的编程语言。)Rails的用途Rails的设计初衷是创建使用关系数据库后端的动态Web站点。它将关键词添加到Ruby编程语言中,从而使Web应用程序更易于配置。此外,它还可以从现有的数据库模式中自动生成完整(如果有些粗略)的Web应用程序。后者既是Ruby的最大优点也是它的致命缺点。Rails对数据库模式命名惯例做出了假设,如遵循这些假设,只需执行一个命令即可生成一个基础Web站点。但是要完成此操作需要额外的配置,在一些情况下,则是根本无法实现的。您还可能发现Rails期望的每一个数据库惯例都可以被覆盖,但是需要做的覆盖越多,平台的效率就越低。这就是为什么Rails在使用新数据库开发“绿色领域”应用程序时非常强大的原因。不幸的是,它在处理原有系统时并不是一个很好的解决方案。要展示Rails在绿色领域应用程序开发中的作用,最好的方法是通过示例。如果您已经安装了Oracle数据库,并可以在其中创建新的数据库和表,那么创建一个完整的Web应用程序只需不到15分钟的时间。在这种情况下,我们将使用RubyofRails来构建一个产品目录。示例:简单产品目录2005年,我开始投资于高级(HG)漫画书,特别是1946年以来的旧书。我创建了一个简单的RubyonRails数据库应用程序,这样我可以随着新漫画书的买入和卖出对其进行插入、移动、修改和删除。由于仅供我个人使用,所以我将它做得特别简单。本文即将开发的应用程序是我在家使用的RubyonRails应用程序的删节版。虽然Rails和Oracle数据库可以应用于多种平台,但本文中将侧重于Oracle应用程序开发人员最常使用的操作系统之一WindowsXP。本示例非常简单;基本上是等同于“HelloWorld”编程语言示例的数据库。这只是为了让您简单了解一下Ruby,而并不展示Rails的全部功能,至多只是个用于演示任意编程语言完整功能的“HelloWorld”示例。如果您在本示例中遇到问题,可能是以下三种原因之一引起的:不是您下载了错误的代码,就是您的数据库没有设置为允许连接,再或者就是您的WindowsXP操作系统的问题。在开发本示例的过程中,我遇到了一些版本控制和数据库配置的相关问题—都是由于无知造成的。多亏了我的一个朋友MichaelCarland,我才能完成此示例并让本示例尽可能简单。事实是,让RubyonRails和Oracle协同工作并不简单。实际上,有时还可能有点令人沮丧。严格按照本文说明执行,您应该不会遇到问题。但是,如果超出了本示例范围,可能会出现一些问题。Rails可以非常高效,但它是一个命令行开发环境,而且不附带通常与高级集成开发环境相关联的“自动魔术”。如果您不是一个“自己动手做”的技术人员,那我这次将不会向您推荐Rails。第1步:设置Oracle数据库如果您不是对结合Oracle使用Rails感兴趣,您不会阅读本文。所以您需要安装一个Oracle数据库实例并为此示例Rails应用程序创建一个模式。执行此操作最简单的方法是使用SQL*Plus,如下所示。(假定您已经安装Oracle数据库并知道如何使用。本教程中使用Oracle数据库11g。)使用SQL*Plus,创建一个可用于本应用程序的用户。SQLGRANTCONNECT,RESOURCETOrubyIDENTIFIEDBYruby;SQLALTERUSERrubyDEFAULTTABLESPACEusersTEMPORARYTABLESPACEtemp;SQLEXIT如果您使用远程Oracle数据库,您需要安装Oracle数据库即时客户端,这样您无需安装标准Oracle客户端也无需拥有ORACLE_HOME即可运行您的应用程序。要安装该软件,请执行以下步骤:1.访问适用于Windows的Oracle即时客户端的下载页。2.下载instantclient-basic-win32-11.1.0.7.0.zip。3.将文件解压缩到某个目录下。4.将路径添加到环境变量PATH的目录中。第2步:安装Ruby、RubyGems、Rails和Ruby/RailsOracle库要在WindowsXP上使用Rails,您需要两套软件:带有RubyGems安装包的Ruby编程语言Rails2.3.2(Rails的最新版本)和Ruby/RailsOracle数据库。要下载并安装带有Gems安装包的Ruby安装程序,请执行以下步骤:1.访问。2.下载“适用于Windows1.8.6-26最终版的一键式Ruby安装程序”。3.按照安装说明进行操作。当Ruby编程平台安装完毕后,您就可以使用RubyGems了。RubyGems是一个Ruby应用程序,您可以利用它来轻松安装Ruby框架。要安装Rails应用开发框架,您首先需要更新Rubygems,因为Rails2.3.2要求使用Rubygems1.3.1(或更高版本):C:\gemupdate--system然后安装Rails:C:\geminstallrails-v2.3.2既然您已经安装了Ruby、RubyGems和Rails,您现在可以安装特定代码库,以使您的Ruby/Rails应用程序可以与您的Oracle数据库服务器进行通信。要安装RubyOracle库和ActiveRecordOracleAdapter,执行以下命令:C:\geminstallruby-oci8-v1.0.4C:\geminstallactiverecord-oracle-adapter--source。该适配器包含可用于新的和原有的Oracle数据库的有用的其他特性,这些特性从实际项目针对原始ActiveRecordOracle适配器(activerecord-oracle-adapter)的补丁提取而来,并支持三个主要的Ruby解释器(MRI1.8.6、JRuby1.1.6和Ruby/YARV1.9.1)。要安装ActiveRecordOracle增强适配器,执行以下命令:C:\geminstallactiverecord-oracle_enhanced-adapter假设一切顺利,您现在已经安装了Ruby、Rails和Rails-Oracle连接库。现在,您可以创建您的第一个RubyonRailsWeb应用程序了。第3步:创建Web应用程序要创建新Rails应用程序,您需要按照如下所示创建一个新Rails项目。使用rails命令行应用程序创建一个新项目(这将自动创建一个新目录)。C:\railscomics_catalog-doracle转至在前面步骤中创建的新项目目录。C:\cdcomics_catalogC:\comics_catalog既然您已创建一个新的Rails项目目录,现在您将需要配置您的项目以便Rails应用程序将使用Rails-Oracle连接库。在您的项目目录中,有一个名为config的目录,其中有一个名为database.yml的文件。您需要使用您最喜爱的文本编辑器编辑database.yml。最初,该文件将如下所示:development:adapter:oracledatabase:comics_catalog_developmentusername:comics_catalogpassword:#Warning:Thedatabasedefinedastestwillbeerasedand#re-generatedfromyourdevelopmentdatabasewhenyourunrake.#Donotsetthisdbtothesameasdevelopmentorproduction.test:adapter:oracledatabase:comics_catalog_testusername:comics_catalogpassword:production:adapter:oracledatabase:comics_catalog_productionusername:comics_catalogpassword:不同的数据库需要不同的连接属性。Rails默认设置为使用MySQL,但是您希望重新配置该项目以使用Oracle。按照该OracleonRailswiki页面上的说明更改开发属性。(您可能还更改测试和生产属性,但是本文不讨论测试或生产版本。)当在远程设备上使用Oracle数据库时,文件将如下所示:develo

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功