数据库连接的三层架构

一、什么是三层架构

1.概念

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。

分层(tier) 概念
表现层(UI) 通俗讲就是展现给用户的界面,用于显示数据和接受用户输入的数据;即用户在使用一个系统的时候他的所见所得。
业务逻辑层(BLL) 针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。是表示层和数据访问层之间的桥梁。
数据访问层(DAL) 该层所做事务直接操作数据库,针对数据的增添、删除、修改、查找等。
数据库实体类(Entity) 对数据对象进行封装,也有一些简单的功能

2.各层的作用

分层 作用
表现层(UI) 主要表示WEB方式,也可以表示成WINFORM方式,WEB方式也可以表现成:aspx,如果逻辑层相当强大和完善,无论表现层如何定义和更改,逻辑层都能完善地提供服务。
业务逻辑层(BLL) 主要是针对具体的问题的操作,也可以理解成对数据层的操作,对数据业务逻辑处理,如果说数据层是积木,那逻辑层就是对这些积木的搭建。
数据访问层(DAL) 主要是对原始数据(数据库或者文本文件等存放数据的形式)的操作层,而不是指原始数据,也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务
   

由上表可以看出,多出的一个数据库实体类(Entity),他在三层中并不是作为一层而存在的,而是作为一个类库,起到封装数据库表的作用。

3.各层以及类库之间的关系

 

二、为什么要用三层架构?

1.分析

层次结构在现实社会中随处可见。记得有个笑话讲有个村长得意的向他的老婆吹牛:“全中国比我官大的只有四个人,乡长、县长、省长和国务院总理”,这个笑话体现了真实社会的分层现象,社会人群会分层,公司管理人员结构也会分层,

楼房是分层的,甚至做包子的笼屉也是分层的,虽然分层的目的各有不同,但都是为了解决某一问题而产生的,所以分层架构是为了解决某一问题而产生的解决方案。

        社会分工的优势:让适合的人做自己最擅长的事情,缩短劳动时间,提高劳动效率。人尽其才,物尽其用。软件开发也一样,开发小项目,也许分层与不分层也许看不出多大的差别来,分层可能显得更加啰嗦,但是当开发一个复杂的项目时,分层的优势就显示出来了。

        举个例子:我们重构机房收费系统,需要进行数据库的访问,在不分层的情况下,就会出现大量重复的代码,无非就是数据库的增、删、改、查,这些重复的代码可以适用于多个模块,就是字段名和数量不一样。光敲这些重复的代码就得花去我们不少的时间,何况我们的机房收费系统还只是一个不大的项目。如果是一个较大的项目呢?

每一个事物有优点必有缺点,分层架构的缺点主要有以下两点:

        1)、分层也一样,如果不分层,很多业务可以直接访问数据库,获得数据,而现在却必须通过中间层来访问,从而降低了系统运行性能。

        2)、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。

     不过分层架构的利大于弊。

2.结束语

    在软件体系架构中,分层式结构是比较容易懂的也是最常见的一个结构,而三层结构又是分层结构里面最常见的一种分层方式,也是Microsoft推荐的分层式结构。分层式结构还有其他模式例如MVC,了解和熟悉三层架构之后,学习其他架构会显得比较容易,让我们先从最容易理解的学起。

时间: 2024-10-11 09:12:09

数据库连接的三层架构的相关文章

搭建连接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

三层架构1

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

浅谈三层架构

三层架构并不是MVC,MVC是一个很早就有的经典的程序设计模式,M-V-C分为三层,M(Model)-V(View)-C(Control).而web开发中的三层架构是指:数据访问层(DAL-DatabaseAccessLayer),业务逻辑层(BLL-BusinessLoginLayer),以及用户界面层(UI-UserInterface,实际就是网页后台的具体调用BLL层).这个是基本概念.曾经我以为三层架构就是在AppCode中,分为三个大类与若干小类,各司其职.在经过一番洗礼后,才发觉多么

企业级应用框架(三)三层架构之数据访问层的改进以及测试DOM的发布

在上一篇我们在宏观概要上对DAL层进行了封装与抽象.我们的目的主要有两个:第一,解除BLL层对DAL层的依赖,这一点我们通过定义接口做到了:第二,使我们的DAL层能够支持一切数据访问技术,如Ado.net,EF,linq To Sql,这一点我们实现的不是很完美,仍有很大的改进空间,本文将加以改进. 在此之前我们来看一下我们最新的dom(PS:经过两天的赶工,我们的dom已经相对成熟,其中BLL层已经被我高度抽象化了,并且引进了业务上文文的概念:DAL层除了具体的技术实现尚为完成,其他方面已经相

三层架构下实现用户登陆C#

上篇文章讲到三层.接下来就通过一个实例具体的看怎么用三层实现用户登陆界面. 一.Model实体(LoginModel): namespace LoginModel { //添加类:UserInfo Model实体作用:封装数据,使数据在三层中传输 ,更倾向于业务逻辑层 public class UserInfo { //定义用户属性 public int ID { get; set; } public string UserName { get; set; } public string Pas

业务的扩展:三层架构

1.看到标题首先要想到三层架构是什么?     三层架构其实为: ①表示层:负责接收用户的输入,将输出呈现给用户,          以及访问安全性验证,并对输入的数据的正确性.          有效性及呈现样式负责,但对输出的数据的正确性          不负责. ②业务逻辑性:负责系统领域业务的处理,负责逻辑性数据的生产.              处理及转换.对所输入的逻辑性数据的正确性及              有效性负责,但对输出的逻辑性数据及用户性数据的            

三层架构与四大天王之——改

今天让我们一起来认识一下"四大天王"中的最后一个--修改数据库中的信息.为什么要把修改放在查询之后呢?这是因为要想修改首先就得将信息查出来,所以查询是修改的前提. 1.UI层 首先查询要修改的记录,如"王菲"(代码见上篇文章) 然后将密码"123456"改为"5201314" 确认修改的代码如下 private void button2_Click(object sender, EventArgs e) { Login.Mod

三层架构实例

三层架构实例 一.新建立一个三层架构体系结构解决方案 原文://http://blog.csdn.net/xjc1278003262/article/details/8867177 新建一个空白解决方案.然后: 1.“添加”-“新建项目”-“Visual C#”-“类库”-“称:LoginBLL”-“业务逻辑”(业务层,下简称B层)如下图: 2.“添加”-“新建项目”-“Visual C#”-“类库”-“名称:LoginDAL”-“数据访问”(数据层,下简称D层)如下图: 3.“添加”-“新建项

JavaWeb编程(五)三层架构

1.JNDI:java命名目录接口,通过一个名称获取到应用服务器下创建的资源. 2.tomcat中配置数据源对象以及使用JNDI获取数据源对象步骤: a).tomcat下配置数据源:tomcat目录\conf\context.xml中配置 <Resource name="jdbc/mydb" auth="Container" type="javax.sql.DataSource" maxActive="1000" max