好文档 - 专业文书写作范文服务资料分享网站

数据库课程设计任务及指导手册2013V2.0 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

. BookManage.DAL BookManage.Model - √ -

图6 给BookManage.BLL项目添加引用

6.4 类总体设计(迭代1)

实体类、数据访问层类、业务逻辑层类、表示层窗口类的初步设计如表3。 表3实体类、数据访问层、业务逻辑层的类设计 层 实体类模块 (Model) Reader Book Borrow 数据访问层 (DAL) ReaderTypeDAL ReaderDAL BookDAL BorrowDAL SQLHelper 业务逻辑层 (BLL) ReaderTypeAdmin ReaderAdmin BookAdmin BorrowAdmin UserAdmin 表示层 ..

类名 ReaderType 读者类型实体类 读者实体类 图书实体类 借阅记录实体类 说明 读者类型数据表访问类(插、删、改、查、存储过程等) 读者数据表访问类(插、删、改、查、存储过程等) 图书数据表访问类(插、删、改、查、存储过程等) 借阅数据表访问类(插、删、改、查、存储过程等) 微软提供的对SQL Server数据库进行访问的通用类 读者类型管理类,实现插、删、改、查等信息维护操作。 读者管理类,实现借书证办理、变更、补办、挂失、解除挂失、注销等用例中的各种系统操作。 图书管理类,实现图书管理各用例中的系统操作 借阅管理类,实现借书、还书、续借等用例中的系统操作。 用户管理类, 登录窗口类 frmLogin . (UI) frmMain frmReader … 程序主窗口类,含菜单、工具栏、状态栏等 读者管理窗口类 6.5 Model层实体类设计

在BookManage.Model项目中添加4个实体类:ReaderType、Reader、Book、Borrow,分别对应4个数据库表。实体类的属性与数据库表结构保持一致(名称、类型);实体类应尽量简单,除了实体对象的复制与比较等方法外,不宜添加过多方法。

其实实体类就是实现ORM。

ORM Object Relational Mapping 对象关系映射,是为了解决面向对象的类,与关系数据库的表之间,存在的不匹配的现象,通过使用描述对象和关系之间映射的元数据,在程序中的类对象,与关系数据库的表之间建立持久的关系,用于在程序中描述数据库表。本质上就是将数据从一种形式转换到另外一种形式。

ORM是一个广义的概念,适应于关系数据库与应用程序之间的各类数据转换,目前有许多自动转换工具可用,如codesmith 等,也可手工书写实体类代码来实现ORM。 1. ReaderType

在Model项目中添加新建项:C#代码类ReaderType.cs,如图7所示。

图7 添加C#代码类文件ReaderType.cs

表字段映射为实体类属性的基本方法(VS 2005及以上版本)如下:

privatestring _rdTypeName; publicstring rdTypeName {

get { return _rdTypeName; } set { _rdTypeName = value; }

}

而在VS 2008及以上版本中可简化为: publicstring rdTypeName { get; set; }

..

.

表4SQL字段类型与实体类属性类型的映射关系 SQL Server字段类型 nchar, nvarchar, text int, smallint numeric(12,0) datetime Float, money bit image DataTable中类型 System.String System.Int32, System.Int16 System.Decimal System.DateTime System.Single,System.Decimal System.Boolean System.Byte[] C#实体类设计属性 string int long DateTime float bool Byte[] 在VS 2008及以上版本中ReaderType类的实现代码如下:

在VS 2005(含2008及以上版本)中ReaderType类的实现代码如下:

..

.

另外,可添加复制构造函数,如下:

public ReaderType(ReaderType rt) {

this.rdType = rt.rdType; ..

.

this.rdTypeName = rt.rdTypeName; this.CanLendQty = rt.CanLendQty; this.CanLendDay = rt.CanLendDay;

this.CanContinueTimes = rt.CanContinueTimes; this.PunishRate = rt.PunishRate; this.DateValid = rt.DateValid; }

2. Reader3. Book

类(略)

类(略) 类(略)

4. Borrow

6.6 DAL层类设计

除SqlHelper外,每个数据库表对应一个DAL层类,主要实现该表的插删改查操作。 1. SqlHelper

在BookManage.DAL项目中添加SqlHelper.cs文件,该类是微软SqlHelper类(参见文件“参考资料03 微软的SQLHelper类(含完整中文注释).cs”)的简化版(有源码提供)。

SqlHelper类主要包括的成员函数有:打开数据库连接、关闭数据库连接、执行SQL语句、执行存储过程等。

表5 SqlHelper类(简化版)成员 1# privatestaticstring _strConnection = \Source=LSH-SL400\\SQLSERVER;Initial Catalog=Library;User ID=BookManage;Password=123;\; <成员属性> -连接SQL Server的字符串(常量)。 -- LSH-SL400\\SQLSERVER为服务器名称,可在SQL Server Management Studio的“已注册服务器”中查看(菜单:“视图”->“已注册服务器”)。 -- 需修改为自己的连接。可手动修改,或可采用MS VS的服务器资源管理器得到(菜单:“视图”->“服务器资源管理器”,“数据连接”->“添加连接”)。 2# 3# 4# 5 privatestaticSqlConnection conn = newSqlConnection(_strConnection); <成员属性> -SQL Server数据库连接对象(常量); privatestaticvoid OpenConn() <成员函数> -打开数据库连接 privatestaticvoid CloseConn() <成员函数> -关闭数据库连接 publicstaticint ExecuteNonQuery(string sql) <成员函数> -执行非查询的SQL语句,返回受影响的行数 -- sql指定要执行的SQL语句, -- 例:sql = \; 6# publicstaticint ExecuteNonQuery(string sql, SqlParameter[] parameters) <成员函数> -执行非查询的SQL语句(带参数),返回受影响的行数 -- 参见:6.6-2中的ReaderTypeDAL.Add() 函数代码 ..

数据库课程设计任务及指导手册2013V2.0 - 图文

.BookManage.DALBookManage.Model-√-图6给BookManage.BLL项目添加引用6.4类总体设计(迭代1)实体类、数据访问层类、业务逻辑层类、表示层窗口类的初步设计如表3。表3实体类、数据访问层、业务逻辑层的类设计层实体类模块(Model)ReaderBookBorr
推荐度:
点击下载文档文档为doc格式
3t22g81dco81m9s40mcz3j4le87moy00jax
领取福利

微信扫码领取福利

微信扫码分享