<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

    菜鳥也能飛:SQL數(shù)據(jù)庫實戰(zhàn)專業(yè)教程(三)

    七、詳細(xì)設(shè)計

      詳細(xì)設(shè)計還得從數(shù)據(jù)庫開始。作為專業(yè)菜鳥,我們要把所有的SQL語句都放在存儲過程當(dāng)中,不要放在程序里。這樣做的好處是:容易修改、維護,執(zhí)行速度快、減少數(shù)據(jù)傳輸量。存儲過程可以簡單的理解為在SQL服務(wù)器上創(chuàng)建小函數(shù),它們有名字、參數(shù),通過調(diào)用這些小函數(shù),我們可以完成對表的增、刪、查、改操作,相當(dāng)于把SQL語句放在了服務(wù)器上,并且是經(jīng)過編譯的,執(zhí)行速度快。在程序中,我們不必再寫復(fù)雜的SQL語句,直接寫存儲過程名稱就可以了。

      具體如何使用存儲過程,可以參考這篇博文:http://www.51testing.com/html/60/n-814760.html

      一定要仔細(xì)研究上邊那篇文章,因為這是數(shù)據(jù)庫使用的經(jīng)典例子,把他搞懂了使用數(shù)據(jù)就沒什么問題了,我就偷個懶,不在重復(fù)寫啦。

      如果遇到一些問題,或許這篇文章會幫你:http://www.51testing.com/html/59/n-814759.html

      另外,可以看出,本教程的例子,班級表依賴年級表,學(xué)生表依賴班級表,所以在刪除記錄時,必須級聯(lián)刪除,級聯(lián)刪除可以在程序中完成,但我還是比較喜歡放在SQL觸發(fā)器中。觸發(fā)器的使用方法和存儲過程大同小異,在這就不贅述了,可以google。

      詳細(xì)設(shè)計還是要用到UML圖,這回用的一般是時序圖和流程圖,其他的雖然重要,但是比較少用,具體的還是google。

      很遺憾的告訴大家,教程到此就結(jié)束了,細(xì)節(jié)上遠(yuǎn)遠(yuǎn)沒有結(jié)束,存儲過程具體代碼、各層的代碼都沒有寫,UML的圖還有很多沒畫,但那些都是細(xì)節(jié)知識,本教程的目的是宏觀指導(dǎo),本小菜也需要繼續(xù)學(xué)習(xí),時間非常有限,所以只能寫這么多了。

      剩下的基本上都是寫代碼,我寫出來也沒啥意思,開發(fā)一個項目,基本的流程都在這呢,我主要不是教大家寫代碼,而不是告訴大家一個項目的流程,體會一個稍微大點的程序是怎么設(shè)計出來的,分享一下我自己的經(jīng)驗。跟著這個教程走,就是再菜,也是專業(yè)菜鳥!

      教程中涉及大量知識點,都需要大家耐心的去查閱資料,不怕不會,就怕不知道,剛開始會用就可以了,隨著學(xué)習(xí)的深入,再去搞懂細(xì)節(jié)原理。我學(xué)這些東西也不是一天兩天就學(xué)成的,是大約一年半的積累,希望大家能靜下心來,踏實學(xué)習(xí)。

      最后,恭祝大家都能成為IT界的精英!

    相關(guān)鏈接:

    菜鳥也能飛:SQL數(shù)據(jù)庫實戰(zhàn)專業(yè)教程(一)

    菜鳥也能飛:SQL數(shù)據(jù)庫實戰(zhàn)專業(yè)教程(二)SQLHelper包:

      DAL包:

      BLL包:

      UI包:

    六、概要設(shè)計

      數(shù)據(jù)庫分析完了,基礎(chǔ)已經(jīng)搞定,接下來就是對程序的初步設(shè)計。如何設(shè)計呢?如果是小程序,用腦子想想,也就算設(shè)計完了,但是如果是稍微復(fù)雜點的系統(tǒng),恐怕就不行了。概要設(shè)計還是要借助于UML圖,現(xiàn)在你知道它有多重要了吧?我們先來設(shè)計程序的大致結(jié)構(gòu),可以用UML的包圖。作為專業(yè)水準(zhǔn)的菜鳥,我們要用三層架構(gòu)來設(shè)計程序。所謂三層架構(gòu),就是把程序分為基本的三層,分別為:UI層(用戶界面層)、BLL層(業(yè)務(wù)邏輯層)、DAL層(數(shù)據(jù)訪問層)。把程序分成三層,好處不言而喻,從此你就再也見不到所有東西都在一個窗體里混亂的情形,如果什么地方需要修改,再也不用去改動整個工程。每一層都有各自的功能,從UI層到DAL層,它們是向下依賴的。其中,UI層只負(fù)責(zé)顯示界面,不應(yīng)該有邏輯(有效性驗證的邏輯還是可以有的),所有的功能都是通過調(diào)用BLL層完成;BLL層負(fù)責(zé)程序的所有邏輯組織,它通過調(diào)用DAL層完成復(fù)雜的操作,然后提供一個簡潔的接口讓UI層調(diào)用,相當(dāng)于一個大外觀層,BLL層的類,可以按照窗體寫,也就是說每一個窗體對應(yīng)一個BLL層的類,類的各種方法完成窗體的所有功能;DAL層負(fù)責(zé)訪問數(shù)據(jù)庫,數(shù)據(jù)庫中每一個表,在DAL層中都有一個與之對應(yīng)的操作類,通過該操作類,可以實現(xiàn)對對應(yīng)表的一切操作。前邊提到的實體類,就是為三層架構(gòu)服務(wù)的,三層之間一般都是通過實體類傳遞數(shù)據(jù),這樣簡潔、方便,實體類就相當(dāng)于一個容器。注意,還有一個層,也可以不單獨作為一個層的DBHelper,這個部分負(fù)責(zé)最低級的與數(shù)據(jù)庫交互代碼,比如連接數(shù)據(jù)庫、插入數(shù)據(jù)、查詢數(shù)據(jù)等等,把這些最基本的代碼提煉到一個單獨的層中有利于代碼的復(fù)用,使程序更加精煉。欲知其他知識,請輕點google,我說到此為止。獻上一張三層架構(gòu)的示意圖:

      再來一個數(shù)據(jù)庫、DAL操作類、實體類的關(guān)系,這個有點亂,剛開始不好理解,多想想就知道啦:

      有了上邊的分析,我們就可以用Rational Rose畫程序包圖了,提一個小技巧,Rose的包理論上應(yīng)該在包圖里畫,但是那樣沒法畫類,所以還是建議在類圖里畫包,用包把類圖分成幾個大部分,然后在每個部分里畫特定的類,這樣雙擊包直接就可以看到該包中的類了。根據(jù)三層架構(gòu),我們可以畫出下邊的包圖:

      整體架構(gòu)就是這樣了,接下來就搞定每個包里都有什么類。

    posted on 2012-06-05 10:54 順其自然EVO 閱讀(203) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

    <2012年6月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产成人免费AV在线播放| 性感美女视频在线观看免费精品| 亚洲精品国产福利片| 免费无码成人AV片在线在线播放| 人妻免费久久久久久久了| 久久久久亚洲AV片无码| 免费电影在线观看网站| 久久久精品视频免费观看| 亚洲一区二区三区无码国产| 亚洲av再在线观看| 免费在线观看h片| 成人片黄网站色大片免费观看cn| 91亚洲视频在线观看| 美腿丝袜亚洲综合| 国产成人A在线观看视频免费| 黄床大片免费30分钟国产精品| 亚洲色图激情文学| 久久精品亚洲视频| 亚洲精品岛国片在线观看| 四虎永久在线观看免费网站网址 | 亚洲国产日产无码精品| 亚洲福利精品电影在线观看| 人成午夜免费视频在线观看| 国产在线精品一区免费香蕉| 亚洲国产AV一区二区三区四区 | www永久免费视频| 亚洲已满18点击进入在线观看| 国产亚洲高清不卡在线观看| 精品免费国产一区二区| 在线免费观看你懂的| 中文字幕免费人成乱码中国| 久久精品国产亚洲av天美18| 亚洲人成伊人成综合网久久| 亚洲韩国—中文字幕| 在线亚洲午夜理论AV大片| 国产乱子伦片免费观看中字| 妞干网手机免费视频| 91免费播放人人爽人人快乐| 8x8x华人永久免费视频| a级毛片免费全部播放无码| 九九视频高清视频免费观看 |