今天用了一個(gè)多小時(shí)的時(shí)間學(xué)習(xí)anf的dal,感覺自己的對(duì)anf有了進(jìn)一步的了解,隨之也產(chǎn)生的疑問,在些點(diǎn)發(fā)表一點(diǎn)自己的體會(huì)。
using 本人很菜
(1)dal(數(shù)據(jù)層)類組成:
anf的數(shù)據(jù)層主要是forumsdataprovider(簡(jiǎn)稱:fdp)和sqldataprovider(簡(jiǎn)稱:sdp),以下的“fdp”及“sdp”指代上述名稱。
(2)dal(數(shù)據(jù)層)類關(guān)系:
forumsdataprovider和sqldataprovider這兩個(gè)class,“fdp”是個(gè)abstract class,“sdp”繼承“fdp”,“sdp”內(nèi)提供實(shí)現(xiàn)了“fdp”的所有abstract的type object 和 type method。
(3)dal(數(shù)據(jù)層)類職能:
“fdp”是base class,全部對(duì)數(shù)據(jù)庫(kù)的底層操作封裝在“sdp”內(nèi),底層通過idatareader訪問sp和tsql,基本上一個(gè)sp內(nèi)就封裝了tsql-siud,通過delete mark的方式刪除數(shù)據(jù),通過傳入的primary id判斷是update還是insert操作。
(4)dal(數(shù)據(jù)層)訪問及操作數(shù)據(jù)庫(kù)步驟:
當(dāng)某一個(gè)頁面要對(duì)數(shù)據(jù)進(jìn)行訪問時(shí),首先“sdp”通過查詢對(duì)像entityclass對(duì)應(yīng)的arraylist或是arraylist的封裝類,的instance(被api cache,本人認(rèn)為是anf提高數(shù)據(jù)庫(kù)讀取速度的主要手段)get方法,通過“反射方式”反射構(gòu)造-getconstructor“fdp”的abstract的method和object(實(shí)際執(zhí)行的還是“sdp”的方法),最后bind給repeater或datalist之類的對(duì)像,完成數(shù)據(jù)讀取。
本人水平很菜,不怕大家扔磚……
新聞熱點(diǎn)
疑難解答
圖片精選