三层架构实例

对于三层的概念查也查了,看也看了,下面是我找的一个关于三层的简单实例,真正看一下它是如何具体实现的.

 

我们先来一起看看实体类-Model

实质:实体类就是在完成数据库与实体类对应的功能,一个类是一张表,一个属性是一个字段!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace model
{
    public class User
    {
        public User() { }
        private string _name;
        public string name
        {
            set { _name = value; }
            get { return _name; }
        }

    }
}

再来说明一下,这个实例应用了配置文件来访问数据库,当然我们在做的时候可以使用SqlHelper,也可以将连接数据库的这些代码直接放在D

 <add name="ConnectionString" connectionString="Data Source=localhost;Initial Catalog=tester;User ID=sa;Password=123456"
            providerName="System.Data.SqlClient" />

三层中的最底层-数据访问层(DAL)  这一层要引用实体类和对Configuration的引用

实质:就是对数据库中的内容的增,删,改,查

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using model;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;

namespace DAL
{
    public class UserDB
    {
        public bool User_add(model.User model)
         {
             string setting = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
             SqlConnection myconn=new SqlConnection(setting);
             myconn.Open();
             SqlCommand cmd=new SqlCommand("insert into dbo.[user]([name]) values(@name)",myconn);
             cmd.Parameters.AddWithValue("@name", model.name);
             if (cmd.ExecuteNonQuery()>0)
             {
                 return true;
             }
             else
             {
                 return false;
             }
         }
    }
}

三层中的桥梁-业务逻辑层BLL  这一层需要引用实体类和数据访问层

实质:负责处理U层的问题(本例子主要是对数据层的操作)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;

namespace BLL
{   
         public class userBLL
          {
            DAL.UserDB db = new UserDB();
            public bool addUser(model.User model)
             {
               return db.User_add(model);
             }
          }   
}

三层中的顶层-表现层UI  这一层要引用实体类和业务逻辑层

实质:具体解决做什么的问题

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BLL;
using model;

namespace 登陆
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            model.User thisUser = new User();
             thisUser.name = TB_username.Text.ToString();
             BLL.userBLL uB = new userBLL();
             if (uB.addUser (thisUser))
             {
                MessageBox.Show ("true");
             }
             else                                                    
             {
                 MessageBox.Show ("false");
             }
         }
        }
    }


三层之间的关系:

       


解释:

     上述代码中DAL主要是对数据库中的内容的操作,在这里就是向数据库中添加用户。BLL则主要是调用DAL层的操作,返回DAL层添加用户的结果(true或者false)。这样也就是在客户端与数据库中加了一个中间层,使得两层的依赖性减小。UI层则主要完成响应用户的需求,去调用BLL层实现的adduser方法,DAL层就是实实在在做这件事情的操作。




  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值