摘要:使用標(biāo)準(zhǔn)的持久性的一個(gè)優(yōu)點(diǎn)是它允許項(xiàng)目作出晚部署項(xiàng)目數(shù)據(jù)庫(kù)和持久性提供程序的決定。映射通常是需要聲明的,表示領(lǐng)域?qū)ο竽P团c關(guān)系模式模型之間關(guān)聯(lián)的映射在應(yīng)用程序運(yùn)行之前已經(jīng)定義。
O/RM的架構(gòu)
從應(yīng)用程序的視角看,O/RM有兩個(gè)主要部分:持久性API和領(lǐng)域類。在Java中,API通常是Java社區(qū)流程的標(biāo)準(zhǔn)之一 ---Java持久性API,企業(yè)JavaBeans或Java數(shù)據(jù)對(duì)象——或尚未成為標(biāo)準(zhǔn)的流行API,例如TopLink或Hibernate。?
使用標(biāo)準(zhǔn)的持久性API的一個(gè)優(yōu)點(diǎn)是它允許項(xiàng)目作出晚部署項(xiàng)目數(shù)據(jù)庫(kù)和持久性提供程序的決定。在項(xiàng)目開始時(shí)往往持久性提供程序所需要的功能并不明顯,因此在許多項(xiàng)目中,允許作出晚部署的決定可以是一個(gè)選擇使用它的重要的因素。
持久性API允許應(yīng)用程序的程序員對(duì)數(shù)據(jù)庫(kù)執(zhí)行所有標(biāo)準(zhǔn)的CRUD(創(chuàng)建,檢索,更新,刪除)操作。由于應(yīng)用程序的程序員不直接訪問數(shù)據(jù)庫(kù)中的行和列,一些速記符號(hào)會(huì)描述這些行為。例如,“持久化一個(gè)已被映射的領(lǐng)域類的實(shí)例”是“在數(shù)據(jù)庫(kù)中創(chuàng)建一行或多行與映射到的領(lǐng)域類的實(shí)例中數(shù)據(jù)完全一致的記錄。”同樣,“刪除一個(gè)領(lǐng)域類的實(shí)例”是指“刪除數(shù)據(jù)庫(kù)中與此領(lǐng)域類的實(shí)例完全對(duì)應(yīng)的一行或多行記錄。”
API包含持久化(映射后的領(lǐng)域類的)實(shí)例的方法,能夠通過主要識(shí)別碼來檢索領(lǐng)域類的一個(gè)實(shí)例,能夠根據(jù)領(lǐng)域類的值構(gòu)建一個(gè)查詢表達(dá)式來查找領(lǐng)域類及子類的所有實(shí)例,API還能夠從數(shù)據(jù)庫(kù)中刪除領(lǐng)域類的一個(gè)實(shí)例。并且更新實(shí)例操作是在一個(gè)事務(wù)上下文中完成的,先檢索一個(gè)領(lǐng)域類的一個(gè)實(shí)例,然后使用領(lǐng)域方法來修改此實(shí)例的值。
領(lǐng)域類以應(yīng)用程序的視角表示存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù),它通常是通過手工或使用工具從數(shù)據(jù)庫(kù)架構(gòu)生成。映射通常是需要聲明的,表示領(lǐng)域?qū)ο竽P团c關(guān)系模式模型之間關(guān)聯(lián)的映射在應(yīng)用程序運(yùn)行之前已經(jīng)定義。既然領(lǐng)域類不必包含特定的持久性的行為,這些類通常被稱為POJO(普通舊式Java對(duì)象)。
缺少持久性代碼的情況下,允許持久化類的操作不依賴于持久性方面。因此,可以無需訪問數(shù)據(jù)庫(kù)或持久性環(huán)境來測(cè)試許多領(lǐng)域類的行為。這種編程風(fēng)格鼓勵(lì)關(guān)注點(diǎn)分離和封裝。
許多表直接映射到領(lǐng)域類,如Employee, Department, Customer, Order, LineItem, Contract,Claim, Product,等等。這些表中的行映射到了領(lǐng)域類的實(shí)例。表中的列映射到了領(lǐng)域類的字段。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/17433.html
摘要:使用標(biāo)準(zhǔn)的持久性的一個(gè)優(yōu)點(diǎn)是它允許項(xiàng)目作出晚部署項(xiàng)目數(shù)據(jù)庫(kù)和持久性提供程序的決定。映射通常是需要聲明的,表示領(lǐng)域?qū)ο竽P团c關(guān)系模式模型之間關(guān)聯(lián)的映射在應(yīng)用程序運(yùn)行之前已經(jīng)定義。 O/RM的架構(gòu) 從應(yīng)用程序的視角看,O/RM有兩個(gè)主要部分:持久性API和領(lǐng)域類。在Java中,API通常是Java社區(qū)流程的標(biāo)準(zhǔn)之一 ---Java持久性API,企業(yè)JavaBeans或Java數(shù)據(jù)對(duì)象...
摘要:關(guān)鍵字對(duì)象關(guān)系映射現(xiàn)代的應(yīng)用程序常常是使用兩種截然不同的技術(shù)構(gòu)建而成業(yè)務(wù)邏輯部分使用面向?qū)ο缶幊蹋瑪?shù)據(jù)存儲(chǔ)使用關(guān)系型數(shù)據(jù)庫(kù)。對(duì)象關(guān)系映射則是兩者之間的橋梁,它允許應(yīng)用程序以面向?qū)ο蟮姆绞皆L問關(guān)系數(shù)據(jù)。 O/RM技術(shù)可以簡(jiǎn)化數(shù)據(jù)訪問,但也需要注意到引入這個(gè)新的抽象層來的挑戰(zhàn)。 關(guān)鍵字:對(duì)象-關(guān)系映射 現(xiàn)代的應(yīng)用程序常常是使用兩種截然不同的技術(shù)構(gòu)建而成:業(yè)務(wù)邏輯部分使用面向?qū)ο缶幊?..
閱讀 1856·2023-04-25 14:28
閱讀 1892·2021-11-19 09:40
閱讀 2795·2021-11-17 09:33
閱讀 1385·2021-11-02 14:48
閱讀 1710·2019-08-29 16:36
閱讀 3333·2019-08-29 16:09
閱讀 2917·2019-08-29 14:17
閱讀 2378·2019-08-29 14:07