freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

企業(yè)網(wǎng)站管理中英文翻譯資料-資料下載頁

2025-05-12 16:51本頁面

【導(dǎo)讀】versusSWT),ortemplateengines(JSPversusVelocity).Eachofthepeting. Debate

  

【正文】 所謂的對象 關(guān)系范例不匹配的問題和使用關(guān)系數(shù)據(jù)庫進(jìn)行面向?qū)ο蟮能浖_發(fā)中所遇到的一些一般性的問題。隨著這個問題列表的增長,我們需要一些工具與模式來最小化我們用在與持續(xù)性有關(guān)的代碼上的時間就變得很明顯了。在我們查看了可選的工具和持續(xù)性機(jī)制后,你會發(fā)現(xiàn) ORM在許多情況下可能是最好的解決方案。 我們關(guān)于 ORM的優(yōu)缺點(diǎn)的討論給了你一個完整的背景,在你為自己的項(xiàng)目選擇持續(xù)性解決方案時可以作出最好的決定。 什么是持續(xù)性? 幾乎所有的應(yīng)用都需要持續(xù)性數(shù)據(jù)。持續(xù)性在應(yīng)用開發(fā)中是一個基本的概念。如果當(dāng)主機(jī)停電時一個信息系統(tǒng)沒有保存用戶輸入的數(shù)據(jù),這樣的系統(tǒng)幾乎沒有實(shí)際的用途。當(dāng)我們討論 Java中的持續(xù)性時,我們通常是指使用 SQL存儲在關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)。我們從簡單地查看一下這項(xiàng)技術(shù)和我們?nèi)绾卧?Java中使用它開始。具有了這些知識之后,我們繼續(xù)關(guān)于持續(xù)性的討論以及如何在面向?qū)ο蟮膽?yīng)用中實(shí)現(xiàn)它。 關(guān)系數(shù)據(jù)庫 你, 像許多其他的開發(fā)者,很可能在使用一個關(guān)系數(shù)據(jù)庫進(jìn)行工作。實(shí)際上,我們中的大多數(shù)每天都在使用關(guān)系數(shù)據(jù)庫。關(guān)系技術(shù)是一個已知數(shù)。僅此一點(diǎn)就是許多組織選擇它的一個充分的理由。但僅僅這樣說就有點(diǎn)欠考慮了。關(guān)系數(shù)據(jù)庫如此不易改變不是因?yàn)榕既坏脑蚨且驗(yàn)樗鼈兡橇钊穗y以置信的靈活與健壯的數(shù)據(jù)管理方法。 關(guān)系數(shù)據(jù)庫管理系統(tǒng)既不特定于 Java,也不特定于特殊的應(yīng)用。關(guān)系技術(shù)提供了一種在不同的應(yīng)用或者相同應(yīng)用的不同技術(shù)(例如事務(wù)工具與報(bào)表工具)之間共享數(shù)據(jù)的方式。關(guān)系技術(shù)是多種不同的系統(tǒng)與技術(shù)平臺之間的一個共同特征。因此,關(guān) 系數(shù)據(jù)模型通常是業(yè)務(wù)實(shí)體共同的企業(yè)級表示。關(guān)系數(shù)據(jù)庫管理系統(tǒng)具有基于 SQL的應(yīng)用編程接口,因此我們稱今天的關(guān)系數(shù)據(jù)庫產(chǎn)品為 SQL數(shù)據(jù)庫管理系統(tǒng),或者當(dāng)我們討論特定系統(tǒng)時,稱之為 SQL數(shù)據(jù)庫。 理解 SQL 為了有效地使用 Hibernate,對關(guān)系模型和 SQL扎實(shí)的理解是前提條件。你需要用你的 SQL知識來調(diào)節(jié)你的 Hibernate應(yīng)用的性能。 Hibernate會自動化許多重復(fù)的編碼任務(wù),如果你想利用現(xiàn)代 SQL數(shù)據(jù)庫的全部能力 ,你的持續(xù)性技術(shù)的知識必須擴(kuò)充至超過 Hibernate本身。記住基本目標(biāo)是健壯地有效地管 理持續(xù)性數(shù)據(jù)。 讓我們回顧一些本書中用到的 SQL術(shù)語。你使用 SQL作為數(shù)據(jù)定義語言( DDL)通過 CREATE與 ALTER命令來創(chuàng)建數(shù)據(jù)庫模式。創(chuàng)建了表(索引,序列等等)之后,你又將 SQL作為數(shù)據(jù)處理語言( DML)來使用。使用 DML,你執(zhí)行 SQL操作來處理與取出數(shù)據(jù)。處理操作包括插入,更新和刪除。你使用約束,投射,和連接操作(包括笛卡爾積)執(zhí)行查詢來取出數(shù)據(jù)。為了有效地生成報(bào)表,你以任意的方式使用SQL來分組,排序和合計(jì)數(shù)據(jù)。你甚至可以相互嵌套 SQL命令,這項(xiàng)技術(shù)被稱作子查詢。你也許已經(jīng)使用了多年的 SQL并且非常熟悉用它編寫的基本操作和命令。盡管如此,我們的經(jīng)驗(yàn)還是告訴我們 SQL有時難于記憶并且有些術(shù)語有不同的用法。為了理解本書,我們不得不使用相同的術(shù)語與概念;因此,如果我們提到的任何術(shù)語是新出 現(xiàn)的或者是不清楚的。 為了進(jìn)行健全的 Java數(shù)據(jù)庫應(yīng)用開發(fā), SQL知識是強(qiáng)制的。如果你需要更多的資料,找一本 Dan Tow的優(yōu)秀著作《 SQL Tuning》。同時讀一下《 An Introduction to Database Systems》,學(xué)習(xí)一些(關(guān)系)數(shù)據(jù)庫系統(tǒng)的理論,概念和思想。關(guān)系數(shù)據(jù)庫是 ORM的一部分 ,當(dāng)然另一部分由你的Java應(yīng)用中的對象構(gòu)成,它們需要使用 SQL被持續(xù)化到數(shù)據(jù)庫中。 在 Java中使用 SQL 當(dāng)你在 Java應(yīng)用中使用 SQL工作時, Java代碼通過 Java數(shù)據(jù)庫連接( JDBC)執(zhí)行 SQL命令來操作數(shù)據(jù)庫。 SQL可能被手工編碼并嵌入到 Java代碼中,或者可能被匆忙地通過 Java代碼生成。你使用 JDBC API將變量綁定到查詢參數(shù)上,開始執(zhí)行查詢,在查詢結(jié)果表上滾動,從結(jié)果集中取出值,等等。這些都是底層的數(shù)據(jù)訪問任務(wù),作為應(yīng)用開發(fā)者,我們對需要這些數(shù)據(jù)訪問的業(yè)務(wù)問題更加感興趣。需要我們自己來關(guān) 心這些單調(diào)的機(jī)械的細(xì)節(jié),好像并不是確定無疑的。 我們真正想做的是能夠編寫保存和取出復(fù)雜對象(我們的類實(shí)例)的代碼 —從數(shù)據(jù)庫中取出或者保存到數(shù)據(jù)庫中,盡量為我們減少這些底層的苦差事。因?yàn)檫@些數(shù)據(jù)訪問任務(wù)通常都是非常單調(diào)的,我們不禁要問:關(guān)系數(shù)據(jù)模型特別是 SQL是面向?qū)ο蟮膽?yīng)用中持續(xù)性問題的正確選擇嗎?我們可以立即回答這個問題:是的!有許多原因使 SQL數(shù)據(jù)庫支配了計(jì)算行業(yè)。關(guān)系數(shù)據(jù)庫管理系統(tǒng)是唯一被證明了的數(shù)據(jù)管理技術(shù)并且?guī)缀踉谌魏?Java項(xiàng)目中都是一項(xiàng)需求。 然而,在過去的 15年里,開發(fā)者一直在討論范例不匹配 的問題。這種不匹配解釋了為什么每個企業(yè)項(xiàng)目都需要在持續(xù)性相關(guān)的問題上付出如此巨大的努力。這里所說的范例是指對象模型和關(guān)系模型,或者可能是面向?qū)ο缶幊膛c SQL。讓我們通過詢問在面向?qū)ο蟮膽?yīng)用開發(fā)環(huán)境中,持續(xù)性究竟意味著什么,來開始我們對不匹配問題的探究。首先,我們將本章開始部分聲明的對持續(xù)性過分簡單的定義擴(kuò)展到一個較寬的范圍,更成熟的理解包括維護(hù)與使用持續(xù)性數(shù)據(jù)。 面向?qū)ο髴?yīng)用中的持續(xù)性 在面向?qū)ο蟮膽?yīng)用中,持續(xù)性允許一個對象的壽命可以超過創(chuàng)建它的程序。這個對象的狀態(tài)可能被存儲到磁盤上,并且在將來的某一時刻相 同狀態(tài)的對象可以被重新創(chuàng)建。這樣的應(yīng)用不僅僅限于簡單的對象 —— 關(guān)聯(lián)對象的完整圖形也可以被持續(xù)化并且以后可以在新的進(jìn)程里被重新創(chuàng)建。大多數(shù)對象并不是持續(xù)性的;暫態(tài)對象只有有限的壽命,被實(shí)例化它的進(jìn)程的壽命所限定。幾乎所有的 Java應(yīng)用都在混合使用持續(xù)與暫態(tài)對象;因此,我們需要一個子系統(tǒng)來管理我們的持續(xù)性數(shù)據(jù)?,F(xiàn)代的關(guān)系數(shù)據(jù)庫為持續(xù)性數(shù)據(jù)提供了一種結(jié)構(gòu)化的表示方法,允許排序,檢索和合計(jì)數(shù)據(jù)。數(shù)據(jù)庫管理系統(tǒng)負(fù)責(zé)管理并發(fā)性和數(shù)據(jù)的完整性;它們負(fù)責(zé)在多個用戶和多個應(yīng)用之間共享數(shù)據(jù)。數(shù)據(jù)庫管理系統(tǒng)也提供了數(shù)據(jù)級別的安全 性。當(dāng)我們在本書中討論持續(xù)性時,我們考慮以下這些事情: ■ 存儲,組織與恢復(fù)結(jié)構(gòu)化數(shù)據(jù) ■ 并發(fā)性與數(shù)據(jù)完整性 ■ 數(shù)據(jù)共享 特別地,我們將在使用域模型的面向?qū)ο蟮膽?yīng)用環(huán)境中考慮這些問題。使用域模型的應(yīng)用并不直接使用業(yè)務(wù)實(shí)體的扁平表示進(jìn)行工作,這些應(yīng)用有它們自己的面向?qū)ο蟮臉I(yè)務(wù)實(shí)體模型。如果數(shù)據(jù)庫中有“項(xiàng)目”與“競價”表,則在這些Java應(yīng)用中會定義“項(xiàng)目”與“競價”類。 然后,業(yè)務(wù)邏輯并不直接在 SQL結(jié)果集的行與列上進(jìn)行工作,而是與面向?qū)ο蟮挠蚰P瓦M(jìn)行交互,域模型在運(yùn)行時表現(xiàn)為一個關(guān)聯(lián)對象的交互圖。業(yè)務(wù)邏 輯從不在數(shù)據(jù)庫中(作為 SQL存儲過程)執(zhí)行,而是被實(shí)現(xiàn)在 Java程序中。這就允許業(yè)務(wù)邏輯使用成熟的面向?qū)ο蟮母拍睿缋^承與多態(tài)。我們可以使用眾所周知的設(shè)計(jì)模式例如“策略”,“中介者”和“組合” ,所有這些模式都依賴于多態(tài)方法調(diào)用?,F(xiàn)在給你一個警告:并不是所有的 Java應(yīng)用都是按照這種方式設(shè)計(jì)的,并且也不打算是。對于簡單的應(yīng)用不使用域模型可能會更好。 SQL和 JDBC API可以完美地處理純扁平數(shù)據(jù),并且現(xiàn)在新的 JDBC結(jié)果集已經(jīng)使 CRUD操作變得更簡單了。使用持續(xù)性數(shù)據(jù)的扁平表示進(jìn)行工作可能更直接并且更容易 理解。 然而,對于含有復(fù)雜業(yè)務(wù)邏輯的應(yīng)用,域模型有助于有效地提高代碼的可重用性和可維護(hù)性。在本書中我們集中在使用域模型的應(yīng)用上,因?yàn)橥ǔ?Hibernate和 ORM總是與這種類型的應(yīng)用有關(guān)。如果我們再次考慮 SQL和關(guān)系數(shù)據(jù)庫,我們最終會發(fā)現(xiàn)這兩種范例的不匹配之處。 SQL操作例如投射與連接經(jīng)常會導(dǎo)致對結(jié)果數(shù)據(jù)的扁平表示。這與在 Java應(yīng)用中用來執(zhí)行業(yè)務(wù)邏輯的關(guān)聯(lián)對象的表示完全不同!這是根本不同的模型,而不僅僅是相同模型的不同的顯示方式。 帶著這些認(rèn)識,我們能夠開始看一下這些問題 —— 許多已經(jīng)很好理解的與沒有很好 理解的 —— 必須被合并使用這兩種數(shù)據(jù)表示的應(yīng)用所解決 —— 一個面向?qū)ο蟮挠蚰P团c一個持續(xù)性的關(guān)系模型。讓我們仔細(xì)地看一下。
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1