三层架构课件_第1页
三层架构课件_第2页
三层架构课件_第3页
三层架构课件_第4页
三层架构课件_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章数据库应用使用三层结酸数据库应用目标使用三层结构开发项目体会到使用三层结构开发的优势为什么需要三层结构顾客饭店米购员服务员丄服务员只管接待客人丄厨师只管烹炒客人要的美食 丄采购员只管按客人需求采购肉,海鲜,蔬菜*他们各负其责共同协作为客人提供美食匕_丿为什么需要三层结构为什么需要三层结构离职、请假离职、请假务员代替其他服4离职、请假J 一为什么需要三层结构为什么需要三层结构服务员/表示层米购员业务逻辑层 数据访问层为什么需要三层结构:登录实现部分(LoginForm类)代码 我们从三方面对登录实现部分代码进行分析1、界面控件数据绑定实现2、逻辑判断实现3、数据库访问实现首先我们看一下界面

2、部分的关键代码为什么需要三层结构-为什么需要三层结构-界面层实现登录nprivate void btnLogln_Click(object sender, EventArgs e)IIif (Validatel nput()调用用户验证方法isValidUser = ValidateUser(cboLoglnType.Text5txtLoglnld.Text, txtLoglnPwd.Text, ref message);如果是合法用户,显示相应的窗体II为什么需要三层结构public boolValidatellser(sJ.tring loginType, string loginld,

3、string loginPwd, ref string message)int count = 0;數据库查询的结果逻辑判断实现bool result = false; 返回值,是否找到该用户/查询是否存在匹配的用户名和密码士二if (loginType=管理员”)为1断是否是管理员用户 数据访问实现代码 else if (loginType = ”学员”)用户登录实现方法s)数据访问实现代码return result;public boo ValidateUser(string loginType, string loginld, stringloginPwd, ref string mes

4、sage)II:Z/查询是否存在匹配的用户名和密码管理员信息数据访问查询用sql语句:.Irstring sql = string Tor mat(X%SELECT COUNT(*) FROM Admin WHERE Loglnld=0AND LoglnPwd=1m, txtLoglnld.TexttxtLoglnPwd.Text);stritig sql = string.Format(SELECT COUNT(*) FROM Student WHERE Loglnld=,0F AND LoglnPwd=v1 vvtxtLoglnld, txtLoglnPwd);通过分析我们得到结论是?为什

5、么需要三层结构N结论是:1、数据库访问和用户类型判断逻辑放在一起实现2、用户界面层直接调用数据访问实现3、整个系统功能放在同一项目中实现从结论可知,我们开发的两层结构应用系统有哪些局限性?为什么需要三层结构为什么需要三层结构两层结构:用户界面 业务逻辑数据访问J数据库当数据库或用户界面发生改变时两层结构软件模型要重新开三层结构:业务 逻辑J1数据访问数据三层结构软件模型当数据库或用户界面发生改变时不需要重新开发,只做fsj单调整即可什么是三层结构负责关键业务的 丿处理和数据传递实现数据库访问为用户提供 丿交互操作界面V什么是三层结构什么是三层结构表示层:为用户提供一种交互式操作界面什么是三层结

6、构业务逻辑层switch (type)case ”管理员”:loginPwd = GetAdminLoginPwd(loginlD); break;case ”学员”:loginPwd = GetStudentLoginPwd(loginlD); break;IIV是表示层与数据访问层之间的桥梁,负责数据处理、传递。数据访问层/conn.Open();SqlDataReader obj Reader = objCommand.ExecuteReader(); if (objReader.Read()studentlist.Add(objReaderMLoginPwdM); studentlis

7、t.Add(objReadervvUserStateldvv);objReader.Dispose(); conn.Close();II实现对数据的保存和读取操作什么是三层结构三层之间依赖关系什么是三层结构三层之间的数据传递方向如何搭建三层结构如何搭建三层结构以解送近垂卫徑choolFE (3 T项目) *) 旦 Properties|白 L引甩 jQ Q Sy囂tm 匸J System. DaA a J System. Deployment -J System .Drawing: -J System. Windows. Forms -J System. XmlFortnl. csflySch

8、oolMySchoclBLL1 S-省 Program, cs白 jEBSSEEHIE)- Proper tiesI LJ-引 MyScholDALQ SystemSystemDa.taQ System. Xml 習 C“5S1. C5 白朗ySchoolDAL由国 Properties 甲 4引用筍 Classi, cs如何搭建表示层、 业务逻辑层、数据 访问层?如何实现各层之间 的相互依赖?要掌握这一切,我们将整个实现过程分为以下步骤搭建三层结构步骤1搭建表示层(创建一个Windows应用 程序)2、搭建业务逻辑层(类库)3、搭建数据访问层(类库) 4、添加各层之间的相互依赖现在我们打开V

9、S IDE环境逐层搭建三层结构搭建表示层1、文件9新建9项目:创建一个新项目 2、在弹出的“新建项目“窗口中,选择Windows应用程序新建取目說项目类型V*i suaJ匡 Visual Basic 由 Visual C 囱 Visual J Visual C卄 分布式系统解决.由苴他项目类型 田测试顶目择言类 选语种输入项目名称MySchoolL名称 ):NySchool位置:我的模板P: work产品开发在HETf俚氷S3类库Wiitdcws 控 件库辰IExcel工作Outlook 外 接程序:Windows 应1用程序控轉用Crystal Reports.程序的项目二创建解决方案X一注

10、縮絆拓片啓 E /统 200F- 12-19V chap t选择项目 生成路径解决方案名称逊):|MySchoolProV创建解决方案的目录)厂添加到源代码管理搭建业务逻辑层1、文件9新建9项目:创建一个新项目确定 j 取消 I2、在弹出的“新建项目”窗口中,选择类库确定 j 取消 I确定 j 取消 I頂类型Q;商业智皑项目:K Visual Basic Vi suiA C# 刁小血ItC“分布式系统解决方奚Lt.茎他项目类却测试顶目詡设备应用俣 序Yindoirs Q 用程序Yi sval Studio(!项目类型晶 #1计注左制申应用 Cxy叭心 程序 Reports.项目名称:MySch

11、oolE名琢妁:rssay.徹方秦:|新補决方実chod的稷板选择|心W瞅产品齐护在.WET框架下幵发三层结1 “添入解决方案”立浏览I厂创瞬决方宪的目毅剧确定 j 取消 I搭建数据访问层1、2、文件9新建9项目:创建一个新项目在弹出的“新建项目“窗口中,选择类库業頊目|解决方案资派管理器-IMySchool商业智能项目:K Vi suU BcicE ViTud, C# 小凡xl对疗 Yisual C卄n,分布式系貌解决王菽他项目発S3 $测试项目项MyS解送方墨坯Chglhd(3h-逐1IIBSS33JSI汁也 Properties申甸引用B 圉 Forml. csForml.Desi gn

12、er.构 Frogram. C5-.j3耳 空 Properties 审也引用Cl轻宜$1. ceMyS choolMySchoolBLLySchoolDAL时.岂 Properties费字引用筍 Classi, cs个项目)C5如何将三层中各自独立的项目产生依赖添加各层之间的相互依赖添加业务逻辑层对数据访问层的依赖与此类似为什么需要实体类解析实体对象构建实体对象或集合为什么需要实体类数据库DataSet它不具备00的优点实现数据检索比较繁琐、易出错它使数据结构暴露在业务逻辑层和表示层解析实体对象构建实体对象或集合为什么需要实体类解析实体对象构建实体对象或集合为什么需要实体类为了消除以上局限性

13、我们需要使用实体类解析实体对象构建实体对象或集合为什么需要实体类解析实体对象构建实体对象或集合为什么需要实体类表示层表示层后台代码业务逻辑层用户谓率处理窗体数据访问层传递参数谓求数据操作展示数据构建实体对象返回返回解析实体对象 二 数据库 调用存储过程返回行集解析实体对象构建实体对象或集合为什么需要实体类金从OOP思想考虑它是完全受控制的对象 它具有面向对象的基本特征 它可以自定义行为它消除了关系数据和对象之间的差异它为我们在关系数据库和对象之间架起一座桥梁解析实体对象构建实体对象或集合什么是实体类Ada inClass管理员信息 对应的实体类-字段/ ad/Tiinilie id/ logi

14、iJd丿 logiuPvdJ sex0 Ji性绅 AdffiiriNajTi 曹Id 爭 Lo?irJd 省 LoginPwd 雪Sex曰方法7 Admin简单地说就是描述一个业务实体的类,例如:管理员信息三层结构中的实体类三层结构中的实体类醞創建学扇用尸韜注册信息用户名 密码厂确认密码厂状态活动厂非活动用户基本信息姓名r学昌性别厂男年级I保存Jnl xl-字段-鬆消匚吊ObGradeClassStudentClass三字段-Bt:2dsex三层结构中的实体类:业务逻辑层如何使用实体类三层结构中的实体类三层结构中的实体类体业务逻辑层三层结构中的实体类匚:吊“b三层结构中的实体类:数据访问层如何

15、使用实体类tudeiLtClass-字段GradeClassI字段沢: 二属性-方法assClass字段/ cl assld V*/ cl assffanie、 gr-ielD属性鸾 Classid宜 Classffajne 皆 GradelD -方法数据库匚:吊“b实现业务实体层实现业务实体层o 新增项目MySchoolModels添加其它项目对实体项目的引用添加数据表对应的实体类EI编写实体类设计用户界面实现数据访问层实现业务逻辑层实现表示层数据绑定在解决方案“MySchoolPro上单击右键 选择“添加” 9新建项目商业智能项目 ST; Vi spal asi r S- Vi s-ual

16、 C# s- V1 sual J# 宙 Visual C+* A苴他项目类型 +测试项目选择 语言 种类项目类型饭d):Vi su&l S ttidi o 已安3HWindows 应 用程序类库Windows 控 件库设备应用程 序Exeel工作 簿Outlook 外 接程序5控制台应用 程序CrystaiReports.DDDD0-6-0-0-输入项目名称MySchoolModels 二NySchoclModels名称: 位置龟):选择项目 生成路径D:产品开发在HET框架下开发三层结构数据库应用系统ch3M3FFT谍.浏览I确定取消实现业务实体层在“MySchoolModels项目上单击右

17、键选择“添加” 9新建项金依次添加Admin.cs、Class.cs、Grade.cs弭编写实体类SJ解决方MySchoolFro, (4个项日) MySchool节国 MySehooIBEL王自 Properties由 9引用: :| CLassManger. cs- -Hj GradeMaxiager. cs-也 LogirJlaxiager. cs也 Stu dent N=inger cs目 扇 MySch.o-?lDAL t Jdj Properties| 喧引用AdminService.cs“ 包 ClassService. cs“ 當 GradeService. cs 枣 Stu血

18、ntS&Fvig cs7S choollodLels实体类S-目王自 Properties&曰引用AajTiin. csClass, csGr?de csStudent, cs它是业务的基础.数据传递的载体,它与其他项目的依赖关系是什么?实现三层对业务实体的依赖表示层丿业务实体_业务逻辑、1J厂、数据访问层丁2、按需求添加所需窗体,并编辑窗体设计用户界面1、在“MySchooP项目上单击右键选择“添加” 9新建项在“添加新项“对话框中选择” Windows窗体”3、实现数据访问层1在“MySchoolDAL项目上单击右键选择“添加” 9新建项2、在“添加新项“对话框中选择”类”运加BySchoolBALD 0-0-Sq :Visn&l Studi o已安装的模扳接口S代码文件用户控件自定文控件M 曲ffeb自定文控件IISQL数据库数据集SIWindows 窗XML文件XML架构XSLT文件圍继承的窗体BHTML 页类名称组件类位图文件zstal 报光标文f新增类有:一AdminService.csStudentService.cs 取消 i如何实现高效的数据访问呢?我们需要掌握using语句的使用实现数据访问层:用户登录1在数据访问实现类中引用业务实体项目命名空间2、实例化SqlConnection对象,实现数据库连接3、实例化SqlCommand对象,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论