应用开发-数据库通用类的设计C从入门到精通

上传人:tia****nde 文档编号:246871918 上传时间:2024-10-16 格式:PPT 页数:39 大小:294.99KB
返回 下载 相关 举报
应用开发-数据库通用类的设计C从入门到精通_第1页
第1页 / 共39页
应用开发-数据库通用类的设计C从入门到精通_第2页
第2页 / 共39页
应用开发-数据库通用类的设计C从入门到精通_第3页
第3页 / 共39页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,第 15 章应用开发数据库通用类的设计,由于系统中对于数据库操作都需要处理连接字符串、创建连接、执行查询、更新等通用操作,为了提高代码的复用性,在软件开发时一般都创建数据库通用类完成数据库的通用操作。本章介绍了流行的三层体系架构的概念、利用LINQ to SQL自动创建数据库通用类的方法和利用数据库通用类操作数据库的简单例子。,系统分析,数据库分析和设计,系统设计,运行系统,在我的WinForm应用中应用本系统,开发过程常见问题及解决,系统分析,数据库分析和设计,系统设计,运行系统,在我的WinForm应用中应用本系统,开发过程常见问题及解决,15.1 系统分析,使用ADO.NET访问数据库时,每次操作都要设置数据库连接connection属性、建立连接、使用SQLcommand和进行事务处理等,比较繁琐且有很多重复操作。项目开发中一般创建数据库通用类把这些繁琐的、常用的操作封装起来,以更方便、安全地使用ADO.NET。,15.1.1 三层体系结构,目前,流行的项目多采用三层体系结构。三层体系结构就是在表示层(界面层)与数数据访问层之间加入一个中间层,叫做业务逻辑层,一般将业务规则、数据访问、合法性校验等工作放到中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过中间层与数据库进行交互。,典型的三层结构包括表示层、业务逻辑层和数据访问层,使用三层结构创建的应用系统,由于层与层之间的低耦合和层内部的高内聚,使得解决方案的维护变得更容易。,表示层:主要是指与用户交互的界面,用于显示数据和接收用户的输入,将用户输入的数据传递给业务逻辑层,一般不包含任何实际的业务处理,当业务逻辑层的数据发生变化时,表示层就会显示出更新的结果。表示层是应用程序提供给用户的操作界面,通常是包含Windows窗体或Web页面的Windows窗体应用程序或Web应用程序。,业务逻辑层:是表示层和数据访问层之间的桥梁,它代表应用程序的核心功能,负责处理数据层的数据,实现具体的业务逻辑。业务逻辑层通常为类库。,数据访问层:主要实现对数据的操作,将数据库中的数据提交给业务层,同时将业务层处理过的数据保存到数据库中。数据访问层可以访问关系数据库、文本文件或者XML文件,数据访问层通常为类库。,使用三层结构的目的是是使项目结构更清楚,分工更明确,有利于维护。三层架构就像员工、经理和董事长之间的关系一样,员工向经理汇报工作,经理汇总后再向董事长汇报,反之,董事长有什么命令传达给经理即可,再由经理通知每位员工。如果员工都直接找董事长,管理就会变得比较混乱。,三层架构搭建好之后,有一个问题需要解决,如何在三层之间传递数据呢?目前通用的解决方法有两种:一种是创建实体层使用实体层中的实体类在三层之间传递数据,另一种是使用数据集在三层之间传递数据。使用实体类的优点是实体类是一个比较容易控制的对象,它具有面向对象的基本特征,可以自由的向实体类中添加行为等;实体类消除了关系数据和对象之间的差异,便于操纵关系数据;能更好地发挥分层的作用,更好地进行复用和扩展,增强灵活性。,15.1.2 系统分析,系统分析是开发应用系统的关键,通过系统分析了解客户需要什么样的程序,系统需要完成什么功能。通过软件需求规格说明书描述系统的总体要求,并且作为各方面沟通的依据,也为下一步工作提供基准。系统开发人员要按照软件需求规格说明书完成相应的功能。,本节介绍的“数据库通用类”的设计来源于第24章的“人力资源管理系统”,重点介绍如何利用LINQ to SQL建立负责数据库操作的通用实体类。“人力资源管理系统”中的主要功能,如员工管理、考评管理、员工调动管理、培训管理、奖惩管理等都需要操作数据库,每次操作需要设置连接属性、建立连接、使用SQLcommand、事务处理等,非常麻烦并有很多重复工作,所以创建一个通用类,以更方便、安全地操作数据库。,“人力资源管理系统”采用三层架构模型。利用LINQ to SQL创建数据库通用实体类实现在三个模块之间使用对象进行数据传递和负责操作数据库。利用.NET Framework 3.5中新增的LINQ可以简化三层体系架构的搭建,在以往的系统中,数据访问层要访问数据字段,业务逻辑层要得到数据都需要通过数据访问层来实现,通常创建数据库通用类来辅助数据访问层操作数据库,数据库通用类可以看做单独的一层(数据模型层),LINQ可以自动生成数据模型层,产生一个dbml(Database Mark Language数据库描述语言)文件用来描述数据库信息,dbml文件是xml格式的文档,有了它可以快速生成实体类,实体类作为实体层负责对数据库操作。如下图的DataLinq层就是实体层和数据模型层的组合。利用LINQ创建的三层体系结构如下图所示。,系统分析,数据库分析和设计,系统设计,运行系统,在我的WinForm应用中应用本系统,开发过程常见问题及解决,15.2 数据库分析和设计,数据库设计是系统建设中非常重要的环节,合理有效的数据库设计对系统的性能至关重要,也是创建系统的基础。,15.2.1 数据库分析和设计,通过系统分析,“人力资源管理系统”数据库中包含如下多个表。在SQL Server 2008 或者SQL Server 2005中创建数据库HrManage和系统中用到的表。表和表结构如下。,1.考勤表(Attendance),用于存放员工考勤的信息。,列名,数据类型,是否空,描述,Aid,Int,No,标识列,编号,EId,Varchar(10),No,员工编号,Date,Varchar(10),Yes,统计月份,Result,Varchar(5),No,考勤结果,Details,Money,No,考勤内容,Remarks,Float,Yes,备注,2.奖惩表(RewardsInfo),用于记录员工的考奖惩信息。,列名,数据类型,是否空,描述,RId,Int,No,标识列,编号,Eid,Varchar(10),No,员工编号,Date,Varchar(12),No,日期,Type,Varchar(5),No,奖惩类型,Reason,Int,Yes,原因,Score,Int,Yes,奖惩分数,remarks,Varchar(200),Yes,备注,3.员工培训表(TrainInfo):记录员工的培训信息。,列名,数据类型,是否空,描述,Tid,Int,No,标识列,编号,Eid,Varchar(10),No,员工编号,Date,Varchar(50),Yes,日期,Course,Varchar(20),No,培训课程,Remarks,Varchar(200),Yes,备注,4.员工调动表(EmpTransfer),用于记录员工的调动信息。,列名,数据类型,是否空,描述,ETid,Int,No,标识列,编号,Eid,Varchar(10),No,员工编号,rawSection,Varchar(10),No,调动前部门,rawPost,Varchar(5),No,调动前职务,nowSection,Varchar(10),No,调动后部门,nowPost,Varchar(5),No,调动后职务,Date,Varchar(50),Yes,调动日期,reason,Varchar(20),No,原因,remarks,Varchar(200),yes,备注,5.员工信息表(EmployInfo),列名,数据类型,是否空,描述,EId,Varchar(10),No,标识列,员工编号,EName,Varchar(10),No,姓名,ESex,Varchar(10),No,性别,EBirthday,Varchar(20),Yes,生日,Ecard,char(18),Yes,身份证,Etel,char(13),Yes,电话,Eaddress,Varchar(30),Yes,地址,列名,数据类型,是否空,描述,Sid,Int,Yes,部门,Pid,Int,Yes,职务,Ewage,Money,Yes,薪水,EnterTime,Varchar(50),Yes,入职时间,State,Varchar(5),Yes,当前状态,Dimission,Varchar(50),Yes,离职时间,Resume,Varchar(200),Yes,简历,Remarks,Varchar(200),Yes,备注,Ephoto,Image,Yes,照片,6.职位表(PostInfo),列名,数据类型,是否空,描述,Pid,int,no,编号,自动编号,postName,Varchar(10),no,职务名,列名,数据类型,是否空,描述,Sid,int,no,编号,自动编号,SectionName,Varchar(10),no,部门名,7.部门表(Section),8.工资变动表(TransferWage),列名,数据类型,是否空,描述,TWid,int,No,编号,自动编号,Eid,Varchar(10),No,员工编号,Date,Varchar(50),Yes,调薪日期,rawWage,Money,No,原来薪水,nowWage,Money,No,调后薪水,reason,Varchar(20),No,原因,remarks,Varchar(200),yes,备注,15.2.2 数据库通用类的创建,本节利用LINQ to SQL创建一个DataLinq层来组织数据库通用类,DataLinq层包含一个DataContext类和若干实体类,其结构如下:,DataContext类:项目中的每一个 LINQ to SQL设计器将自动创建一个 DataContext类,用来查询数据库、检索数据记录和更新数据库操作的主要类,它包含了每一个表的属性。,实体类:LINQ to SQL为添加到设计器(.dbml文件)中的每一个表创建对应的实体类,这些实体类包含了强类型属性集合,映射到数据库中对应表的字段。LINQ to SQL使用这些实体类来生成数据操作的SQL脚本,同时,也可以创建实体类的实例,给实例赋值,然后在不同的层之间作为数据传输对象进行传递。,DataContext类中的实体类和属性直接映射到对应数据表和字段。缺省情况下,在DataContext类中,LINQ 使用继承抽象类 MappingSource 的 AttributedMappingSource 类来存放表和字段的映射信息,从数据库中检索记录和提交数据更新到数据库时需要这些映射信息。,利用Visual Studio 2008创建数据库通用类的步骤如下。,启动Visual Studio 2008,新建一个“类库”项目,名称为“DataLinq”。,单击菜单【项目】,【添加类】,选择【Linq to SQL类】,输入类的名称“HrDataLinq”。单击【添加】按钮后,系统将增加HrDataLinq类到项目中,并自动创建一个空白的设计器(.dbml文件),同时附有【服务器资源管理器】的链接,也创建相关的dbml.layout文件(XML文件)和designer.cs文件(DataContext类文件)。,打开【服务器资源管理器】,并建立到HrManage数据库的链接,然后导航到HrManage数据库,将数据库中的表拖放到设计器。最后,保存文件后就自动生成了包含相关的属性、方法的DataContext类和实体类。,单击【生成】-【生成解决方案】,数据库通用类和实体类就可以使用了。,自动生成的数据库通用类,DataContext,(类名是,HrDataLinqDataContext,)类图如下:,系统分析,数据库分析和设计,系统设计,运行系统,在我的WinForm应用中应用本系统,开发过程常见问题及解决,15.3 系统设计,自动生成的数据库通用类DataContext中的实体类和属性直接映射到对应数据表和字段。缺省情况下,在DataContext类中,LINQ 使用继承抽
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!