电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Ruby on Rails之Oracle應用

瀏覽:140日期:2023-11-21 18:15:52
Rails 是一個易用的框架,但像任何技術一樣,要精通它還需一定的時間。2006 年 4 月發表 您可能對 Ruby on Rails 已有所耳聞,這一新應用框架正以狂風暴雨之勢席卷 Web 開發社區,尤其是 J2EE 和 PHP 編程界。 Rails 是一個功能強大的 Web 應用平臺,在不到兩年的時間內便贏得了眾多 J2EE 和 PHP 編程人員的廣泛青睞。它為什么會得到 J2EE 和 PHP 編程人員的垂青?了解 Rails 的優勢后您的疑問將一掃而空。其一是它使用了嚴格的 model-view-controller (模式—視圖—控制器)體系結構,贏得了自尊且醉心于設計模式的“妄客”(自我的技術迷)的尊敬 — 這是 J2EE 開發人員對其情有獨鐘的原因。其二是使用 Rails 可以非常方便地構建基礎系統 — 這是它吸引 PHP 開發人員的原因。 但是,從數據庫角度來看,Rails 有一些非常明顯的缺陷。Rails 對數據庫布局和應用程序需求作了許多假定。比如,Rails 假定所有表都使用一個非復合的主鍵。它不支持復合主鍵!另外,Rails 不支持雙步提交;它只能用于單個數據庫后端的情況。 本文不是 Rails 的吹捧文章或是批判文章,僅是對這一技術的一個介紹。其中既有褒獎也有批評。可能有時批判顯得有點嚴厲(在 Rails 狂熱愛好者眼中尤其如此),但是不要為表象所迷惑。使用任何 Web 應用框架都要講究技巧,不管它是 J2EE、Asp.Net、或 PHP。從長遠來看,使用 Rails 比使用其它 Web 應用開發平臺的效率更高,但是需要一定的時間來熟悉和把握該技術。 什么是 Ruby?什么是 Rails? Ruby 是一種動態編程語言,它在許多方面類似于 Perl、Python 和 Smalltalk,但是它是自成體系的。Java 和 PHP 編程人員似乎可以很輕松的把握這一語言,他們是 Ruby 的最大擁護者。這一語言還吸引著其他人的加入,包括 Don Box 這位 Microsoft 界的超級“妄客”。 Ruby 的歷史不短,它問世于 1993 年,先于在 1995 年便為公眾知曉的 Java 和 PHP。所以盡管 Ruby 是一個成熟的語言,卻不如其它語言普及。這造成了 Ruby 編程語言陣營并不如 Java、PHP 和 Perl 陣營強大。因此,您會發現專門針對這一語言的框架、庫、書籍、網站、博客和其它資源都比較少。 在 David Heinemeier Hanson 于近期推出了 Rails 框架后,Ruby 社區推廣能力不濟的頹勢得到了扭轉,有證據表明該框架是 Ruby 誕生以來最受歡迎的應用程序。Rails 將 Ruby 編程語言擴展為極其適用于 Web 開發的領域特定語言(Domain Specific Language)。它還借用了 ActiveRecord 擴展,將對象關系持久性引入了 Ruby 語言。Rails 讓人敬而遠之的原因除了它不支持復合主鍵和兩步提交外,其最大的障礙在于要使用它您需要重新學習一門編程語言。這不是大部分人可以不求甚解一略而過的階段,學習一門新語言雖然可以為您帶來歡樂,但同時卻是一條令人生畏的坎坷之途。但是,假如您想在自己的履歷中添上濃墨重彩的一筆,Ruby 語言便是不二之選。梅花香自苦寒來,Ruby 是一個完全不受商業利益左右,歷經 10 年錘煉而成的語言。所以,使用 Ruby 能給您帶來愉悅的享受,在很多情況下,其生產率比 Java、C 和 Microsoft .NET 語言高出一個數量級。(IronPython 可能是個例外,它是 Python 語言與 Microsoft .NET 環境的接口。Python 類似于 Ruby,也是一個生產率很高的動態編程語言。) Rails 的用途是什么? Rails 是一個從零開始設計而成的框架,用于構建使用關系數據庫后端的動態網站。它將要害詞引入了 Ruby 編程語言,簡化了 Web 應用程序的配置。此外,它還可以基于現有的數據庫模式自動生產完整的 Web 應用程序,盡管有點粗糙。這一能力既是 Ruby 的突出優點,卻同時也是它的致命弱點。Rails 假定了數據庫模式命名規范,假如遵循這一規范,只需執行一個命令即可生成一個基本 Web 站點。但要完成這一工作需要進行一些額外配置,有時這些配置可能根本無法實現。您還會發現 Rail 假定的數據庫規范幾乎都是可更改的,但是更改得越多,該平臺的生產率就越低。這就是 Rails 在開發新數據庫的新應用程序時能大顯神通的原因。但它卻不是處理原有系統的一個上佳方案。 示例是了解使用 Rails 開發新應用程序的最好方式。假如您安裝有 Oracle 數據庫,且能夠基于這一數據庫創建新數據庫和新表,那么創建一個完整的 Web 應用程序的用時將不超過 15 分鐘。在本示例中,我們將使用 Ruby on Rails 來構建一個產品目錄。 示例:簡單的產品目錄 我從去年開始投資高檔漫畫書,非凡是 1946 年以來的舊版漫畫書。我創建了一個簡單的 Ruby on Rails 數據庫應用程序,利用它我在買賣活動中就可來方便地插入、移除、更改和刪除書籍。因為是供我個人使用,所以程序自然是能減則減。本文中要構建的應用程序是我所使用的 Ruby on Rails 應用程序的“廋身”版。 盡管 Rails 和 Oracle 數據庫可用于很多平臺上,但本文采用了 Windows XP,有證據表明它是 Oracle 應用程序開發人員最常用的平臺之一。本示例非常簡單,其實就是 “Hello World” 編程語言示例的數據庫版,目的是讓您初嘗 Ruby,但它并沒有展示 Rails 的所有能力,就像任何編程語言的“Hello World”示例都沒有淋漓盡致地展示該語言的所有能力一樣。 假如您在運行這一示例的過程中出現了問題,原因可能有以下三種:下載的代碼不對;數據庫設置不當,不能連到該示例應用程序;或者是您的 Windows XP 操作系統出現了問題。在開發本示例的過程中,我碰到了一些涉及版本和數據庫配置的問題 — 所有這些都是由缺乏知識而造成的。我從我的朋友 Michael Carland 那里學到了許多知識,這樣才得以順利完成這一示例,并使之盡量簡單。 實際情況是,實現 Ruby on Rails 和 Oracle 的協同工作并不是一件簡單的事情。有時會讓人倍感灰心。如完全按本文中的說明,您應該不會碰到問題。但是一旦超出本示例的范圍,就會出問題。Rails 可以達到很高的生產率,但它是一個命令行開發環境,并不提供高級集成開發環境通常所具有的“自動化”功能。假如您不是“自力更生”型的技術人員,那目前最好不要使用 Rails。第 1 步:設置 Oracle 數據庫 假如您對結合使用 Rails 和 Oracle 不感愛好的話,您也不會來看這篇文章,所以您需要安裝一個 Oracle 數據庫實例并向該數據庫添加一個表。嚴格遵循本文中的命名規范非常重要,否則由 Rails 自動生成的代碼將無法正常運行(假如不進行調整)。您要創建的表如下所述: CREATE TABLE comics (id,;;NUMBER(10) NOT NULL,title;;VARCHAR2(60), ;;NUMBER(4),publisher;VARCHAR2(60),PRIMARY KEY (id));CREATE SEQUENCE comics_seq;這里提供了一個 SQL 腳本文件,您可以用它來創建表并添加一些產品數據。我建議您使用它,以便您的應用程序便與這里開發的保持一致。完成這一工作最簡單的方法是按照以下步驟使用 SQL*Plus。(假定您已經安裝有 Oracle 數據庫并知道如何使用它。) 使用 SQL*Plus,創建一個擁有 DBA 權限的用戶,用于在這一應用程序中進行操作。 SQL> GRANT dba TO ruby IDENTIFIED BY ruby;SQL> ALTER USER ruby DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;SQL> EXIT使用 SQL 文件,創建應用程序表 COMICS,然后插入一些示例數據。 C:> sqlplus ruby/ruby@rails @comics.sql可能您已經發現本例中創建的 COMICS 是復數形式,這似乎不太正常,因為通常我們都將表命名為單數形式(例如 COMIC)。但是,Rails 采用了復數形式來命名表。通過 Rails 配置可以更改這一默認規范,但使用復數名稱更為簡便。 第 2 步:安裝 Ruby、RubyGems、Rails 和 Rails Oracle 庫 要在 Windows XP 上使用 Rails,需要兩個軟件:帶 RubyGems 的 Ruby 編程語言安裝包,Rails 1.0 (1.1 版已于不久前推出,但本文只討論 1.0),和 Rails Oracle 數據庫庫。要下載和安裝帶 Gems 的 Ruby 安裝程序,請按以下步驟進行。 訪問 http://rubyinstaller.rubyforge.org/。 下載“One-Click Ruby Installer”。 按照說明完成安裝。安裝完 Ruby 編程平臺后,您就可以使用 RubyGems 這一 Ruby 應用工具很方便地安裝 Ruby 框架了。要安裝 Rails 應用程序開發框架,您只需打開命令行提示符,鍵入一個命令: C:> gems install rails -v 1.0.0 --remote現在您已經成功安裝了 Ruby、RubyGems 和 Rails,接下來可以安裝一些專用代碼庫,以實現 Rails 應用程序和 Oracle 數據庫服務器的通信。要下載和安裝 Oracle Rails 庫,請訪問 http://rubyforge.org/projects/ruby-oci8,下載 ruby-oci8-0.1.13-mswin.r 到 C 盤中,然后在命令窗口中執行以下命令: C:> ruby ruby-oci8-0.1.13-mswin.rb假如一切順利,到目前為此,您就完成了 Ruby、Rails 和 Rails-Oracle 連接庫的安裝。下一步就是創建您的第一個 Ruby on Rails Web 應用程序了。 第 3 步:創建 Web 應用程序 要創建一個新的 Rails 應用程序,先要按照以下步驟創建一個新的 Rails 項目: 使用 rails 命令行應用程序創建一個新項目(將自動創建新目錄)。 C:> rails comics_catalog更改目錄,進入前一步創建的新項目目錄。 C:> cd comics_catalogC:comics_catalog>現在您已經創建了一個新的 Rails 項目目錄,下面您需要配置項目以讓 Rails 應用程序使用 Rails-Oracle 連接庫。 在您的項目目錄中,有一個 config 目錄,其中有一個 database.yml 文件。您需要使用文本編輯器來對 database.yml 文件進行編輯。該文件的原始內容如下: development:adapter:mysqldatabase:rails_developmenthost:localhostusernamerootpassWord: # Warning:The database defined as 'test' will be erased and# re-generated from your development database when you run 'rake'.# Do not set this db to the same as development or prodUCtion.test:adapter:mysqldatabase:rails_testhost:localhostusernamerootpassword:production:adapter:mysqldatabase:rails_productionhost:localhostusernamerootpassword:不同的數據庫需要使用不同的連接屬性。Rails 的默認設置適用于 MySQL,但您要重新配置該項目以使用 Oracle。按照下列步驟更改 development 屬性。(您也可以更改 test 和 production 屬性,但本文不討論這些內容) development:adapter:ociusernameruby口令):rubyhost:RAILS 使用 Rails 創建 Web 應用程序的方法有多種,但到目前為止最為簡單的方法是使用 Rails 1.0.0 中新增的一個命令行功能,使用它可以一次構建整個應用程序。 C:comics_catalog> ruby script/generate scaffold Comic 除了在命令行窗口中連續出現的輸出外,還發生了什么呢?Rails 代碼生成器創建了模型、視圖和控制器 Ruby 代碼來訪問 COMICS 表。在本例中您使用 Rails 的 scaffold 來創建應用程序,它將為您完成所有的工作。假如更改了數據庫表,您需要重新運行 scaffold 命令。否則您的應用程序將無法工作。 現在您已經生成了 web 應用程序,接下來就是啟動 Ruby Web 服務器 — WEBRick。 C:comics_catalog> ruby script/server您可以在任何時候更改您應用程序的 Ruby 代碼或 COMICS 表而無需重啟 web 服務器。但是,假如您更改了數據庫配置文件(如 database.yml),則需要重啟服務器。 現在您可以使用 Web 瀏覽器來訪問位于您開發計算機中的 Rails Comic Catalog 應用程序。使用如下 URL: http://localhost:3000/comics/list瀏覽器應該顯示一個您的目錄中包含的漫畫書列表,如圖 1 所示。 Ruby on Rails之Oracle應用圖 1:產品目錄表 當您使用 scaffold 創建 Rails Web 應用程序時,它會自動創建三個 Web 組件,您可以使用這些組件來查看一個含目標數據庫表所有記錄的列表,以及插入、更改和刪除該表中的記錄。圖 1 中顯示了一個列表,其中包含了您在本教程開始時執行 SQL 腳本而向數據庫中插入的所有示例數據。 除了列表視圖外,本程序還提供詳情視圖。點擊任一“Show” 鏈接您就可以查看詳情頁,其中專門顯示某一記錄的數據。圖 2 即是這種頁面的一個示例。 圖 2:詳情頁 您還可以編輯數據庫表中的任一記錄。單擊“Back”鏈接,或使用瀏覽器的回退按鈕返回列表視圖頁,然后點擊任一記錄的“Edit”鏈接。圖 3 顯示了 COMICS 數據庫表中記錄之一的編輯視圖示例。 圖 3:編輯視圖 您也可以向 COMICS 表中添加新記錄,先返回列表視圖,單擊“New Comic”鏈接。然后您將看到一個插入視圖,它類似于圖 3,只是所有域都是空白的。 精通 Rails Product Catalog 示例展示了使用 Rails 可以很方便地創建一個極其簡單的表,但是這個表除用于跟蹤庫存外在其它方面并沒有很大的用處。您可以使用 Rails 創建復雜得多的 Web 應用程序,但這需要您花費一定的精力來研究和揣摩代碼。Rails 是一個易用的框架,但像任何技術一樣,要精通它還需一定的時間。這里,我只建議正進行全新應用程序開發,通曉技術的人員和開發團隊使用 Rails。對于在此之外的,建議您等其成熟后再使用。 要真正精通 Rails,建議您閱讀一本書,雖然今年稍后會有一系列書涌現,但目前市面上現有的一本優秀著作是 Agile Web Programming with Ruby on Rails ,該書由 David Heninmier Hanson 和 Dave Thomas 合著完成,由 Pragmatic Bookshelf 在 2005 年出版。Hanson,眾所周知,是 Rails 之父,而 Thomas 則參與了 Programming Ruby:The Pragmatic Programmers' Guide(Pragmatic Bookshelf,第 2 版,2004)一書的編撰。
標簽: Oracle 數據庫
主站蜘蛛池模板: 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 校园文化空间设计-数字化|中医文化空间设计-党建|法治廉政主题文化空间施工-山东锐尚文化传播公司 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 药品冷藏箱厂家_低温冰箱_洁净工作台-济南欧莱博电子商务有限公司官网 | 合肥角钢_合肥槽钢_安徽镀锌管厂家-昆瑟商贸有限公司 | 螺杆式冷水机-低温冷水机厂家-冷冻机-风冷式-水冷式冷水机-上海祝松机械有限公司 | 油冷式_微型_TDY电动滚筒_外装_外置式电动滚筒厂家-淄博秉泓机械有限公司 | 上海心叶港澳台联考一对一培训_上海心叶港澳台联考,港澳台联考一对一升学指导 | 展厅设计公司,展厅公司,展厅设计,展厅施工,展厅装修,企业展厅,展馆设计公司-深圳广州展厅设计公司 | 舞台木地板厂家_体育运动木地板_室内篮球馆木地板_实木运动地板厂家_欧氏篮球地板推荐 | 制冷采购电子商务平台——制冷大市场| 防水套管|柔性防水套管|伸缩器|伸缩接头|传力接头-河南伟创管道 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 广东机电安装工程_中央空调工程_东莞装饰装修-广东粤标建设有限公司 | 深圳公司注册-工商注册代理-注册公司流程和费用_护航财税 | 宽带办理,电信宽带,移动宽带,联通宽带,电信宽带办理,移动宽带办理,联通宽带办理 | 精密冲床,高速冲床等冲压设备生产商-常州晋志德压力机厂 | 浙江筋膜枪-按摩仪厂家-制造商-肩颈按摩仪哪家好-温州市合喜电子科技有限公司 | 正压送风机-多叶送风口-板式排烟口-德州志诺通风设备 | 合金耐磨锤头_破碎机锤头_郑州市德勤建材有限公司 | 拉曼光谱仪_便携式|激光|显微共焦拉曼光谱仪-北京卓立汉光仪器有限公司 | 手术室净化厂家-成都做医院净化工程的公司-四川华锐-15年特殊科室建设经验 | 永嘉县奥阳陶瓷阀门有限公司| PE一体化污水处理设备_地埋式生活污水净化槽定制厂家-岩康塑业 | 四合院设计_四合院装修_四合院会所设计-四合院古建设计与建造中心1 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 多功能干燥机,过滤洗涤干燥三合一设备-无锡市张华医药设备有限公司 | 建筑资质代办-建筑企业资质代办机构-建筑资质代办公司 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 万濠投影仪_瑞士TRIMOS高度仪_尼康投影仪V12BDC|量子仪器 | 工作心得_读书心得_学习心得_找心得体会范文就上学道文库 | 博博会2021_中国博物馆及相关产品与技术博览会【博博会】 | 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 七维官网-水性工业漆_轨道交通涂料_钢结构漆 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 吉祥新世纪铝塑板_生产铝塑板厂家_铝塑板生产厂家_临沂市兴达铝塑装饰材料有限公司 | 工业制氮机_psa制氮机厂家-宏骁智能装备科技江苏有限公司 | 合肥花魁情感婚姻咨询中心_挽回爱情_修复婚姻_恋爱指南 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 |