第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

DAO和存儲庫模式之間有什么區(qū)別?

DAO和存儲庫模式之間有什么區(qū)別?

數(shù)據(jù)訪問對象(DAO)和存儲庫模式之間有什么區(qū)別?我正在使用Enterprise Java Beans(EJB3),Hibernate ORM作為基礎(chǔ)結(jié)構(gòu)以及域驅(qū)動設(shè)計(jì)(DDD)和測試驅(qū)動開發(fā)(TDD)作為設(shè)計(jì)技術(shù)來開發(fā)應(yīng)用程序。
查看完整描述

3 回答

?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

好的,我認(rèn)為我可以更好地解釋我在評論中提出的內(nèi)容:)。因此,盡管DAO比存儲庫更靈活,但基本上可以將兩者視為相同。如果要同時(shí)使用兩者,則可以在DAO-s中使用存儲庫。我將在下面解釋它們中的每一個(gè):


儲存庫:

它是特定類型對象的存儲庫-它允許您搜索特定類型的對象并將其存儲。通常,它只會處理一種類型的對象。例如AppleRepository,您可以選擇AppleRepository.findAll(criteria)或AppleRepository.save(juicyApple)。請注意,存儲庫使用的是域模型術(shù)語(不是數(shù)據(jù)庫術(shù)語-與數(shù)據(jù)在任何地方的持久性無關(guān))。


存儲庫很可能會將所有數(shù)據(jù)存儲在同一張表中,而模式則不需要這樣做。盡管它僅處理一種類型的數(shù)據(jù),但使它在邏輯上連接到一個(gè)主表(如果用于數(shù)據(jù)庫持久性)。


DAO-數(shù)據(jù)訪問對象(換句話說-用于訪問數(shù)據(jù)的對象)

DAO是為您定位數(shù)據(jù)的類(主要是查找程序,但通常也用于存儲數(shù)據(jù))。該模式不限制您存儲相同類型的數(shù)據(jù),因此您可以輕松地?fù)碛幸粋€(gè)DAO,用于定位/存儲相關(guān)對象。


例如,您可以輕松地使用UserDao公開諸如


Collection<Permission> findPermissionsForUser(String userId)

User findUser(String userId)

Collection<User> findUsersForPermission(Permission permission)

所有這些都與用戶(和安全性)相關(guān),并且可以在同一DAO下指定。對于存儲庫,情況并非如此。


最后

請注意,這兩種模式實(shí)際上含義相同(它們存儲數(shù)據(jù)并抽象化對數(shù)據(jù)的訪問,并且都表示為更接近域模型,并且?guī)缀醪话魏螖?shù)據(jù)庫引用),但是它們的使用方式可能略有不同,因?yàn)镈AO稍微靈活/泛型,而存儲庫則更具體和僅對類型進(jìn)行限制。


查看完整回答
反對 回復(fù) 2019-12-07
  • 3 回答
  • 0 關(guān)注
  • 803 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號