《图书管理系统》C# 设计指导书 V2.0 2013.8.1 — 9.20 LSH
4. 添加新项目BookManage.BLL
操作与BookManage.Model类似,项目名称设置为:BookManage.BLL。VS .NET编译后产生BookManage.BLL.dll文件。至此,解决方案参见图5。
图5 图书管理项目解决方案
5. 设置启动项目和项目引用关系
在解决方案中设置BookManage为启动项目(“BookManage”右键菜单“设为启动项目”)。 项目引用关系如表2所示。如BookManage.BLL项目引用DAL和Model,其设置方法:解决方案中项目“BookManage.BLL”的右键菜单“添加引用”,并按图6进行设置。
表2 项目引用关系。 BookManage BookManage.BLL BookManage.DAL BookManage.Model BookManage BookManage.BLL BookManage.DAL BookManage.Model
- √ - × √ - √ √ √ -
图6 给BookManage.BLL项目添加引用
16 / 46
《图书管理系统》C# 设计指导书 V2.0 2013.8.1 — 9.20 LSH
6.4 类总体设计(迭代1)
实体类、数据访问层类、业务逻辑层类、表示层窗口类的初步设计如表3。 表3 实体类、数据访问层、业务逻辑层的类设计 层 实体类模块 (Model) 类名 ReaderType Reader Book Borrow 数据访问层 (DAL) ReaderTypeDAL ReaderDAL BookDAL BorrowDAL SQLHelper 业务逻辑层 (BLL) ReaderTypeAdmin ReaderAdmin BookAdmin BorrowAdmin UserAdmin 表示层 (UI) frmLogin frmMain frmReader … 说明 读者类型实体类 读者实体类 图书实体类 借阅记录实体类 读者类型数据表访问类(插、删、改、查、存储过程等) 读者数据表访问类(插、删、改、查、存储过程等) 图书数据表访问类(插、删、改、查、存储过程等) 借阅数据表访问类(插、删、改、查、存储过程等) 微软提供的对SQL Server数据库进行访问的通用类 读者类型管理类,实现插、删、改、查等信息维护操作。 读者管理类,实现借书证办理、变更、补办、挂失、解除挂失、注销等用例中的各种系统操作。 图书管理类,实现图书管理各用例中的系统操作 借阅管理类,实现借书、还书、续借等用例中的系统操作。 用户管理类, 登录窗口类 程序主窗口类,含菜单、工具栏、状态栏等 读者管理窗口类 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所示。
17 / 46
《图书管理系统》C# 设计指导书 V2.0 2013.8.1 — 9.20 LSH
图7 添加C#代码类文件ReaderType.cs
表字段映射为实体类属性的基本方法(VS 2005及以上版本)如下:
private string _rdTypeName; public string rdTypeName {
get { return _rdTypeName; } set { _rdTypeName = value; }
}
而在VS 2008及以上版本中可简化为:
public string rdTypeName { get; set; }
表4 SQL字段类型与实体类属性类型的映射关系 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 C#实体类设计属性 string int long DateTime System.Single, System.Decimal float System.Boolean System.Byte[] bool Byte[] 在VS 2008及以上版本中ReaderType类的实现代码如下: 18 / 46
《图书管理系统》C# 设计指导书 V2.0 2013.8.1 — 9.20 LSH
在VS 2005(含2008及以上版本)中ReaderType类的实现代码如下:
19 / 46
《图书管理系统》C# 设计指导书 V2.0 2013.8.1 — 9.20 LSH
另外,可添加复制构造函数,如下:
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
类
20 / 46
在BookManage.DAL项目中添加SqlHelper.cs文件,该类是微软SqlHelper类(参见文件“参
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库《数据库课程设计》任务与指导手册2013(V2.0) - 图文(4)在线全文阅读。
相关推荐: