qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          菜鳥也能飛:SQL數據庫實戰專業教程(三)

          七、詳細設計

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

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

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

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

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

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

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

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

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

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

          相關鏈接:

          菜鳥也能飛:SQL數據庫實戰專業教程(一)

          菜鳥也能飛:SQL數據庫實戰專業教程(二)SQLHelper包:

            DAL包:

            BLL包:

            UI包:

          六、概要設計

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

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

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

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

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

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

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 阳城县| 荆门市| 东乌珠穆沁旗| 巴南区| 宝兴县| 胶南市| 太仆寺旗| 尼玛县| 江源县| 都昌县| 渭南市| 东乡族自治县| 齐齐哈尔市| 双牌县| 新密市| 获嘉县| 漯河市| 鄢陵县| 郸城县| 伊川县| 德昌县| 巩义市| 砀山县| 陵川县| 晋宁县| 临朐县| 凤台县| 买车| 宜兰市| 荥经县| 淳安县| 班玛县| 仙游县| 体育| 贺州市| 托克托县| 江油市| 西青区| 侯马市| 理塘县| 彭阳县|