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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

三层架构实战篇—系统登录实例

發(fā)布時(shí)間:2025/6/15 windows 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三层架构实战篇—系统登录实例 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ???上一篇博客,介紹了三層的一些基本理論,但是學(xué)習(xí)光有理論還是不行滴!馬克思不也說過了嗎?實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)!

? ? ? ? 所謂的三層分為物理上的三層和邏輯上的三層。物理上的三層包括:客戶端(PC)、應(yīng)用服務(wù)器、數(shù)據(jù)庫服務(wù)器。邏輯上的三層,也就是我們要討論的,分為表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層。實(shí)體層,嚴(yán)格的來說不屬于三層中的任一層,它是獨(dú)立于其他三個(gè)層次的,只能供其他層次進(jìn)行引用,但是不能引用其他的三個(gè)層次。

? ? ? ? 下面是數(shù)據(jù)在三層中的一個(gè)具體走向圖,這對(duì)于我們了解三層的一條線很有幫助。


?

??? ? ?

? ? ? ?三層應(yīng)用原則:

?

  • DAL只提供基本的數(shù)據(jù)訪問,不包含任何的業(yè)務(wù)邏輯
  • UI只負(fù)責(zé)顯示和采集用戶操作,不包含任何業(yè)務(wù)相關(guān)的邏輯處理
  • BLL負(fù)責(zé)處理業(yè)務(wù)邏輯。通過獲取UI傳來的用戶指令,執(zhí)行業(yè)務(wù)邏輯,在需要訪問數(shù)據(jù)源的時(shí)候,直接交個(gè)DAL進(jìn)行處理。處理完成后,返回必要數(shù)據(jù)給UI。

?

?

? ? ?實(shí)現(xiàn)步驟

?

? ? ? ?(1)前期準(zhǔn)備

? ? ? ? ? ? ??1.根據(jù)上一層引用下一層以及實(shí)體層在各層的作用,繪制UML圖。


? ? ???2.根據(jù)UML圖顯示的關(guān)系,構(gòu)建三層框架


?

? ? ? ?

3.建立數(shù)據(jù)庫,包含UserInfo表。


?

2)代碼實(shí)現(xiàn)階段

1.用戶界面層(LoginUI):

? ? ? ?作用:

  • 向用戶展現(xiàn)特定業(yè)務(wù)數(shù)據(jù)
  • 采集用戶的輸入信息和操作

?

? ? ? ?原則:用戶至上,兼顧簡(jiǎn)潔

? ? ? ?添加類:frmLogin


?

?

namespace LoginUI {public partial class frmLogin : Form{public frmLogin(){InitializeComponent();}private void btnLogin_Click(object sender, EventArgs e){//UI層將用戶輸入數(shù)據(jù)傳遞給BLL層string userName = txtUserName.Text.Trim();string password = txtPassword.Text;Login.BLL.LoginManager mgr = new Login.BLL.LoginManager();Login.Model .UserInfo user= mgr.UserLogin (userName, password);//UI層返回業(yè)務(wù)層傳遞的數(shù)據(jù)給用戶MessageBox.Show("登錄用戶:" + user.UserName);}

?

?

2.業(yè)務(wù)邏輯層(LoginBLL):

? ? ? ?作用:

  • 從DAL獲取數(shù)據(jù),提供UI顯示
  • ?從UI獲取用戶和指令,執(zhí)行業(yè)務(wù)邏輯
  • 從UI獲取用戶和指令,通過DAL寫入數(shù)據(jù)

?

? ? ? ?BLL的職責(zé)機(jī)制:

? ? ? ? ? ? ? ?UI→BLL→UI

? ? ? ? ? ? ? ?UI→BLL→DAL→BLL→UI? ?

? ? ? ?添加類:LoginManager? ??

??

?

namespace Login.BLL {public class LoginManager{public Login.Model .UserInfo UserLogin(string userName,string password){Login.DAL.UserDAO uDao = new Login.DAL.u (); //實(shí)例化DAL層Login.Model.UserInfo user = uDao.SelectUser(userName, password);//不需要訪問數(shù)據(jù)源,直接執(zhí)行業(yè)務(wù)邏輯if (user != null){return user;}else{throw new Exception("登錄失敗");}}} }

?

?

3.數(shù)據(jù)訪問層(LoginDAL):

? ? ? ?作用:SELECT、INSERT/UPDATE、DELETE

? ? ? ?添加類:UserDAO? ??? ? ?


?

namespace Login.DAL {public class UserDAO{public Login.Model.UserInfo SelectUser(string userName, string Password){//建立數(shù)據(jù)庫連接string ConnString = @"Server =192.168.24.45;DataBase =Login; User ID =sa ;Password =123";using (SqlConnection conn = new SqlConnection(ConnString)){//執(zhí)行SQL語句進(jìn)行查詢SqlCommand cmd = conn.CreateCommand();cmd.CommandText = @"SELECT ID,UserName,Password,Email FROM UserInfo WHERE UserName =@UserName AND Password =@Password";//輸出查詢結(jié)果cmd.CommandType = CommandType.Text;//添加兩個(gè)參數(shù)cmd.Parameters.Add(new SqlParameter(@"UserName", userName));cmd.Parameters.Add(new SqlParameter(@"Password", Password));conn.Open();SqlDataReader reader = cmd.ExecuteReader();Login.Model.UserInfo user = null;//讀取具體的數(shù)據(jù)while (reader.Read()){if (user == null){user = new Login.Model.UserInfo();}//讀取查詢到的數(shù)據(jù)user.ID = reader.GetInt32(0);user.UserName = reader.GetString(1);user.Password = reader.GetString(2);if (!reader.IsDBNull(3)){user.Email = reader.GetString(3);}}return user; }} }}

?

?

4.實(shí)體(LoginModel):

? ? ? ?作用:封裝數(shù)據(jù),使數(shù)據(jù)在三層中傳輸 ,更傾向于業(yè)務(wù)邏輯層

? ? ? ?添加類:UserInfo


namespace Login.Model{public class UserInfo{//定義用戶屬性public int ID { get; set; }public string UserName { get; set; }public string Password { get; set; }public string Email { get; set; }}} 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的三层架构实战篇—系统登录实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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