日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费毛片在线播放免费 | 四虎免费影视 | 久久两性视频 | 日韩色视频在线观看 | 黑人又大又粗又长 | 懂色av一区二区 | 精品三级在线 | 欧美精品成人久久 | 黄色小网站入口 | 毛片日本| 日本老妇高潮乱hd | 国产激情小视频 | 深夜视频在线播放 | 神马久久香蕉 | av在线观| 欧美日韩成人在线视频 | 天堂网中文在线 | 国产特级淫片免费看 | 国产精品h | 精品人妻一区二区三 | 亚洲成人自拍视频 | 处破痛哭a√18成年片免费 | 爱逼av| 艳情五月| japanese在线观看 | 人妻丰满熟妇岳av无码区hd | 欧美日韩高清在线观看 | 蜜臀久久99精品久久久久久宅男 | 69xx视频在线观看 | 国产一级免费 | 一区在线观看 | 中国女人真人一级毛片 | 国产免费资源 | 亚洲孕交| 天天操天| 在线国产精品一区 | 91涩漫成人官网入口 | jzzijzzij日本成熟少妇 | 中文字幕+乱码+中文 | 用力抵着尿进去了h | 人妻少妇一区二区三区 | 国产视频在线免费观看 | 亚洲欧美国产视频 | 亚洲白浆 | 在线看片国产 | 日韩一级不卡 | av动漫网站| 精品国产aⅴ一区二区三区四川人 | 天天干夜操 | 久久一热 | 欧美亚洲一区二区三区 | 97综合 | 天天天操操操 | 国产福利片在线观看 | 亚洲黄色精品视频 | 99久久久无码国产精品6 | 毛片中文字幕 | 观看免费av| 伊人久久精品视频 | 岛国av片 | 国产一区二区久久久 | 色网站免费看 | 国产精品熟妇一区二区三区四区 | 丰满少妇毛片 | 国产中出视频 | 午夜视频精品 | 亚洲自拍偷拍精品 | 一级黄色片片 | 男同毛片| 可以在线看的av | 妞干网这里只有精品 | 国产精品99久久久久久大便 | 日韩中出 | 91蜜桃臀久久一区二区 | 欧美精产国品一二三 | 爱情岛论坛av| 久久久一区二区三区 | 波多野结衣先锋影音 | www色com| 日韩激情网站 | 免费视频一二三区 | 午夜视频a| 国产高清不卡av | 国产一级片| 久久久久无码精品国产sm果冻 | 午夜影院网站 | 日韩欧美一区二区区 | 日韩视频免费在线 | 国产三级三级三级三级三级 | 91视频黄 | 日日燥夜夜燥 | 在线v| 午夜影院h | 精品九九视频 | 欧美xxxx黑人又粗又长密月 | 国产一二在线 | 黄色一级小视频 | 性欧美色图 | 日本黄色高清 |