【机房收费系统】磕磕绊绊中总结

每一个庞然大物来之前,总是心里不自觉的退缩一下。这一次,把我自己当成了奥特曼。

命名规范文档

最先看的是这个。有了标准后,才能见其名 知其意。

数据库设计

敲完三层登陆小demo,这一次重新着手,从ER图开始设计数据库。又翻了翻自考的书,把机房收费系统中可能抽出来的实体画出来 又开始一个个找联系。转换为逻辑结构。可能根据业务的不同,表和主键会稍微有些变化。比如,是否允许一个学生有多张卡,退卡之后原来的卡号还能否再注册,退卡是是否要删除记录等修改或添加一些辅助标记字段,也涉及到一些其他问题,例如添加用户 是谁添加等 要不要做记录。 基本按三范式来的,然后想到一些涉及到多表的,又加了一些视图。

画图

之后,画图的时候,一开始自己想 抽象工厂和映射怎么加?怎么听说还有外观?sqlhelper又是什么?虽然大家都说网上这种资料一大筐,可是,总觉得学完了设计模式,应该自己试着加加。又憋了一小阵,也无从下手,心情不美丽了。师傅给指导了两次才开始才开始转变自己的想法,开始站在巨人的肩膀上。这个阶段开始学着使用EA,开始理解着各层的协作配合。从网上查,看人家的 学着理解。外观按功能分,其他按表分类,一开始BLL层的时候,还加这某视图类,说明自己当时还不够通。

实现中

把之前听说的抽象工厂和外观,sqlhelper都用上 ,实现了一个传说中的7层架构。又用断点调试理了理思路。想着一想,七层无非还是三层。一涉及到新的用法就要上网查,不过相似的功能也越理越明白了。

实现中也没有一帆风顺,不过就像当初捣鼓数据库的时候,也是出了很多错。现在弄明白了,就再也拌不住自己了。

关于传实体还是传其他

一开始,听说不让用datatable。于是我在敲之前,先用datatable做了一个demo。也就对所说的解耦,各层相互调用不方便有了初步了理解。后来就重点在理解传实体了。现在各层之间,有返回Boolean的情况,也有参考他人的将datatable转换到list中。

当涉及到查询视图,返回两个或多个实体的属性时,想到了以下几种方法。

一:最不用动脑子的

就是分别查,然后分别赋给每一个实体。只是 代码就多了。

二:做一个联合实体类。属性包含两个基础实体的所有属性。我想,如果是用C++,是不是来个多重继承也不费事。可是vb.net不支持哇。

三:超哥告诉我的,可以在参数中改为byref。返回一个实体,隐含传另一个实体属性。或干脆隐含传两个实体。

不过也有遇到了还不知道怎么解决的,比如注册时,外观判断学号是否存在,判断卡号是否存在,那返回的就有3中情况。这会返回整型不合适吧?若是返回两个实体类型,那外观是不是又是多余的了

关于数据库

数据库字段和实体属性不对应

再查询语句中给数据库字段还可以起小名。例如 select userName as strUserName

“未将对象设置引用到对象的实例。”

先看看是不是提示出 除接口之外的类型是不是在实例化的时候 没有用“new”,另一种情况,看看数据库的操作语句能不能在数据库中操作。(当然还有最常出现的如果还不行,再转换实体类处加断点,
再看看是不是由datatable到list的转换出了问题。)

必须声明标量变量

查询了数据库中不存在的字段

截断字符

由于数据库中数据超过了定义的空间大小

小经验

再哪里设置断电 是一件有意思的事。

更改后的文件,最好重新编译一下,不然有时候还是执行的修改前的解决方案。

比如 对非共享成员的引用 要求对象引用。也是很常见的。

后来也试着在EA中,生成实体代码。至少少了一点重复性的工作,有木有。

*************************************机房进行中,总结积累中。待续*************************************

但是,我常常很纠结,觉得直接拿过现成的是不是太水。后来跟其他同学交流后改变了我当时的想法,这个阶段囫囵吞枣,先从模仿开始,多去做 在做的过程中去理解。是应该这样的么?

【机房收费系统】磕磕绊绊中总结,布布扣,bubuko.com

时间: 2024-10-13 16:07:19

【机房收费系统】磕磕绊绊中总结的相关文章

机房收费系统——转换list泛型时,字段名称不对应出现问题

由于之前对泛型研究了一番,所以就开始尝试着在机房收费系统重构中加入了泛型的使用.但是到了做学生查看余额这个功能的时候,还是按照之前的方法做的,但是在加载数据的时候班级这个框就没有显示出来--然后我就纳闷了. 我就去看这一段的代码,发现也没什么问题呀,都是在赋值呀,然后我就单步调试,也是走了那一句赋值的代码,但是没有值,为什么其他的都Ok,所以我就很纳闷,因为这个地方我用到了视图,我以为是视图出了问题,然后就去查我的视图.但是我想了一下,视图就是一个虚拟的表,只要建好了,跟直接调数据库表中的东西是

机房收费系统之存储过程

在做机房收费系统过程中,为了减少代码的工作量,有人用到了存储过程,那么,什么是存储过程,使用存储过程有什么好处和缺陷呢? 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程. 数据库存储过程的实质就是部署在数据库端的一组定义代码以及SQ

机房收费系统——视图的运用

对于视图在一年前的数据库学习和自考中就学到了,那时只是理论学习,这次在机房收费系统重构中亲自实践,加深了对视图的理解. 定义: 从数据库系统外部来看,视图是用户从一个特定的角度来查看数据库中的数据.从数据库系统内部来看,视图是由SELECT语句组成的查询定义的虚拟表,在数据库中并不真实存在.好比在提高班有学术部,安全部,纪律部等等,这些部门就是视图,需要给哪个部门开会就通知哪个部门.这些部门的人都是提高班各个期的(基本表),并且每个人都是独一无二的. 操作: 由于视图只是存储的SQL Selec

机房收费系统——存储过程的运用

在机房收费系统中的"结账"部分,要求选中操作员然后点击"结账"button后,将该操作员办理的注冊.充值.退卡业务的状态改为"已结账".注冊.充值和退卡分别记录在三张表中,假设依照传统的办法,须要在DAL层写三个函数,分别update每张表的isCheck为"true",且不说写多少代码,费多少力气,这样还减少了系统的执行速度,easy出错. 在个人版机房收费系统重构中,我们不是像曾经那样仅仅要功能实现就可以,而是变"

机房收费系统个人重构版:软工文档中那些图

[前言]    图.提到这个字的时候脑海中就会出现许很多多的图像,它的重要性相信大家都明确.相比于文字来说它更生动形象正好符合人类大脑的记忆规律.非常多人也知道动画片制作原理也是用一张张图片仅仅只是转换的速度足够快而已,另外大家所熟知的思维导图等等.下面咱们这里介绍的是软件project中涉及的图! [图] 在上一篇博文<机房收费系统个人重构版:透过文档谈文档驱动开发>介绍了软工各个阶段的文档中都该有什么图.可是没有具体具体介绍各种图,在结束整个机房重构后,深感文档是整个开发的精髓.而图又是文

机房收费系统中遇到的SQL语句问题

个人版机房收费系统正在进行中,遇到了几个有关SQL语句的问题. 1.sum函数的使用: 在结账部分,要求出某个表中某一列的和.在第一次机房系统中,我不知道sum函数的存在,很傻很天真地用循环一个一个往上加.下面以求所有卡中余额的和来说说sum函数怎么使,SQL语句为:select sum(cash)from T_Card.这个格式不是固定的,可以根据需求更改,比如求多列的和:select sum(列名1),sum(列名2)...from [表名] where....查询出来的结果只有一行,如果只

机房收费系统中“事务”的应用

做机房收费系统已经接近尾声了,随着系统业务的完善.对各个过程功能要求的提高,对代码的要求就变的愈加苛刻,很多时候实现一个功能需要对数据库中很多的表进行操作,而这些操作都是在这个功能实现了的前提之下才应该去执行的,所以,如果我们单纯地实现功能,而不去考虑他们之间的因果关系,就会出现在某一个功能中部分操作完成了而其他的操作由于由于终端并没有完成,最终,就会对我们的数据造成破坏,使系统的性能大大降低,严格地说,这样的系统是失败的.不合格的.举例来说,如果你在存钱的时候由于供电影响系统终止,而你已经把钱

机房收费系统———如何将MSFlexGrid中的数据导入到Excel中

机房收费系统进行了一段时间了,虽然说大体上跟学生信息管理系统一样,不过也有不一样的地方.比如说报表.如何将MSFlexGrid中德数据导入到Excel中等等.这些东西原来没有接触过,第一次接触难免有些陌生.这些问题困扰了我好长-时间,一看到它头都大了.不过,提高班名言——不将就是发现的源动力.本着这一原则,慢慢的攻克了这些问题. 机房收费系统中好几个地方需要将MSFlexGrid中德数据导入到Excel中,这是在学生信息管理系统中没有的功能.首先,首先需要在vb里面引用我们所需要的对象:Micr

机房收费系统之vb中的MSFlexGrid控件中的数据导出为Excel的步骤

MSFlexGrid控件中的数据导出为Excel表格的方法有很多,我觉得它们都大同小异,总起来说就是vb先调用Excel,然后再将数据导入进去.在数据导出的过程中,我的收获如下,下面是我把MSFlexGrid控件的数据导出到Excel中的步骤. 1 首先确保 在工程中引用Microsoft Excel 14.0 Object Library   和  Microsoft ActiveX Data Objects 2.6 Libray 代码部分, <span style="font-size