三层架构-----实践篇

上篇论述了三层的基本概念,作用,关系,现在展示下系统中用户登陆过程中简单应用三层结构设计思想。

vb.NET的操作如下

首先建立以下windows应用程序以及类库

首先建立实体类

Public Class userInfo
    Private _username As String
    Public Property UserName As String
        Get
            Return _username

        End Get
        Set(ByVal value As String)
            _username = value

        End Set
    End Property
    Private _pwd As String
    Public Property Pwd As String
        Get
            Return _pwd

        End Get
        Set(value As String)
            _pwd = value
        End Set
    End Property
End Class

UI层,前提是引用实体类(model)和BLL

Public Class Form1

    Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
        Me.Close()
    End Sub

    Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
        Try
            Dim euser2 As New Model.userInfo
            Dim euser3 As New Model.userInfo

            euser2.UserName = txtUserName.Text.Trim '将U层数据传递给实体
            euser2.Pwd = txtPassword.Text.Trim

            Dim mgr As New BLL.LoginMannager '将数据传递给B层
            euser3 = mgr.UserLogin(euser2)
        Catch ex As Exception
            MessageBox.Show(ex.Message.ToString())

        End Try
    End Sub
End Class

DAL层:前提引用实体类

Imports System.Data
Imports System.Data.SqlClient
Imports Model

Public Class user
    '创建数据库链接
    Public conn As New SqlConnection("server=LXY;database=login;user Id=sa;password=123456")
    Public Function SelectUser(ByVal User As Model.userInfo) As Model.userInfo
        '传递实体uesrinfo而不是参数id.username 等,这样方便对实体中参数进行调用
        Dim reader As SqlDataReader
        Dim eUser As New Model.userInfo
        Dim sql As String = "select UserName,PassWord FROM User_info WHERE [email protected] and [email protected]"
        Dim cmd As New SqlCommand(sql, conn)

        cmd.CommandText = sql
        cmd.CommandType = CommandType.Text
        cmd.Parameters.Add(New SqlParameter("@username", User.UserName))
        cmd.Parameters.Add(New SqlParameter("@password", User.Pwd))
        conn.Open()
        reader = cmd.ExecuteReader
        While reader.Read()
            eUser.UserName = reader.GetString(0)
            eUser.Pwd = reader.GetString(1)
        End While
        Return eUser
        conn.Close()

    End Function
End Class

接下来是BLL层:前提引用DAL和实体类

Public Class LoginMannager
    Public Function UserLogin(ByVal User As Model.userInfo) As Model.userInfo
        Dim uDao As New DAL.user
        Dim eUser1 As New Model.userInfo

        eUser1 = uDao.SelectUser(User) '将数据传给D层

        If IsNothing(eUser1.UserName) Then
            Throw New Exception("登录失败,请验证请验证登陆名和密码!")
        Else
            MsgBox("登陆成功!")

            Return eUser1
        End If

    End Function
End Class

引用:我们看到三层架构的主要特点:UI调用BLL中类的方法,即UI知道BLL的方法,但不知道方法实现的细节,而BLL层并不知道UI的存在.同样BLL层调用DAL,而DAL也不知道BLL的存在。三者中任何一者发生变化都不会影响其他俩者的正常工作,只对变化者进行重新调整即可。三层把Entity实体类的实例作为参数来传递.

总之,表示层只提供软件系统与用户交互的接口;业务逻辑层是界面层和数据访问层之间的桥梁,负责数据处理和传递;数据访问层只负责数据的存取工作。

三层架构-----实践篇

时间: 2024-10-10 22:06:40

三层架构-----实践篇的相关文章

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

实践是检验真理的唯一标准,下面我们使用三层架构实践一个简单的"登录"业务.学以致用,来亲身感受一下三层架构的呼吸. 用户输入用户名与密码后,系统验证密码是否正确.注意,为了简单易行,要求输入的用户名在数据库中的User表中存在,否则就会报错.以下是整体的代码结构. 接下来看一看具体每一层中的代码: 实体层: <span style="font-family:SimSun;font-size:18px;"> public class User { priv

三层架构-------理论篇

概念: 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI).业务逻辑层(BLL).数据访问层(DAL).区分层次的目的即为了"高内聚,低耦合"的思想. 各层概念 1.表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得. 2.业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理. 3.数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添.删除.修改.查找等. 注:应用三层离不开另一个重要的类:实体类,

搭建连接MySql的三层架构的ASP.NetCore2.0的WebApi

里我们用三层架构搭建一个连接MySql的ASP.netCore模板的WebApi项目 首先添加WebApi项目(ASP.NetCore版本) 右键解决方案>新建项目> 选择Web>ASP.NET Core Web应用程序(.NET Core) 选择Web API 此时的目录结构: 添加实体层Entity 右键添加>新建项目>.Net Core类库 添加后的目录结构 BaseEntity: using System; using System.Collections.Gener

C#三层架构

最近新学的,C#中得三层架构                                                                                ----2016-10-23 表示层 业务逻辑层(BLL) 数据访问层(DAL) 关联:产生依赖关系 描述:三层体系结构就是在客户端和数据库之间加一个中间层,通常情况下客户端不能直接和数据库进行交互,而是通过中间层和数据层进行交互的. [表示层] 主要负责完成用户和系统的交互. 它接收用户输入的信息,并把上级传

后台三层架构

后台三层架构 所谓的三层开发就是将系统的整个业务应用划分为表示层.业务逻辑层.数据访问层,这样有利于系统的开发.维护.部署和扩展. 分层实现了“高内聚.低耦合”,采用“分而治之”的思想,把问题划分开来解决,易于控制.延展,易于分配资源. 第一层:表现层/表示层:负责直接跟用户进行交互,一般是指系统的界面,用于数据录入.数据显示等.意味着只做与外观显示相关的工作,不属于它的工作不用做. 第二层:业务层/服务层:用于做一些有效性验证的工作,以更好地保证程序运行的健壮性.如完成数据添加.修改和查询业务

三层架构1

一.三层框架 表现层:也叫视图层,用html.css.js.jquery 业务逻辑层:也叫控制层,包含业务逻辑的实现部分 数据管理层:与数据库直接交互的部分 二.组建三层框架(现有实例) 1.数据管理层 A.引入Model类 创建项目之后在项目的同级目录上建立Model的目录,相应的在保存项目的硬盘上也建立Model的目录.然后把Model.Base复制到硬盘上也建立的Model目录下,并在项目的Model下引入硬盘Model.Base线面现有的Model.Base.csproj模块. B.在项

MVC三层架构模式编程思想 JSP-Servlet-JavaBean

MVC(Mdodel-View-Controller)编程模式,把一个Java应用分成三层:模型层.视图层.控制层,各层分别实现各层的功能,整个过程见下图就一目了然了. JSP.JavaBean.Servlet三层架构即MVC编程模式是现在我们学习web应用编程的基础思想,上图是经本人总结后做出的图,有不对的地方望各位朋友多提意见.

架构(三层架构)、框架(MVC)、设计模式三者异同点

对于没有排序功能的集合来说,都可以使用java.util.Collections.sort()方法进行排序,它除了集合对象以外,还需要提供一个比较器.如果列表中的元素全部都是相同的类型,并且这个类实现了Comparable接口,就可以简单的调用Collections.sort()方法,如果这个类没有实现comparable接口,那么可以创建一个比较器传递一个Comparator实例作为Sort()的第二个参数进行排序,另外,如果不想使用默认的分类顺序进行排序,同样也可以传递一个Comparato

Angular JS从入门基础 mvc三层架构 常用指令

Angular JS从入门基础  mvc模型 常用指令 ★ 最近一直在复习AngularJS,它是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心的是:MVC.模块化.自动化双向数据绑定.语义化标签.依赖注入等等. 1.常用指令 AngularJS 通过指令扩展了HTML,且通过表达式绑定数据到 HTML.下面我们看一下AngularJS中的常用指令. (1).基本概念 指令:AngularJS中,通过扩展HTML的属性提供功能.所以,ng-