首頁(yè) 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級(jí) | 職稱(chēng)英語(yǔ) | 商務(wù)英語(yǔ) | 公共英語(yǔ) | 托福 | 雅思 | 專(zhuān)四專(zhuān)八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語(yǔ) | 成人英語(yǔ)三級(jí) | 申碩英語(yǔ) | 攻碩英語(yǔ) | 職稱(chēng)日語(yǔ) | 日語(yǔ)學(xué)習(xí) | 法語(yǔ) | 德語(yǔ) | 韓語(yǔ)
計(jì)算機(jī)等級(jí)考試 | 軟件水平考試 | 職稱(chēng)計(jì)算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
華為認(rèn)證 | Java認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問(wèn) | 導(dǎo)游資格
報(bào)檢員 | 教師資格 | 社會(huì)工作者 | 外銷(xiāo)員 | 國(guó)際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價(jià)格鑒證師
人力資源 | 管理咨詢師考試 | 秘書(shū)資格 | 心理咨詢師考試 | 出版專(zhuān)業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網(wǎng)絡(luò)編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格考試會(huì)計(jì)證) | 經(jīng)濟(jì)師 | 會(huì)計(jì)職稱(chēng) | 注冊(cè)會(huì)計(jì)師 | 審計(jì)師 | 注冊(cè)稅務(wù)師
注冊(cè)資產(chǎn)評(píng)估師 | 高級(jí)會(huì)計(jì)師 | ACCA | 統(tǒng)計(jì)師 | 精算師 | 理財(cái)規(guī)劃師 | 國(guó)際內(nèi)審師
一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)工程師 | 造價(jià)員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項(xiàng)目管理師 | 土地登記代理人 | 環(huán)境影響評(píng)價(jià)師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價(jià)師 | 安全評(píng)價(jià)師 | 電氣工程師 | 注冊(cè)測(cè)繪師 | 注冊(cè)計(jì)量師
繽紛校園 | 實(shí)用文檔 | 英語(yǔ)學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲

2011軟件設(shè)計(jì)師知識(shí)點(diǎn):Java EE開(kāi)發(fā)四大常用框架

考試吧整理了2011軟件設(shè)計(jì)師知識(shí)點(diǎn):Java EE開(kāi)發(fā)四大常用框架,幫助考生梳理知識(shí)點(diǎn)。

  Hibernate的工作方式:

  Hibernate不會(huì)對(duì)您造成妨礙,也不會(huì)強(qiáng)迫您修改對(duì)象的行為方式。它們不需要實(shí)現(xiàn)任何不可思議的接口以便能夠持續(xù)存在。惟一需要做的就是創(chuàng)建一份 XML“映射文檔”,告訴Hibernate您希望能夠保存在數(shù)據(jù)庫(kù)中的類(lèi),以及它們?nèi)绾侮P(guān)聯(lián)到該數(shù)據(jù)庫(kù)中的表和列,然后就可以要求它以對(duì)象的形式獲取數(shù)據(jù),或者把對(duì)象保存為數(shù)據(jù)。與其他解決方案相比,它幾乎已經(jīng)很完美了。

  由于本文只是一篇介紹性的文章,所以不會(huì)引入構(gòu)建和使用Hibernate映射文檔的具體例子(我在《Hibernate: A Developer's Notebook》一書(shū)的頭幾章中已經(jīng)介紹了一個(gè)例子)。此外,在網(wǎng)上和Hibernate的在線文檔中,還可以找到一些不錯(cuò)的例子,請(qǐng)參見(jiàn)下面的“其他信息”部分。它實(shí)際上相當(dāng)直觀。應(yīng)用程序?qū)ο笾械膶傩砸砸环N簡(jiǎn)單而自然的方式與正確的數(shù)據(jù)庫(kù)結(jié)構(gòu)相關(guān)聯(lián)。

  運(yùn)行時(shí),Hibernate讀取映射文檔,然后動(dòng)態(tài)構(gòu)建Java類(lèi),以便管理數(shù)據(jù)庫(kù)與Java之間的轉(zhuǎn)換。在 Hibernate中有一個(gè)簡(jiǎn)單而直觀的API,用于對(duì)數(shù)據(jù)庫(kù)所表示的對(duì)象執(zhí)行查詢。要修改這些對(duì)象,(一般情況下)只需在程序中與它們進(jìn)行交互,然后告訴Hibernate保存修改即可。類(lèi)似地,創(chuàng)建新對(duì)象也很簡(jiǎn)單;只需以常規(guī)方式創(chuàng)建它們,然后告訴Hibernate有關(guān)它們的信息,這樣就能在數(shù)據(jù)庫(kù)中保存它們。

  Hibernate API學(xué)習(xí)起來(lái)很簡(jiǎn)單,而且它與程序流的交互相當(dāng)自然。在適當(dāng)?shù)奈恢谜{(diào)用它,就可以達(dá)成目的。它帶來(lái)了很多自動(dòng)化和代碼節(jié)省方面的好處,所以花一點(diǎn)時(shí)間學(xué)習(xí)它是值得的。而且還可以獲得另一個(gè)好處,即代碼不用關(guān)心要使用的數(shù)據(jù)庫(kù)種類(lèi)(否則的話甚至必須知道)。我所在的公司就曾有過(guò)在開(kāi)發(fā)過(guò)程后期被迫更換數(shù)據(jù)庫(kù)廠商的經(jīng)歷。這會(huì)造成巨大的災(zāi)難,但是借助于Hibernate,只需要簡(jiǎn)單地修改Hibernate配置文件即可。

  這里的討論假定您已經(jīng)通過(guò)創(chuàng)建Hibernate映射文檔,建立了一個(gè)關(guān)系數(shù)據(jù)庫(kù),并且擁有要映射的Java 類(lèi)。有一個(gè)Hibernate“工具集”可在編譯時(shí)使用,以支持不同的工作流。例如,如果您已經(jīng)擁有Java類(lèi)和映射文檔,Hibernate可以為您創(chuàng)建(或更新)必需的數(shù)據(jù)庫(kù)表;蛘,僅僅從映射文檔開(kāi)始,Hibernate也能夠生成數(shù)據(jù)類(lèi)。或者,它可以反向設(shè)計(jì)您的數(shù)據(jù)庫(kù)和類(lèi),從而擬定映射文檔。還有一些用于Eclipse的alpha 插件,它們可以在IDE中提供智能的編輯支持以及對(duì)這些工具的圖形訪問(wèn)。

  使用Hibernate的場(chǎng)合

  既然Hibernate看起來(lái)如此靈活好用,為什么還要使用其他的工具呢?下面有一些場(chǎng)景,可以幫助您做出判斷(或許通過(guò)提供一些比較和上下文,可以有助于鑒別非常適用Hibernate的場(chǎng)合)。

  如果應(yīng)用對(duì)于數(shù)據(jù)存儲(chǔ)的需要十分簡(jiǎn)單——例如,您只想管理一組用戶優(yōu)先選擇——您根本不需要數(shù)據(jù)庫(kù),更不用說(shuō)一個(gè)優(yōu)秀的對(duì)象-關(guān)系映射系統(tǒng)了(即使它也如Hibernate這般易于使用)!從Java 1.4開(kāi)始,有一個(gè)標(biāo)準(zhǔn)的Java Preferences API可以很好地發(fā)揮這個(gè)作用。

  對(duì)于熟悉使用關(guān)系數(shù)據(jù)庫(kù)和了解如何執(zhí)行完美的SQL查詢與企業(yè)數(shù)據(jù)庫(kù)交互的人來(lái)說(shuō),Hibernate似乎有些礙手礙腳,這就像帶有動(dòng)力和自動(dòng)排擋的快艇車(chē)會(huì)使注重性能的賽車(chē)駕駛員不耐煩一樣。如果您屬于這種人,如果您所在的項(xiàng)目團(tuán)隊(duì)擁有一個(gè)強(qiáng)大的DBA,或者有一些存儲(chǔ)過(guò)程要處理,您可能想研究一下iBATIS。Hibernate的創(chuàng)建者本身就把iBATIS當(dāng)作是另一種有趣的選擇。我對(duì)它很有興趣,因?yàn)槲覀冊(cè)鵀橐粋(gè)電子商務(wù)站點(diǎn)開(kāi)發(fā)了一個(gè)類(lèi)似的系統(tǒng)(其功能更為強(qiáng)大),而且從那時(shí)到現(xiàn)在,我們已經(jīng)在其他環(huán)境中使用過(guò)它,盡管在發(fā)現(xiàn)Hibernate之后,在新項(xiàng)目中我們通常更喜歡使用Hibernate。您可以認(rèn)為,以SQL為中心的解決方案(比如iBATIS)是“反向的”對(duì)象/關(guān)系映射工具,而 Hibernate是一個(gè)更為傳統(tǒng)的ORM。

  當(dāng)然,還有其他的外部原因會(huì)導(dǎo)致采用另外的方法。比如,在一個(gè)企業(yè)環(huán)境中,必須使用成熟的EJB架構(gòu)(或者其他的一些非普通對(duì)象映射系統(tǒng))?梢詾樘峁┳约旱臄(shù)據(jù)存儲(chǔ)工具的平臺(tái)量身定做代碼,比如Mac OS X's Core Data。使用的可能是像XML DTD這樣的存儲(chǔ)規(guī)范,而它根本不涉及關(guān)系數(shù)據(jù)庫(kù)。

  但是,如果您使用的是富對(duì)象模型,而且想要靈活、輕松且高效地保存它(無(wú)論您是否正要開(kāi)始或已經(jīng)決定使用關(guān)系數(shù)據(jù)庫(kù),只要這是一個(gè)選擇——而且存在可用的優(yōu)秀免費(fèi)數(shù)據(jù)庫(kù),比如MySQL,或可嵌入Java的HSQLDB,它就應(yīng)該始終是一個(gè)選擇),那么 Hibernate很可能就是您理想的選擇。您可能會(huì)驚訝于節(jié)省的時(shí)間之多,以及您將會(huì)多么地喜歡使用它。

  Swing

  圖形用戶接口(GUI)庫(kù)最初的設(shè)計(jì)目的是讓程序員構(gòu)建一個(gè)通用的GUI,使其在所有的平臺(tái)上都能夠正常的顯示。但是比較遺憾的是AWT產(chǎn)生的是在各系統(tǒng)看來(lái)都同樣欠佳的圖形用戶接口,JAVA1.2為老的java1.0 AWT添加了Java基礎(chǔ)類(lèi)(JFC),這是一個(gè)被稱(chēng)為“Swing”的GUI的一部分。Swing是第二代GUI開(kāi)發(fā)工具集,AWT采用了與特定平臺(tái)相關(guān)的實(shí)現(xiàn),而絕大部分Swing組件卻不是。Swing是構(gòu)筑在AWT上層的一組GUI組件的集合,為了保證可移植性,它完全用Java語(yǔ)言編寫(xiě),與AWT相比,Swing提供了更完整的組件,引入了許多新的特性和能力。Swing提供了更多的組件庫(kù),如:JTable,JTree,Jcombox。Swing也增強(qiáng)了AWT中組件的功能。正是因?yàn)镾wing具備了如此多的優(yōu)勢(shì)所以我們以后在開(kāi)發(fā)中都使用Swing。JComponent類(lèi)是Swing組件的基類(lèi),而JComponent繼承自Container類(lèi),因此,所有的Swing組件都是AWT的容器。Swing采用了MVC設(shè)計(jì)模式。

  相關(guān)推薦:

  2011年上半年軟考報(bào)名時(shí)間及方式匯總

  2010年下半年軟考成績(jī)查詢時(shí)間及方式匯總

  軟考軟件設(shè)計(jì)師歷年真題匯總(2007年-2010年)

  2011年軟件水平考試軟件設(shè)計(jì)師知識(shí)點(diǎn)總結(jié)

文章搜索
軟件水平考試欄目導(dǎo)航
版權(quán)聲明:如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。