搭建第三波書店系統(tǒng)框架_第1頁
搭建第三波書店系統(tǒng)框架_第2頁
搭建第三波書店系統(tǒng)框架_第3頁
搭建第三波書店系統(tǒng)框架_第4頁
搭建第三波書店系統(tǒng)框架_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第四章搭建“第三波書店”系統(tǒng)框架Copyright by ARTCOM PT All rights reserved.Company LogoLogo回回顧顧2-12-1l三層結(jié)構(gòu)都有哪三層?l上一章里我們學習了哪三種導(dǎo)航控件?Copyright by ARTCOM PT All rights reserved.Company LogoLogo回回顧顧2-22-2string sql = SELECT SubjectName FROM Subject;SqlCommand command = new SqlCommand(sql, DBHelper.connection);DBHelper.c

2、onnection.Open();SqlDataReader dataReader = command.ExecuteReader();while (dataReader.Read( ) cboSubject.Items.Add(dataReaderSubjectName.ToString();未關(guān)閉未關(guān)閉 ReaderdataReader.Close();未關(guān)閉連接未關(guān)閉連接 DBHelper.connection.Close(); DBHelper.connection.Dispose(); Copyright by ARTCOM PT All rights reserved.Compan

3、y LogoLogo預(yù)習檢查預(yù)習檢查q模型層有哪些內(nèi)容?q數(shù)據(jù)訪問層一般寫哪些方法?Copyright by ARTCOM PT All rights reserved.Company LogoLogo本章任本章任務(wù)務(wù)l搭建網(wǎng)上書店的架構(gòu)l實現(xiàn)書店的用戶登錄Copyright by ARTCOM PT All rights reserved.Company LogoLogo本章目本章目標標l會在 ASP.NET 中使用三層結(jié)構(gòu)。l能夠?qū)崿F(xiàn)三層結(jié)構(gòu)下的用戶注冊和登錄。Copyright by ARTCOM PT All rights reserved.Company LogoLogo系系統(tǒng)統(tǒng)架架

4、構(gòu)構(gòu)l三層結(jié)構(gòu)表示層業(yè)務(wù)邏輯層數(shù)據(jù)訪問層分層的理念:將相似的內(nèi)容放到一起去處理,開發(fā)人員可以只關(guān)分層的理念:將相似的內(nèi)容放到一起去處理,開發(fā)人員可以只關(guān)注整個結(jié)構(gòu)中的其中某一層,可以很容易的用新的實現(xiàn)來替換原注整個結(jié)構(gòu)中的其中某一層,可以很容易的用新的實現(xiàn)來替換原有層次的實現(xiàn)有層次的實現(xiàn) 三層結(jié)構(gòu)的經(jīng)典案例:三層結(jié)構(gòu)的經(jīng)典案例:PetShopCopyright by ARTCOM PT All rights reserved.Company LogoLogoPetShop4.0PetShop4.0l寵物商店微軟展示.NET企業(yè)開發(fā)的范例。與Sun的PetStore的商業(yè)競爭。一個小型的電子商務(wù)

5、案例。體現(xiàn)了微軟推廣的開發(fā)思想和設(shè)計理念。分22個項目,經(jīng)典的系統(tǒng),從設(shè)計的思想到最好的編碼,學習參考價值很高。演示:演示:PetShop4.0 Copyright by ARTCOM PT All rights reserved.Company LogoLogoPetShop4.0PetShop4.0架架構(gòu)簡構(gòu)簡介介ASP.NET WebBLLDALFactoryOracleDALSQLServerDALIDALModel表示層表示層業(yè)務(wù)層業(yè)務(wù)層數(shù)據(jù)層數(shù)據(jù)層典型的三層結(jié)構(gòu)典型的三層結(jié)構(gòu)Copyright by ARTCOM PT All rights reserved.Company Log

6、oLogo搭建第三波搭建第三波網(wǎng)絡(luò)書網(wǎng)絡(luò)書店的模型店的模型層層l模型層表示層需要訪問實體對象的屬性值。業(yè)務(wù)層需要通過實體對象處理業(yè)務(wù)邏輯。數(shù)據(jù)層也需要通過實體對象讀寫數(shù)據(jù)庫。模型是數(shù)據(jù)載體。l命名項目名:MyBookShopModels命名空間:MyBookShop.Models類名:圖書表Books圖書類Book實體類通常冠以Serializable特性,以保證實體傳輸?shù)目煽啃訡opyright by ARTCOM PT All rights reserved.Company LogoLogo外外鍵鍵的的處處理理l數(shù)據(jù)庫中有主外鍵關(guān)系,模型層怎么表示?比如用戶表和狀態(tài)表。狀態(tài)字段是用戶表的外

7、鍵。l兩種方式:為實體類添加狀態(tài)id屬性,存儲狀態(tài)id。為實體類添加狀態(tài)屬性,存儲狀態(tài)對象。Copyright by ARTCOM PT All rights reserved.Company LogoLogo示例示例l用戶類的模型用戶需要有登錄名、密碼、狀態(tài)等屬性狀態(tài)表存儲狀態(tài)名稱用戶的狀態(tài)屬性使用狀態(tài)對象public UserState UserStateget return this.userState; set this.userState = value; Copyright by ARTCOM PT All rights reserved.Company LogoLogo處處理外理

8、外鍵鍵的代的代碼碼Serializable()public class User/字段字段public User() /構(gòu)造函數(shù)構(gòu)造函數(shù)/常見屬性常見屬性public UserState UserState/用戶狀態(tài)用戶狀態(tài)-外鍵外鍵get return this.userState; set this.userState = value; Copyright by ARTCOM PT All rights reserved.Company LogoLogo小小結(jié)結(jié)l編寫實體類UserRole并更新User類相關(guān)屬性類關(guān)系圖如下答案:答案:UserRole類類 Copyright by ART

9、COM PT All rights reserved.Company LogoLogo數(shù)數(shù)據(jù)據(jù)訪問層訪問層l數(shù)據(jù)訪問層所有與數(shù)據(jù)庫交互的操作數(shù)據(jù)表的增、刪、查、改操作數(shù)據(jù)訪問層不做邏輯判斷l(xiāng)命名項目名:MyBookShopDAL命名空間:MyBookShop.DAL類名:圖書表Books圖書數(shù)據(jù)訪問類BookServiceCopyright by ARTCOM PT All rights reserved.Company LogoLogo代代碼碼比比較較l比較兩段代碼 代碼1 代碼2 l在每一個對象的數(shù)據(jù)庫訪問類中:數(shù)據(jù)庫連接反復(fù)出現(xiàn)數(shù)據(jù)庫連接打開和關(guān)閉反復(fù)出現(xiàn)執(zhí)行Sql語句的方法相似返回記錄

10、集的方法相似根據(jù)面向?qū)ο笏枷?,是否根?jù)面向?qū)ο笏枷耄欠窨梢詼p少這些重復(fù)勞動?可以減少這些重復(fù)勞動?Copyright by ARTCOM PT All rights reserved.Company LogoLogoDBHelperDBHelper類類l我們將常用方法提取出來,作為DBHelper類l該類包含了:建立數(shù)據(jù)庫連接建立數(shù)據(jù)庫連接執(zhí)行執(zhí)行Sql的方法的方法(存儲過程(存儲過程sql語句)語句)返回記錄集返回記錄集返回返回Reader返回結(jié)果返回結(jié)果Copyright by ARTCOM PT All rights reserved.Company LogoLogo創(chuàng)創(chuàng)建建數(shù)數(shù)據(jù)據(jù)訪

11、問層訪問層的的類類l創(chuàng)建UserService類Create方法Retrieve方法Update方法Delete方法bool AddUser(User user)IList GetAllUsers( ) User GetUserById(int id)IList GetUsersBySql(string sql)bool DeleteUserById(int id)bool UpdateUser(User user)Copyright by ARTCOM PT All rights reserved.Company LogoLogo增加一增加一個個用用戶戶的方法的方法public static

12、 bool AddUser(User user) string sql = INSERT USERS (loginid, loginpwd, name, address, phone, mail, userroleId,UserStateId) + VALUES (LoginId,LoginPwd,Name,Address,Phone,Mail, RoleId,UserStateId); SqlParameter para = new SqlParameter new SqlParameter(LoginId,user.LoginId), ; DBHelper.ExecuteCommand(s

13、ql, para); return true;組合組合SQL語句語句參數(shù)賦值參數(shù)賦值調(diào)用調(diào)用DBHelper類中類中的方法進行處理的方法進行處理Copyright by ARTCOM PT All rights reserved.Company LogoLogo小小結(jié)結(jié)l模型層為什么要標記為可序列化?l模型層的作用?l數(shù)據(jù)訪問層的功能?l編寫User的數(shù)據(jù)訪問類的查、改、刪方法。示例:示例:User的數(shù)據(jù)庫訪問類的數(shù)據(jù)庫訪問類 Copyright by ARTCOM PT All rights reserved.Company LogoLogo業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層l業(yè)務(wù)邏輯層是表示層與數(shù)據(jù)訪問

14、層的橋梁,負責邏輯的判斷,業(yè)務(wù)處理、數(shù)據(jù)傳遞。不在表示層訪問數(shù)據(jù)庫,數(shù)據(jù)更加安全。l命名項目名:MyBookShopBLL命名空間:MyBookShop.BLL類名:圖書表Books圖書業(yè)務(wù)邏輯層類BookManagerCopyright by ARTCOM PT All rights reserved.Company LogoLogo用用戶戶登登錄錄的的業(yè)務(wù)邏輯業(yè)務(wù)邏輯方法方法public static bool Login(string loginId, string loginPwd, out User validUser)User user = UserService.GetUserB

15、yLoginId(loginId);if (user = null) validUser = null; return false;if (user.LoginPwd = loginPwd) validUser = user; return true;else validUser = null; /密碼錯誤密碼錯誤 return false;Copyright by ARTCOM PT All rights reserved.Company LogoLogo表示表示層層l表示層的設(shè)計給客戶最直接的體驗。頁面風格和布局,美觀大方。頁面操作符合邏輯,講究用戶體驗 。注意風格統(tǒng)一。表示層負責內(nèi)容的展

16、現(xiàn)和與用戶的交互。表示層負責內(nèi)容的展現(xiàn)和與用戶的交互??梢赃M行變量范圍的驗證??梢赃M行變量范圍的驗證。不做業(yè)務(wù)邏輯判斷。不做業(yè)務(wù)邏輯判斷。不做與數(shù)據(jù)庫交互的處理。不做與數(shù)據(jù)庫交互的處理。Copyright by ARTCOM PT All rights reserved.Company LogoLogo用用戶戶管理模管理模塊塊l首先根據(jù)數(shù)據(jù)庫創(chuàng)建模型層。包括用戶的實體類以及相關(guān)聯(lián)的類。l創(chuàng)建數(shù)據(jù)訪問層用戶管理類。包括增刪查改方法。l設(shè)計相關(guān)頁面,并編寫事件代碼。新用戶注冊。用戶登錄。用戶信息修改。l創(chuàng)建業(yè)務(wù)邏輯層處理類。根據(jù)需要,添加相關(guān)方法。Copyright by ARTCOM PT Al

17、l rights reserved.Company LogoLogo示例示例1 1l用戶登錄創(chuàng)建頁面。編寫事件處理代碼,包括驗證輸入。創(chuàng)建業(yè)務(wù)邏輯層方法,調(diào)用數(shù)據(jù)訪問層相關(guān)方法處理。演示示例:演示示例:用戶登錄用戶登錄 Copyright by ARTCOM PT All rights reserved.Company LogoLogo用用戶戶注注冊冊的確的確認認事件代事件代碼碼User user = new User();user.LoginId = this.txtLoginId.Text;user.UserState = new UserState();user.UserState.Id

18、 = 1;if (UserManager.AddUser(user)this.ltMain.Text = alert(注冊成功!請繼續(xù)購物注冊成功!請繼續(xù)購物 ); window.location=./default.aspx;elsethis.ltMain.Text = alert(用戶名已使用!請重新選擇!用戶名已使用!請重新選擇!);實例化實例化User類類對類相關(guān)屬性進行賦值對類相關(guān)屬性進行賦值默認值,硬編碼默認值,硬編碼業(yè)務(wù)層進行相關(guān)判斷和處理業(yè)務(wù)層進行相關(guān)判斷和處理彈出腳本提示彈出腳本提示小技巧:在控件上輸出腳本小技巧:在控件上輸出腳本Copyright by ARTCOM PT All rights reserved.Company LogoL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論