机房重构--三层登录

机房重构总算开始了。那重构的第一步就是要敲一下三层,那么很多伙伴就会问,什么是三层。这里我给大家解释一下。

什么是三层结构?

物理上划分为显示层,业务层,数据层

逻辑层分为,UI,BLL,DAL

首先说一下数据访问层(DAL):

DAL只提供基本的数据访问,不包含任何业务相关的逻辑处理。

代码

 //链接数据库
    class DbUtil
    {
        public static string ConnString = @"Server=.;Database=Login;User ID=sa;Password=123456";
    }

//读数据

public  class UserDAO
    {
      public Login.Model.Userinfo  SelectUser(string userName, string password)
      {
          using (SqlConnection conn = new SqlConnection(DbUtil.ConnString)) //自动关闭数据库
          {
              SqlCommand cmd = conn.CreateCommand();
              cmd.CommandText = @"SELECT ID,UserName,Password,Email FROM USERS WHERE UserName=@UserName AND Password=@Password";//查询
              cmd.CommandType = CommandType.Text;//枚举类型,默认可以不写
              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;


              while (reader.Read())//读取数据
              {
                  if (user == null)
                  {
                      user = new Login.Model.Userinfo();
                  }
                  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;
          }
      }

作用:

从数据源加载数据(select)

向数据源写入数据(Insert/Update)

从数据源删除数据(Delete)


UI层负责显示和采集用户操作,不包含任何的业务相关的逻辑处理。

作用

向用户展现特定的业务数据

采集用户的输入信息和操作

代码

 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);
           MessageBox.Show("登录用户:" + user.UserName);

BLL负责处理业务逻辑。通过获取UI传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给DAL处理,处理完成后,返回必要数据给UI。

 public  class LoginManager
    {
       public Login.Model.Userinfo  UserLogin(string userName, string password)
       {
        
           Login.DAL.UserDAO uDao = new Login.DAL.UserDAO();
          Login.Model.Userinfo user= uDao.SelectUser(userName, password);
           //判断是否登录成功
          if (user != null)
          {
              Login.DAL.ScoreDAO sDao = new Login.DAL.ScoreDAO();
              sDao.UpdateScore(userName, 10);
              return user;
          }
          else
          {
              throw new Exception("登录失败");
 
          }
       }

    }

总结:三层只是重构开始的很简单的一部分。接下来往七层努力,积跬步以至千里吧。


你可能感兴趣的:(机房重构--三层登录)