日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三层学习------实践篇

發(fā)布時間:2025/6/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三层学习------实践篇 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ?實踐是檢驗真理的唯一標準。以下我們使用三層架構(gòu)實踐一個簡單的“登錄”業(yè)務。學以致用,來親身感受一下三層架構(gòu)的呼吸。


? ? 以上是啟動界面,屬于U層,它是Winform形式的。還有web方式的。用戶在此輸入username與password后,系統(tǒng)驗證password是否正確。

注意,為了簡單易行,要求輸入的username在數(shù)據(jù)庫中的User表中存在,否則就會報錯。下面是總體的代碼結(jié)構(gòu)。


接下來看一看詳細每一層中的代碼:

實體層:

<span style="font-family:SimSun;font-size:18px;"> public class User{private string userName = string.Empty;//string.Empty就相當于""。一般用于字符串的初始化private string pwd = string.Empty;public string UserName { get; set; }public string Pwd { get; set; }}</span>UI:

<span style="font-family:SimSun;font-size:18px;"> private void btnOK_Click(object sender, EventArgs e)//點擊“確定”button,開始驗證用戶信息{//聲明一個bool類型的變量用來接收登錄狀態(tài),登錄成功/失敗bool result = false;//檢查username與password是否為空if (txtUserName .Text ==""){MessageBox.Show ("username不能為空!");txtUserName.Focus();return;}if (txtPassword .Text ==""){MessageBox.Show("password不能為空!

"); txtPassword.Focus(); return; } //聲明一個用戶對象,將用戶輸入的username和password賦于這個用戶對象 User euser = new User(); euser.UserName = txtUserName.Text.Trim(); euser.Pwd = txtPassword.Text; //訪問B層 LoginServer blogin = new LoginServer(); result = blogin.BLogin(euser);//B層驗證password后,返回一個布爾值。傳到此處 if (result ==true )//假設返回true。則登錄成功 { MessageBox.Show("登錄成功!"); } else //返回false,password輸入錯誤,登錄失敗 { MessageBox.Show("登錄失敗!"); } } private void btnCancel_Click(object sender, EventArgs e)//點擊“取消button”。關閉窗口 { this.Close(); }</span>

BLL:

<span style="font-family:SimSun;font-size:18px;"> public class LoginServer //驗證用戶password是否正確{public bool BLogin(User User){UserDAL duser = new UserDAL();//訪問D層,連接數(shù)據(jù)庫User euser = new User();euser = duser.DLogin(User);//接下來的任務在D層中進行。從數(shù)據(jù)表中獲取該username的password//假設該用戶輸入的password與數(shù)據(jù)表中的一樣,則為真,登錄成功;反之為假。if (euser .Pwd ==User .Pwd )//euser是D層返回的實體類。攜帶著數(shù)據(jù)庫中存儲的用戶信息,User攜帶用戶輸入的用戶信息,將二者攜帶的password進行比較{return true;}else{return false;}//得到真假后。回到U層。回饋給用戶操作結(jié)果}}</span>DAL:

<span style="font-family:SimSun;font-size:18px;"> public class UserDAL{//連接數(shù)據(jù)庫public static string conString = @"Server=CYL-PC; Database=Login; User ID=sa; Password=123456";SqlConnection cnn = new System.Data.SqlClient.SqlConnection(conString);//依據(jù)輸入的username獲取用戶passwordpublic User DLogin(User user){string sqlString="select * from Users where UserName='"+user .UserName +"'";User euser = new User();SqlCommand cmd = new SqlCommand(sqlString, cnn);//打開數(shù)據(jù)庫cnn.Open();SqlDataReader read;read = cmd.ExecuteReader();read.Read();//將User表中的用戶信息賦予給實體類。并將其返回B層euser.UserName = read[0].ToString();euser.Pwd = read[1].ToString();return euser;}}</span>數(shù)據(jù)庫Login中User表:


? ? 代碼中的凝視寫得比較詳細,但在實際運行中。并非一條龍運行下去。U層引用B層,B層引用D層。這三層都引用Entity。

接下來將上述流程總體串一下。啟動系統(tǒng)后。首先顯示系統(tǒng)登錄界面,用戶輸入username和password后進行password驗證(若不輸入。點“確定”后系統(tǒng)檢測到空,又一次回到登錄界面)。

詳細的驗證過程是這種,三層都需實例化一個實體層中的User對象,當中U層的User攜帶用戶輸入的用戶信息(username和password);D層依據(jù)用戶輸入的username在數(shù)據(jù)庫中找到該用戶信息,讓D層的User攜帶,然后傳遞給B層的User。在B層運行詳細的驗證過程。U層User攜帶的password與B層User攜帶的password比較,若二者同樣,則顯示“登錄成功”向用戶反饋,反之提醒“登錄失敗”。

我的表達能力有限,預知清晰的運行內(nèi)幕,逐語句調(diào)試(F11)。

? ? 在這三層中。DAL僅僅提供主要的數(shù)據(jù)訪問,UI僅僅負責顯示和採集用戶操作,他們都不包括不論什么與業(yè)務相關的邏輯處理。BLL負責處理業(yè)務邏輯,通過獲取UI傳來的操作指令,運行業(yè)務邏輯,在須要訪問數(shù)據(jù)源的時候交給DAL處理。

處理完畢后,返回必要的數(shù)據(jù)給UI

實體層在他們之間上躥下跳。三層都不知道User中的詳細內(nèi)容。這樣做的優(yōu)點就是,實現(xiàn)了高內(nèi)聚,低耦合。

各層分工協(xié)作,各司其職。有條不紊。增強了軟件系統(tǒng)的可擴展性、可復用性、可維護性。


轉(zhuǎn)載于:https://www.cnblogs.com/mfrbuaa/p/5251534.html

總結(jié)

以上是生活随笔為你收集整理的三层学习------实践篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品xxx | 伊人啪啪 | 欧美日韩网| 蜜桃成人无码区免费视频网站 | 曰韩一级片 | 国产精品一二三区 | 长篇h版少妇沉沦交换 | 色爱色 | 国产在线三区 | 国产亚洲欧美一区二区三区 | 一本色道久久综合亚洲精品 | 欧美做受xxxxxⅹ性视频 | 欧美黄色大片免费看 | 久久亚洲精品石原莉奈 | 国产精品人妖 | 亚洲免费av电影 | 蜜臀av一区二区三区 | 成年人激情网 | 欧美日韩性生活视频 | 成人免费看片&#39; | av动漫免费看 | 不卡av在线播放 | 黑丝国产一区 | 午夜神器在线观看 | 国产第一精品视频 | 四川一级毛毛片 | 久久av无码精品人妻出轨 | av黄色影院| 麻豆成人免费视频 | 草草色 | 久久精品一区二 | 97超碰人人看 | av午夜在线观看 | 美女黄色免费网站 | 嫩模一区| 2021中文字幕 | 最新视频 - x88av | 中文字幕av在线免费 | 日韩网站免费观看高清 | 午夜网站免费 | 午夜影院免费体验区 | 中文字幕在线官网 | 亚欧色视频 | 欧美人伦| 亚洲免费观看视频 | 国产婷婷一区二区三区 | 乳孔很大能进去的av番号 | 手机看片日韩久久 | 中国黄色三级 | 天天添天天操 | 一本色道久久综合精品婷婷 | 日日操天天操 | 欧美做受喷浆在线观看 | 亚洲精品aa | 青青青视频在线播放 | 一级在线| 国产123区 | 伊人久久青草 | 日韩亚洲欧美在线 | 久久99热人妻偷产国产 | 综合网久久 | 美国做爰xxxⅹ性视频 | av最新版天堂资源在线 | 国产精品无码久久久久久 | 女人下部全棵看视频 | 久久久www免费人成人片 | 成人免费精品 | 蜜桃视频在线观看一区 | 成人3d动漫在线观看 | 性www| 亚洲va久久久噜噜噜无码久久 | 精品国产乱码久久久久久图片 | 国产精品一区二区久久国产 | 综合久久影院 | 日本黄大片在线观看 | 久久六六| www.毛片.com | 一区二区三区麻豆 | 三上悠亚一区二区三区 | 色香欲综合网 | av高清不卡 | 天堂va蜜桃 | 婷婷精品一区二区三区 | 国产精品爽爽 | 久久看视频| 中文字幕第66页 | 久草中文在线观看 | 老外黄色一级片 | 免费国产视频在线观看 | 精品乱子伦一区二区 | 日韩三级一区二区 | 丰满秘书被猛烈进入高清播放在 | 日本亚洲免费 | 国产福利资源 | 深夜国产在线 | 少妇精品一区二区三区 | 国产成人无码性教育视频 | 国产91麻豆视频 | 国产美女无遮挡永久免费观看 |