究竟什么是DAO?架構(gòu)師之路關(guān)注共 667字,需瀏覽 2分鐘 ·2021-02-09 04:48 新的嘗試,30s聊架構(gòu),雙擊愛(ài)心什么時(shí)候進(jìn)行DAO層的抽象?一個(gè)業(yè)務(wù)系統(tǒng)最初的后端結(jié)構(gòu)如上:(1)web-server層從db層獲取數(shù)據(jù)并進(jìn)行加工處理;(2)db層存儲(chǔ)數(shù)據(jù);此時(shí),web-server層如何獲取底層的數(shù)據(jù)呢?web-server層獲取數(shù)據(jù)的一段偽代碼如上,不用糾結(jié)代碼的細(xì)節(jié),也不用糾結(jié)不同編程語(yǔ)言與不同數(shù)據(jù)庫(kù)驅(qū)動(dòng)的差異,其獲取數(shù)據(jù)的過(guò)程大致為:(1)創(chuàng)建一個(gè)與數(shù)據(jù)庫(kù)的連接,初始化資源;(2)根據(jù)業(yè)務(wù)拼裝一個(gè)SQL語(yǔ)句;(3)通過(guò)連接執(zhí)行SQL語(yǔ)句,并獲得結(jié)果集;(4)通過(guò)游標(biāo)遍歷結(jié)果集,取出每行數(shù)據(jù),亦可從每行數(shù)據(jù)中取出屬性數(shù)據(jù);(5)關(guān)閉數(shù)據(jù)庫(kù)連接,回收資源;隨著業(yè)務(wù)越來(lái)越復(fù)雜,每次都這么獲取數(shù)據(jù),非常低效,有大量冗余、重復(fù)、每次必寫(xiě)的代碼。如何讓數(shù)據(jù)的獲取更加高效快捷呢?可以通過(guò)技術(shù)手段實(shí)現(xiàn):(1)表與類的映射;(2)屬性與成員的映射;(3)SQL與函數(shù)的映射;絕大部分公司正在用ORM,DAO等技術(shù),進(jìn)行分層抽象,提高數(shù)據(jù)獲取的效率,屏蔽連接,游標(biāo),結(jié)果集這些復(fù)雜性。這就是DAO的由來(lái)。一個(gè)新的嘗試,看30s-60s能不能講透一個(gè)技術(shù)點(diǎn)。掃碼關(guān)注“架構(gòu)師之路”視頻號(hào)如果大家喜歡,我盡量堅(jiān)持下去。希望大家有收獲,你的支持是我前進(jìn)的動(dòng)力。DAO,講透了嗎? 瀏覽 126點(diǎn)贊 評(píng)論 收藏 分享 手機(jī)掃一掃分享分享 舉報(bào) 評(píng)論圖片表情視頻評(píng)價(jià)全部評(píng)論推薦 降妖除魔 | 究竟什么是阻塞?低并發(fā)編程0究竟什么是反向代理?架構(gòu)師之路0什么是民主的Dao組織?IPFS原力區(qū)0究竟什么是廣義的CURD?架構(gòu)師之路0究竟什么是ALL in one架構(gòu)?架構(gòu)師之路0究竟什么是圖數(shù)據(jù)庫(kù),它有哪些應(yīng)用場(chǎng)景?Java技術(shù)棧0什么是垃圾,什么是愛(ài)什么是垃圾,什么是愛(ài)0什么是心理學(xué) : 什么是心理學(xué) 什么是心理學(xué) : 什么是心理學(xué) 0什么是垃圾,什么是愛(ài)這是一部風(fēng)格獨(dú)特的愛(ài)情小說(shuō),講述了主人公小丁一段撲朔迷離的情感經(jīng)歷。小丁一直試圖努力找到生活的重心,什么是垃圾,什么是愛(ài)什么是垃圾,什么是愛(ài)0點(diǎn)贊 評(píng)論 收藏 分享 手機(jī)掃一掃分享分享 舉報(bào)