版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.:.;Ruby on Rails 之 Oracle 運(yùn)用:簡(jiǎn)易教程您能夠聽說過 Ruby on Rails,一個(gè)似乎正以狂風(fēng)暴雨之勢(shì)席卷 Web 開發(fā)社區(qū)尤其是 JEE 和 PHP 的編程人員的新運(yùn)用框架。 Rails 是功能強(qiáng)大的 Web 運(yùn)用平臺(tái),而且深受 JEE 和 PHP 的編程人員的喜歡。當(dāng)您了解了 Rails 的優(yōu)勢(shì)后,您就會(huì)了解它為何對(duì) J2EE 和 PHP 編程人員有如此的吸引力。首先,它運(yùn)用任何自視甚高的設(shè)計(jì)方式專家都很欽佩的嚴(yán)厲的模型-視圖-控制器體系構(gòu)造;這可以解釋它為什么吸引了大量 JEE 開發(fā)人員。其次,運(yùn)用 Rails 可以輕松地構(gòu)建根本系統(tǒng) 這對(duì) PHP 開發(fā)人
2、員具有吸引力。 然而,從數(shù)據(jù)庫的角度來說,Rails 還是有一些非常大的局限性。Rails 對(duì)您的數(shù)據(jù)庫規(guī)劃和運(yùn)用程序需求做出了許多假定。例如,Rails 假定一切表都運(yùn)用單一的非組合式主鍵。需經(jīng)過 HYPERLINK / Rails 插件支持組合式主鍵。此外,Rails 支持多數(shù)據(jù)庫而且可以對(duì)其間事務(wù)進(jìn)展協(xié)調(diào);Rails 不支持兩階段提交。本文章的目的不在于對(duì) Rails 進(jìn)展贊揚(yáng)或批判,而只是對(duì)該技術(shù)的引見。其中包含表揚(yáng)也包含有批判。有時(shí)批判能夠看起來過重了尤其對(duì)于那些 Rails 的熱愛者來說,但是請(qǐng)不要將 Rails 看得神乎其神。
3、運(yùn)用任何 Web 運(yùn)用框架都是需求技巧的,無論是 JEE、ASP.NET 還是 PHP。從長(zhǎng)久來看,運(yùn)用 Rails 能夠比運(yùn)用許多其他 Web 運(yùn)用程序開發(fā)平臺(tái)更高效,但是也需求假以時(shí)日來學(xué)習(xí)其中的技巧。 Ruby 是什么?Rails 是什么?Ruby 是一種動(dòng)態(tài)編程言語,在很多方面和 Perl、Python 以及 Smalltalk 類似,但也有本人的特點(diǎn)。Java 和 PHP 編程人員似乎可以非常輕松地學(xué)會(huì)該言語,而且他們是 Ruby 的最忠實(shí)的擁護(hù)者。但是其他人也為該言語所吸引;這其中還包括著名的 Microsoft 王國中最資深的專家之一 Don Box。 Ruby 并不是新惹事物;
4、它創(chuàng)建于 1993 年,時(shí)間比 1995 年發(fā)布的 Java 或 PHP 都要久。當(dāng)時(shí) Ruby 言語雖已成熟,但不如某些其他言語受歡迎。因此,Ruby 編程言語的周邊體系并不像 Java、PHP 或 Perl 那樣豐富。因此,您能找到的有關(guān)該言語的框架、信息庫、書籍、Web 站點(diǎn)、網(wǎng)志和其他資源也相對(duì)較少。 David Heinemeier Hanson 提出了 Rails 框架Ruby 歷史上最受歡迎的運(yùn)用程序后,Ruby 社區(qū)的脆弱無力的市場(chǎng)表現(xiàn)近期發(fā)生了變化。Rails 將 Ruby 編程言語擴(kuò)展為域特定的言語,特別適宜 Web 開發(fā)。它還運(yùn)用了另一種言語擴(kuò)展 ActiveRecord
5、,使 Ruby 具有對(duì)象關(guān)系耐久性。除了不支持組合主鍵和兩階段提交外,運(yùn)用 Rails 的最大妨礙是您需求學(xué)習(xí)一種新的編程言語。這對(duì)大多數(shù)人來說都是不可忽視的問題;學(xué)習(xí)新言語是一項(xiàng)有趣的但令人望而卻步的義務(wù)。 然而,假設(shè)您希望學(xué)習(xí)更多言語,我想沒有別的言語比 Ruby 更值得引薦了。Ruby 代表著 10 年無商業(yè)利益篡改開發(fā)的巔峰。因此,Ruby 是受歡迎的言語,而且在很多情況下比 Java、C、或 Microsoft .NET 言語更高效。能夠要排除 Microsoft .NET 環(huán)境的 Python 言語端口 IronPython。Python,像 Ruby 一樣,是一種動(dòng)態(tài)高效的編程言
6、語。 Rails 的用途 Rails 的設(shè)計(jì)初衷是創(chuàng)建運(yùn)用關(guān)系數(shù)據(jù)庫后端的動(dòng)態(tài) Web 站點(diǎn)。它將關(guān)鍵詞添加到 Ruby 編程言語中,從而使 Web 運(yùn)用程序更易于配置。此外,它還可以從現(xiàn)有的數(shù)據(jù)庫方式中自動(dòng)生成完好假設(shè)有些粗略的 Web 運(yùn)用程序。后者既是 Ruby 的最大優(yōu)點(diǎn)也是它的致命缺陷。Rails 對(duì)數(shù)據(jù)庫方式命名慣例做出了假設(shè),如遵照這些假設(shè),只需執(zhí)行一個(gè)命令即可生成一個(gè)根底 Web 站點(diǎn)。但是要完成此操作需求額外的配置,在一些情況下,那么是根本無法實(shí)現(xiàn)的。您還能夠發(fā)現(xiàn) Rails 期望的每一個(gè)數(shù)據(jù)庫慣例都可以被覆蓋,但是需求做的覆蓋越多,平臺(tái)的效率就越低。這就是為什么 Rails
7、 在運(yùn)用新數(shù)據(jù)庫開發(fā)“綠色領(lǐng)域運(yùn)用程序時(shí)非常強(qiáng)大的緣由。不幸的是,它在處置原有系統(tǒng)時(shí)并不是一個(gè)很好的處理方案。 要展現(xiàn) Rails 在綠色領(lǐng)域運(yùn)用程序開發(fā)中的作用,最好的方法是經(jīng)過例如。假設(shè)您曾經(jīng)安裝了 Oracle 數(shù)據(jù)庫,并可以在其中創(chuàng)建新的數(shù)據(jù)庫和表,那么創(chuàng)建一個(gè)完好的 Web 運(yùn)用程序只需不到 15 分鐘的時(shí)間。在這種情況下,我們將運(yùn)用 Ruby of Rails 來構(gòu)建一個(gè)產(chǎn)品目錄。 例如:簡(jiǎn)單產(chǎn)品目錄 2005 年,我開場(chǎng)投資于高級(jí) (HG) 漫畫書,特別是 1946 年以來的舊書。我創(chuàng)建了一個(gè)簡(jiǎn)單的 Ruby on Rails 數(shù)據(jù)庫運(yùn)用程序,這樣我可以隨著新漫畫書的買入和賣出對(duì)
8、其進(jìn)展插入、挪動(dòng)、修正和刪除。由于僅供我個(gè)人運(yùn)用,所以我將它做得特別簡(jiǎn)單。本文即將開發(fā)的運(yùn)用程序是我在家運(yùn)用的 Ruby on Rails 運(yùn)用程序的刪節(jié)版。 雖然 Rails 和 Oracle 數(shù)據(jù)庫可以運(yùn)用于多種平臺(tái),但本文中將偏重于 Oracle 運(yùn)用程序開發(fā)人員最常運(yùn)用的操作系統(tǒng)之一 Windows XP。本例如非常簡(jiǎn)單;根本上是等同于“Hello World編程言語例如的數(shù)據(jù)庫。這只是為了讓您簡(jiǎn)單了解一下 Ruby,而并不展現(xiàn) Rails 的全部功能,至多只是個(gè)用于演示恣意編程言語完好功能的“Hello World例如。 假設(shè)您在本例如中遇到問題,能夠是以下三種緣由之一引起的:不是您
9、下載了錯(cuò)誤的代碼,就是您的數(shù)據(jù)庫沒有設(shè)置為允許銜接,再或者就是您的 Windows XP 操作系統(tǒng)的問題。在開發(fā)本例如的過程中,我遇到了一些版本控制和數(shù)據(jù)庫配置的相關(guān)問題 都是由于無知呵斥的。多虧了我的一個(gè)朋友 Michael Carland,我才干完成此例如并讓本例如盡能夠簡(jiǎn)單。 現(xiàn)實(shí)是,讓 Ruby on Rails 和 Oracle 協(xié)同任務(wù)并不簡(jiǎn)單。實(shí)踐上,有時(shí)還能夠有點(diǎn)令人沮喪。嚴(yán)厲按照本文闡明執(zhí)行,您應(yīng)該不會(huì)遇到問題。但是,假設(shè)超出了本例如范圍,能夠會(huì)出現(xiàn)一些問題。Rails 可以非常高效,但它是一個(gè)命令行開發(fā)環(huán)境,而且不附帶通常與高級(jí)集成開發(fā)環(huán)境相關(guān)聯(lián)的“自動(dòng)魔術(shù)。假設(shè)您不是一個(gè)
10、“本人動(dòng)手做的技術(shù)人員,那我這次將不會(huì)向您引薦 Rails。 第 1 步:設(shè)置 Oracle 數(shù)據(jù)庫 假設(shè)您不是對(duì)結(jié)合 Oracle 運(yùn)用 Rails 感興趣,您不會(huì)閱讀本文。所以您需求安裝一個(gè) Oracle 數(shù)據(jù)庫實(shí)例并為此例如 Rails 運(yùn)用程序創(chuàng)建一個(gè)方式。執(zhí)行此操作最簡(jiǎn)單的方法是運(yùn)用 SQL*Plus,如下所示。假定您曾經(jīng)安裝 Oracle 數(shù)據(jù)庫并知道如何運(yùn)用。本教程中運(yùn)用 HYPERLINK oracle/technology/global/cn/products/database/oracle11g/index.html Oracle 數(shù)據(jù)庫 11g。 運(yùn)用 SQL*Plus,
11、創(chuàng)建一個(gè)可用于本運(yùn)用程序的用戶。 SQL GRANT CONNECT, RESOURCE TO ruby IDENTIFIED BY ruby;SQL ALTER USER ruby DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;SQL EXIT假設(shè)您運(yùn)用遠(yuǎn)程 Oracle 數(shù)據(jù)庫,您需求安裝 HYPERLINK oracle/technology/global/cn/tech/oci/instantclient/index.html Oracle 數(shù)據(jù)庫即時(shí)客戶端,這樣您無需安裝規(guī)范 Oracle 客戶端也無需擁有 ORACLE_HOM
12、E 即可運(yùn)轉(zhuǎn)您的運(yùn)用程序。要安裝該軟件,請(qǐng)執(zhí)行以下步驟:訪問適用于 Windows 的 Oracle 即時(shí)客戶端的 HYPERLINK oracle/technology/global/cn/software/tech/oci/instantclient/htdocs/winsoft.html 下載頁。 下載 instantclient-basic-win32-.0.zip。 將文件解緊縮到某個(gè)目錄下。 將途徑添加到環(huán)境變量 PATH 的目錄中。 第 2 步:安裝 Ruby、RubyGems、Rails 和 Ruby/Rails Oracle 庫 要在 Windows XP 上
13、運(yùn)用 Rails,您需求兩套軟件:帶有 RubyGems 安裝包的 Ruby 編程言語 Rails 2.3.2Rails 的最新版本和 Ruby/Rails Oracle 數(shù)據(jù)庫。要下載并安裝帶有 Gems 安裝包的 Ruby 安裝程序,請(qǐng)執(zhí)行以下步驟:訪問 HYPERLINK / /。 下載 HYPERLINK /frs/download.php/29263/ruby186-26.exe “適用于 Windows 1.8.6-26 最終版的一鍵式 Ruby 安
14、裝程序。 按照安裝闡明進(jìn)展操作。 當(dāng) Ruby 編程平臺(tái)安裝終了后,您就可以運(yùn)用 RubyGems 了。RubyGems 是一個(gè) Ruby 運(yùn)用程序,您可以利用它來輕松安裝 Ruby 框架。要安裝 Rails 運(yùn)用開發(fā)框架,您首先需求更新 Rubygems,由于 Rails 2.3.2 要求運(yùn)用 Rubygems 1.3.1或更高版本:C: gem update -system然后安裝 Rails:C: gem install rails -v 2.3.2既然您曾經(jīng)安裝了 Ruby、RubyGems 和 Rails,您如今可以安裝特定代碼庫,以使您的 Ruby/Rails 運(yùn)用程序可以與您的
15、Oracle 數(shù)據(jù)庫效力器進(jìn)展通訊。要安裝 HYPERLINK / t _blank Ruby Oracle 庫和 ActiveRecord Oracle Adapter,執(zhí)行以下命令: C: gem install ruby-oci8 -v 1.0.4C: gem install activerecord-oracle-adapter -source ActiveRecord Oracle Adapter 的另一個(gè)選擇是 Oracle ACE HYPERLINK github/rsim t _blank R
16、aimonds Simanovskis 維護(hù)的倍受歡迎的 HYPERLINK github/rsim/oracle-enhanced/tree/master t _blank ActiveRecord Oracle 加強(qiáng)適配器。該適配器包含可用于新的和原有的 Oracle 數(shù)據(jù)庫的 HYPERLINK wiki.github/rsim/oracle-enhanced/usage t _blank 有用的其他特性,這些特性從實(shí)踐工程針對(duì)原始 ActiveRecord Oracle 適配器 ( HYPERLINK /browser/adapters/oracl
17、e/lib/active_record/connection_adapters/oracle_adapter.rb t _blank activerecord-oracle-adapter) 的補(bǔ)丁提取而來,并 HYPERLINK blog.rayapps/2021/03/23/activerecord-oracle-enhanced-adapter-also-on-jruby-and-ruby-19/ 支持三個(gè)主要的 Ruby 解釋器MRI 1.8.6、JRuby 1.1.6 和 Ruby/YARV 1.9.1。要安裝 ActiveRecord Oracle 加強(qiáng)適配器,執(zhí)行以下命令:C:
18、gem install activerecord-oracle_enhanced-adapter假設(shè)一切順利,您如今曾經(jīng)安裝了 Ruby、Rails 和 Rails-Oracle 銜接庫。如今,您可以創(chuàng)建您的第一個(gè) Ruby on Rails Web 運(yùn)用程序了。 第 3 步:創(chuàng)建 Web 運(yùn)用程序 要?jiǎng)?chuàng)建新 Rails 運(yùn)用程序,您需求按照如下所示創(chuàng)建一個(gè)新 Rails 工程。 運(yùn)用 rails 命令行運(yùn)用程序創(chuàng)建一個(gè)新工程這將自動(dòng)創(chuàng)建一個(gè)新目錄。 C: rails comics_catalog -d oracle轉(zhuǎn)至在前面步驟中創(chuàng)建的新工程目錄。 C: cd comics_catalogC
19、:comics_catalog既然您已創(chuàng)建一個(gè)新的 Rails 工程目錄,如今您將需求配置您的工程以便 Rails 運(yùn)用程序?qū)⑦\(yùn)用 Rails-Oracle 銜接庫。 在您的工程目錄中,有一個(gè)名為 config 的目錄,其中有一個(gè)名為 database.yml 的文件。您需求運(yùn)用您最喜歡的文本編輯器編輯 database.yml。最初,該文件將如下所示: development: adapter: oracle database: comics_catalog_development username: comics_catalog password: # Warning: The datab
20、ase 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: oracle database: comics_catalog_test username: comics_catalog password: production: adapter: oracle database: comics_c
21、atalog_production username: comics_catalog password:不同的數(shù)據(jù)庫需求不同的銜接屬性。Rails 默許設(shè)置為運(yùn)用 MySQL,但是您希望重新配置該工程以運(yùn)用 Oracle。按照該 Oracle on Rails HYPERLINK /rails/pages/Oracle wiki 頁面上的闡明更改開發(fā)屬性。您能夠還更改測(cè)試和消費(fèi)屬性,但是本文不討論測(cè)試或消費(fèi)版本。當(dāng)在遠(yuǎn)程設(shè)備上運(yùn)用 Oracle 數(shù)據(jù)庫時(shí),文件將如下所示: development: adapter: oracle database: /
22、username: ruby password: ruby假設(shè)運(yùn)用 HYPERLINK github/rsim/oracle-enhanced/tree/master ActiveRecord Oracle 加強(qiáng)適配器,請(qǐng)將“oracle_enhanced而不是“oracle指定為適配器。 在 Rails 中創(chuàng)建 Web 運(yùn)用程序有很多種方法,但是目前最簡(jiǎn)單的方法是運(yùn)用 scaffold,這是一個(gè)可以在 Rails 中運(yùn)用單一命令構(gòu)建整個(gè)運(yùn)用程序的命令行特性。C:comics_catalog ruby script/generate scaffold comic title:string is
23、sue:integer publisher:string這里的“title:string代表 Rails 中類型為“string的表列,與 Oracle 中的“varchar2類型相對(duì)應(yīng)。沒有命令窗口中的一系列輸出,那么剛剛發(fā)生了什么?Rails 代碼生成器創(chuàng)建了模型、視圖和控制器 Ruby 代碼以訪問 COMICS 表。在本例如中,您創(chuàng)建運(yùn)用程序所運(yùn)用的 Rails scaffold 曾經(jīng)為您做了一切的任務(wù)。 假設(shè)您對(duì)數(shù)據(jù)庫表做出任何改動(dòng),您將需求再次運(yùn)轉(zhuǎn) scaffold 命令。否那么,您的運(yùn)用程序能夠不會(huì)任務(wù)。 您還沒有創(chuàng)建任何數(shù)據(jù)庫表。Rails 可以協(xié)助 您輕松完成,執(zhí)行以下命令即可
24、創(chuàng)建“comics表:C:comics_catalog rake db:migrate既然 Web 運(yùn)用程序曾經(jīng)生成,如今您可以啟動(dòng) Ruby Web 效力器 WEBrick。 C:comics_catalog ruby script/server您可以隨時(shí)更改您運(yùn)用程序的 Ruby 代碼,無需重新啟動(dòng) web 效力器。然而,假設(shè)您更改數(shù)據(jù)庫配置文件例如 database.yml,您將需求重新啟動(dòng)效力器。 如今,您可以在您本人的開發(fā)設(shè)備上運(yùn)用您最喜歡的 Web 閱讀器訪問您的 Rails Comic Catalog 運(yùn)用程序了。只需訪問以下 URL。 HYPERLINK localhost:3
25、000/comics/ localhost:3000/comics/您的閱讀器將如圖 1 所示一樣顯示您的 Catalog 中的漫畫書列表。 圖 1:產(chǎn)品目錄列表 當(dāng)您運(yùn)用 scaffold 創(chuàng)建 Rails Web 運(yùn)用程序時(shí),它將自動(dòng)創(chuàng)建三個(gè) Web 組件,從而使您可以看到目的數(shù)據(jù)庫表中一切記錄的列表,并對(duì)表中的記錄進(jìn)展插入、修正和刪除的操作。圖 1 顯示了例如數(shù)據(jù)列表。 除了 Listing 視圖,還有詳細(xì)信息視圖。只需單擊恣意“Show鏈接即可查看專門顯示該特定記錄中數(shù)據(jù)的 Web 頁面。圖 2 是該詳細(xì)信息頁面的例如。 圖 2: 詳細(xì)信息頁面 您還可以在數(shù)據(jù)庫表中編輯任何記錄。單擊“Back鏈接,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度征收補(bǔ)償與安置補(bǔ)償協(xié)議實(shí)施指導(dǎo)方案4篇
- 二零二五年部隊(duì)食堂標(biāo)準(zhǔn)化菜品研發(fā)與供應(yīng)合同3篇
- 系統(tǒng)集成模型課程設(shè)計(jì)
- 二零二四年三方合同主體變更及項(xiàng)目驗(yàn)收標(biāo)準(zhǔn)調(diào)整協(xié)議3篇
- 二零二五年度股權(quán)贈(zèng)與與公司重組合同范本3篇
- 二零二四劇院門樓維修保養(yǎng)與應(yīng)急處理合同2篇
- 2025年度戶外運(yùn)動(dòng)場(chǎng)地承包管理合同范本4篇
- 2025年景觀綠化樹木批量銷售合同2篇
- 2025年版可再生能源并網(wǎng)發(fā)電合同參考樣本4篇
- 二零二五版建筑工程勞務(wù)分包合同工期延誤與索賠范本3篇
- 2024年??谑羞x調(diào)生考試(行政職業(yè)能力測(cè)驗(yàn))綜合能力測(cè)試題及答案1套
- 六年級(jí)數(shù)學(xué)質(zhì)量分析及改進(jìn)措施
- 一年級(jí)下冊(cè)數(shù)學(xué)口算題卡打印
- 2024年中科院心理咨詢師新教材各單元考試題庫大全-下(多選題部分)
- 真人cs基于信號(hào)發(fā)射的激光武器設(shè)計(jì)
- 【閱讀提升】部編版語文五年級(jí)下冊(cè)第三單元閱讀要素解析 類文閱讀課外閱讀過關(guān)(含答案)
- 四年級(jí)上冊(cè)遞等式計(jì)算練習(xí)200題及答案
- 法院后勤部門述職報(bào)告
- 2024年國信證券招聘筆試參考題庫附帶答案詳解
- 道醫(yī)館可行性報(bào)告
- 仙家送錢表文-文字打印版
評(píng)論
0/150
提交評(píng)論