<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      3,ORM組件XCode(簡(jiǎn)介)

          XCode是一個(gè)輕量級(jí)的ORM組件(對(duì)象與關(guān)系數(shù)據(jù)庫(kù)映射),提供以面向?qū)ο蟮姆绞讲僮鲾?shù)據(jù)庫(kù)的功能,能夠解決90%以上的數(shù)據(jù)庫(kù)操作場(chǎng)景。

          做為X系列組件最重要的一員,XCode秉承了簡(jiǎn)單實(shí)用的特點(diǎn),力求以最簡(jiǎn)單的做法,解決最普遍的問題。

          XCode最大的“缺點(diǎn)”就是“不支持”多表查詢!為何不支持要加雙引號(hào)?那是因?yàn)閄Code實(shí)際上支持多表查詢,只是用起來非常復(fù)雜,也不容易講清楚,會(huì)嚴(yán)重影響基本功能的學(xué)習(xí)理解,所以逢人問到,我都回答不支持!至于缺點(diǎn)二字加雙引號(hào),是因?yàn)閄Code有一整套替代方案,在絕大多數(shù)情況上,更優(yōu)于多表查詢。

       

          說XCode,就不得不提開發(fā)模式。每一個(gè)ORM組件,都是在某一種開發(fā)模式下,才能表現(xiàn)得最出色,XCode也不例外,我們稱之為XCode開發(fā)模式。當(dāng)然,每個(gè)人有自己的想法,有自己的開發(fā)習(xí)慣,可以嘗試根據(jù)自己的習(xí)慣去使用XCode,或者稍微修改自己的習(xí)慣,也許能有更精彩的用法。

       

          XCode專注于對(duì)象與關(guān)系數(shù)據(jù)庫(kù)映射,內(nèi)部明顯分為上下兩層:

          1,下層以DAL作為入口,IDatabase作為接口,各種數(shù)據(jù)庫(kù)實(shí)現(xiàn)一個(gè)類,實(shí)現(xiàn)該接口以支持多數(shù)據(jù)庫(kù)。DAL的兩大代表是Select(查詢SQL,返回DataSet)和Execute(執(zhí)行SQL,返回影響行數(shù)),并且以SQL為key,有一級(jí)緩存的支持。DAL還支持DbCommand的查詢和操作,不過就不受一級(jí)緩存的支持了。

      wps_clip_image-13847

      (DAL層結(jié)構(gòu)圖)

          2,上層以Entity作為泛型基類,所有實(shí)體類繼承于它。經(jīng)典的LoadData能夠把DataSet或者DataTable轉(zhuǎn)化為實(shí)體對(duì)象集合,每行記錄實(shí)例化一個(gè)實(shí)體對(duì)象,每個(gè)表字段的值賦值給實(shí)體對(duì)象的屬性。所以,完全可以以別的方式得到DataSet,然后利用LoadData將其轉(zhuǎn)為實(shí)體對(duì)象集合,而不一定需要DAL。可以得知,XCode支持視圖,復(fù)雜查詢或者多表查詢可以通過視圖變相解決,不過一般不推薦這么做。增刪改查等操作,XCode實(shí)際上通過實(shí)體類的元數(shù)據(jù)等信息,動(dòng)態(tài)拼接SQL,然后調(diào)用DAL層實(shí)現(xiàn)。

      wps_clip_image-11145

      (加載記錄集和數(shù)據(jù)表)

      wps_clip_image-5931

      (執(zhí)行插入操作,先拼接SQL,再執(zhí)行)

          此兩層結(jié)構(gòu)說明,實(shí)際上就是XCode核心原理,任何人都可以根據(jù)這個(gè)原理來實(shí)現(xiàn)自己的ORM。至于結(jié)果組件的優(yōu)劣程度,就看各自的功力以及對(duì)細(xì)節(jié)的考慮了。

       

          XCode的理念是以面向?qū)ο鬄楸荆杂诒緦?duì)象有關(guān)的東西都寫在本對(duì)象內(nèi)。所以XCode是一個(gè)充血模型

       

          所有查詢操作(例如Find、FindAll、FindCount)都是靜態(tài)方法,因?yàn)樗c具體對(duì)象無關(guān);而對(duì)象操作(例如Insert、Update、Save、Delete)都是成員方法,因?yàn)樗c具體對(duì)象密切相關(guān),代表著對(duì)具體對(duì)象的操作。這是XCode模型的基本思想,同樣,為實(shí)體類編寫業(yè)務(wù)代碼的時(shí)候,也應(yīng)該嚴(yán)格遵循該原則,哪些應(yīng)該是靜態(tài)的,哪些應(yīng)該是成員的,要嚴(yán)格分開。

          當(dāng)然,XCode實(shí)體類也支持貧血模型的一些操作方式,只不過操作類還是自身而已,比如Insert、Update、Save、Delete也有靜態(tài)方法,而參數(shù)就是實(shí)體類對(duì)象。

      XCode的模型,還有一個(gè)很重要的意義,就是完全滿足數(shù)據(jù)源組件ObjectDataSource的要求,使得XCode實(shí)體類可以直接充當(dāng)數(shù)據(jù)提供者。

      wps_clip_image-2511

      wps_clip_image-1271

      (成對(duì)出現(xiàn)的FindAll/FindCount,參數(shù)完全一摸一樣,正是ObjectDataSource的要求)

          本文僅是XCode的一個(gè)簡(jiǎn)介,說明XCode的結(jié)構(gòu)和開發(fā)模式,更詳細(xì)的說明請(qǐng)關(guān)注后文。

       

      大石頭

      新生命開發(fā)團(tuán)隊(duì)

      2010-08-20 00:36

      posted @ 2010-09-13 01:27  大石頭  閱讀(6492)  評(píng)論(2)    收藏  舉報(bào)
      主站蜘蛛池模板: 亚洲精品漫画一二三区 | 精品无码一区二区三区电影| 亚洲精品成人片在线观看精品字幕 | 狠狠躁夜夜躁无码中文字幕| 精品国产亚洲区久久露脸| 国产精品爽爽va在线观看网站| 吉林市| 国产稚嫩高中生呻吟激情在线视频 | 精品一区二区三区在线视频观看| 喜德县| 国产成人卡2卡3卡4乱码| 四虎国产精品永久入口| 国内精品久久久久精免费| 伊人色综合一区二区三区| 中文国产不卡一区二区| 久久影院午夜伦手机不四虎卡| 亚洲成av一区二区三区| 国产午夜福利精品视频| 国产一级黄色片在线观看| 欧美老熟妇乱子伦牲交视频| 在线精品自拍亚洲第一区| 日韩精品无码一区二区视频| 库车县| 搡老熟女老女人一区二区| 国产乱人激情H在线观看| 18禁无遮挡啪啪无码网站破解版| 粉嫩蜜臀av一区二区绯色| 2019nv天堂香蕉在线观看| 亚洲无人区一码二码三码| 欧洲一区二区中文字幕| 亚洲精品无码成人A片九色播放| 国产成人精品午夜二三区| 狠狠cao日日穞夜夜穞av| 久久三级国内外久久三级| 日韩 一区二区在线观看| 免费观看日本污污ww网站69| 无码日韩精品一区二区免费| 99RE6在线视频精品免费下载| 四虎国产精品永久在线下载| 清纯唯美人妻少妇第一页| 无码人妻黑人中文字幕|