亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

面向 Java 開發人員的 Grails on Oracle

系統 1880 0
了解如何在 Oracle 數據庫 XE 上快速構建一個 Grails 應用程序,然后將其部署到 Oracle 應用服務器 10 g

2006 年 5 月發表

您可能已經注意到,Oracle 最近發表了一篇由 Richard Monson-Haefel 撰寫的有關 Oracle 上的 Ruby on Rails 的文章。這篇文章介紹了 Ruby on Rails 框架以及如何使用它訪問 Oracle 數據庫(確切地說是 Oracle 數據庫 10g 快捷版 (XE))。

如果您并不熟悉 Ruby on Rails,那么切記它與 Java 沒有任何關系,它是一個基于 Ruby 的框架。Ruby on Rails 確實很吸引人、功能強大以及……但作為 Java 開發人員,我希望使用 Java(或等效語言)執行相同操作,從而利用我在 J2EE 中的投資。我還希望能夠部署和管理使用 Oracle Enterprise Manager Application Server Control 等工具以這種方式開發的應用程序。

一種新框架的開發中已經利用了 Ruby on Rails 所遵循的“按照慣例進行編碼”范例:Grails。Grails 將 Groovy 用作基礎語言,因此它在 JVM 上運行并可以利用任何現有的 Java API。

如果您是 Java 開發人員,便會發現使用此框架加快 Web 應用程序的開發非常有意義。如果您不是 Java 開發人員但需要更快速地開發和部署 Web 應用程序,那么 Grails 也是一個很棒的工具。

在本文中,我將使用 Richard 在他撰寫文章時使用的同一應用程序/數據庫模式來開發我的第一個 Grails 應用程序。密切關注!

什么是 Groovy?什么是 Grails?

Groovy 是一種利用其他語言(如 Ruby、Jython 和 Smalltalk)中的特性的動態語言。Groovy 在 Java VM 上運行,并使任何現有的 Java 對象(以及所有 API)可用于 Groovy。Groovy 當前遵循 JSR-241 中的標準;您可以在 Groovy 網站 及其項目主管 (Guillaume Laforge) 的 網志 中了解有關該語言的詳細信息。

Grails 之于 Groovy 相當于 Ruby on Rails 之于 Ruby。(該名稱最初為“Groovy On Rails” 現在已改為“Grails”以避免混淆/競爭。)與 Ruby on Rails 一樣,Grails 用于創建 CRUD 創建、讀取、更新、刪除 )Web 應用程序。您可以在 Grails 網站 及其項目主管 (Graeme Rocher) 的 網志 中了解有關 Grail 的詳細信息。

下面,我們將深入了解一下該示例應用程序。

示例:產品目錄第 1 步:設置 Oracle 數據庫

如果您尚未設置 Richard 文章中的模式和表,則只需創建下列對象:

CREATE TABLE comics (
id NUMBER(10) NOT NULL,
title VARCHAR2(60),
issue NUMBER(4),
publisher VARCHAR2(60),
PRIMARY KEY (id)
);
CREATE SEQUENCE comics_seq;

我根據該文章在 ruby 模式中創建了該表。

第 2 步:安裝 Grails

Grails 安裝非常簡單, 安裝指南 中有述。基本步驟:

  • 下載二進制文件(我使用了 Grails 0.2
  • 設置不同的環境變量(GRAILS_HOME、JAVA_HOME、PATH),我使用了 Java 5。

完成!

第 3 步:創建 Web 應用程序

現在您已經安裝了本產品,下一步是創建應用程序本身。

創建應用程序 。create-app 命令使用模板(利用占位府表示應用程序的不同組件,如配置、MVC、庫等)創建了完整的項目。在命令行界面中輸入以下命令:

> grails create-app
....
.....
create-app:
[input] Enter application name:
comics_catalog
.....

您將看到,Grails 頻繁使用 Ant。create-app 命令將請求您輸入應用程序名稱;例如,輸入 comics_catalog。

創建的應用程序包含一個目錄列表,從而使您可以使用 Groovy、Grails 以及其他 Web 組件開始構建該應用程序。

添加業務邏輯和模型:域類 。Grails 和 Ruby on Rails 之間的最大差別之一是,使用前者,應用程序開發的主要組件不是表,而是 域類 。域類是業務應用程序的核心,它包含應用程序的狀態和行為。

因此,下一步是為 comics 創建一個域類。為此,您只需轉到項目的主目錄(例如,cd comics_catalog)并運行 create-domain-class。

> cd comics_catalog
> grails create-domain-class
....
create-domain-class:
[input] Enter domain class name:
comics
....

當命令請求您輸入類名時,請輸入“comics”。Grails 使用的命名慣例與 Ruby on Rails 的不同,因此,您需要使用同一名稱來命名類和要在其上映射對象的表。持久性層使用 GROM(Grails 對象關系映射)創建,后者利用了 JBoss Hibernate。

:在本示例中,我們利用了一個現有的數據庫對象并基于它來創建域類。Grails 通常使用另一種方法(即所有內容由應用程序驅動)— 您首先創建域類,然后 Grails 將創建其他數據庫對象。

Comics 類不包含任何有關映射本身的信息,因此您必須在該域類中創建不同的屬性。您將在域類中開始使用 Groovy。域類位于以下位置:

./comics_catalog/grails-app/domain/Comics.groovy

請注意,默認情況下 Grails 使用兩個屬性創建該類:id 和 version。將它們保存到適當的位置,并添加標題、期號和出版商。

class Comics {
@Property Long id
@Property Long version

// new properties for the Comics class
@Property String title
@Property Long issue
@Property String publisher

String toString() { "${this.class.name} :$id" }
}

現在,您已經設置了所有內容并準備運行 magic 命令,該命令將創建不同的屏幕和流。

從 domain 類中創建不同的屏幕 。您現在可以運行 generate-all 命令來創建所有不同的屏幕。

> grails generate-all
....
input-domain-class:
[input] Enter domain class name:
comics
....

該命令將創建不同的視圖和控制器;您可以查看各個目錄:

./comics_catalog/grails-app/controllers
./comics_catalog/grails-app/views

配置數據庫訪問 。接下來,您必須將該應用程序配置為使用 Oracle 數據庫和模式。Grails 對數據源使用一個配置文件:

./comics_catalog/grails-app/conf/ApplicationDataSource.groovy

編輯該文件以連接到 Oracle 數據庫。

class ApplicationDataSource {
@Property boolean pooled = true
@Property String dbCreate = "update" // one of 'create', 'create-drop','update'
@Property String url = "jdbc:oracle:thin:@localhost:1521:XE"
@Property String driverClassName = "oracle.jdbc.OracleDriver"
@Property String username = "ruby"
@Property String password = "ruby"
}

此處沒有任何特殊內容,只有 URL、DriverClassName、username 和 password 等屬性。一個值得注意的屬性是 dbCreate,您可以使用它在模式上配置行為,以創建(或不創建)對象。本示例中存在表,因此需要重用對象 — 但首先您需要確認已經擁有所有必需對象(以及列),因此請選擇更新。

下一個要執行的操作是將 Oracle JDBC 驅動程序添加到該應用程序以使其可用。為此,您只需將 JDBC 驅動程序復制到應用程序的 lib 目錄中。在本示例中,我使用的是 Oracle 數據庫 XE,因此我將文件從以下位置:

ORACLE_XE_HOME/app/oracle/product/10.2.0/server/jdbc/lib/ojdbc14.jar

復制到

./comics_catalog/lib/

第 4 步:運行應用程序

Grails 支持在獨立模式下運行應用程序 (run-app)。該命令在部署應用程序后啟動 Web 容器(基于 Jetty)。

> grails run-app

:Jetty 將在端口 8080 上啟動;要在其他端口(如 9090)上啟動,請使用:

grails -Dserver.port=9090 run-app

您現在可以使用以下 URL 訪問該應用程序:

http://localhost:8080/comics_catalog/comics/

您的瀏覽器將顯示 Comics 表中的 comics 列表。


可以通過單擊 New Comics 選項卡創建一個新條目,并通過單擊 Show 鏈接查看/編輯/刪除現有記錄。

如您所見,創建應用程序其實非常簡單。下一步是將應用程序部署到應用服務器。

第 5 步:部署應用程序

Grails 提供了一個用于將應用程序打包為要準備部署的 WAR 的命令,因此在項目的根目錄中,您可以運行以下命令:

> grails war

運行該命令時,您使用位于項目根目錄中的應用程序名稱(在本示例中為 comics_catalog.war)結束 WAR。

如果查看此 WAR,則將看到它非常大(超過 10MB),這是因為所有庫均包含在該 Web 應用程序的 Lib 目錄中。您可以在應用程序的 ./tmp (./comics_catalog/tmp/war) 目錄中看到 WAR 的確切結構。

您可以將應用程序按原樣部署到 Oracle 應用服務器 10 g ,但要避免類加載程序出現問題,應將該 Web 應用程序配置為先加載本地類。您可以在部署過程中使用類加載程序配置屏幕執行該操作:

還可以將此配置保存在部署計劃中以方便稍后進行部署。

完成部署后,您可以使用 Oracle 應用服務器主機和端口(如下所示)訪問該應用程序:

http://localhost:8888/comics_catalog/comics/list

您現在可以像管理和監視任何其他部署到 Oracle 應用程序 10g 的 J2EE 應用程序那樣來管理和監視該應用程序。

請注意,其中有一些其他部署選項:

  • 我本人不喜歡將所有 JAR 文件都包含在 WAR 文件中,因此您可以改用 Oracle 應用服務器共享庫上載和配置所有 JAR 來創建 Grails 庫,而打包 WAR 時則將所有這些庫排除在外。
  • 您還可以將 Hibernate/Spring 配置為使用標準定義數據源并使用 JNDI 名稱查找連接。

結論

Grails 和 Ruby on Rails 確實都是很有吸引力的框架,它們使開發人員可以快速創建訪問關系數據庫(尤其是 Oracle 數據庫)的 Web 應用程序。

Grails 剛推出不久(版本 0.2),但文檔卻很詳細和完善。歡迎所有有興趣的開發人員使用該框架,并向開發小組提供反饋。


Tug Grall 是 Oracle Application Server Containers for J2EE 小組的產品經理。

面向 Java 開發人員的 Grails on Oracle


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 色综合色综合色综合 | 亚洲精品图区 | 久久精品片 | 全黄大全大色全免费大片 | 国产极品嫩模在线观看91精品 | 久久久久中文字幕 | 日韩专区第一页 | 青青青国产在线手机免费观看 | 亚洲欧美色综合大色 | 久久国产免费观看精品1 | 中文字幕1区 | 国产一区亚洲一区 | 成 人 黄 色 | 波多野结衣久久高清免费 | 欧美日韩一区二区高清视 | 亚洲日本欧美产综合在线 | 久久这里只精品热免费99 | 99ri国产| 久久久久久久国产精品 | 99久久免费国产精品热 | 国产欧美在线视频免费 | 一本久道久综合久久鬼色 | 亚洲五月婷婷 | 看全色黄大色大片免费久黄久 | 亚洲欧美乱综合图片区小说区 | 免费爱爱片 | 一本一本久久a久久精品综合 | 97影院理论午夜论不卡 | 亚洲国产精品激情在线观看 | 夜夜爽夜夜 | 免费四影虎ww4hu10 | 在线观看国产一区二区三区99 | 日韩免费不卡视频 | 四虎影在永久地址在线观看 | 最新国产网站 | 日韩欧美高清在线观看 | 狠狠色噜噜狠狠狠狠888奇米 | 久久99精品久久久久久噜噜 | 国产自产拍精品视频免费看 | 青青在线精品视频 | 不卡无毒免费毛片视频观看 |