这次做机房收费系统的过程中,遇到的第一个问题就是工厂反射不成功。最后是通过询问同学解决的,这个问题大家用反射的人差不多应该都会遇到。
下面说下我在机房收费系统中的一些做法吧。
在做的过程中,不断完善,在D层,采用了三种方式来写。第一种是采用的常规传参方法,并没有用sqlhelper这个工具类。后来写着写着,就想着用下那个类,然后通过网上查资料和查阅博客,加入了sqlhelper这个类。发现这个类很强大。
在使用过程中发现commandtype这个属性,他的值里面可以选择sql语句或是存储过程,sql语句已经用了好多了,所以尝试了下存储过程。感觉存储过程其实就是将sql语句换了一个地方,我并没有用到存储过程返回值这一回事,但是在完善的时候,是肯定要用的——在读取服务器时间时,用存储过程返回一个值显然比返回一个表要好很多。
以上就是我在做D层采用的三种写法。
还有就是想说下我的窗体。在窗体方面采用了继承,也发现继承窗体会遇到的问题,通过网上查询也将这个问题解决掉了。
具体再细一点的就再说下我的组合查询吧。
我的组合查询是将字段、操作符、值以及查询关系设置成一个类,并且重写构造函数进行赋初值(在设计模式之模板方法模式中提及到了),在传参的时候,不论用户怎样选择,都是传递包含三个类的数组。所以在写的时候的SelectByOne, SelectByTwo, SelectByThree就变成了浮云,用一个SelectByThree就可以了。
在这还用到了Enum类型,通过枚举类型的特点,来进行下拉选择框和数据库字段的动态绑定,这使得我在赋值的过程中减少了判断语句。
报表方面还没做,现在的进度只差报表了,下面的文章将一一叙述上面的方法。