机房收费系统之——视图
来源:互联网 发布:淘宝女裤品牌 编辑:程序博客网 时间:2024/06/18 08:13
机房收费系统的个人重构版已经进行差不多一半多了,没有太大的磕磕绊绊,所以总感觉自己是不是哪个地方理解的还是不到位,也所以一直写不出经过自己理解后的总结博客,某一天的下午在五楼无意中听到师姐给徒弟验收机房,就多听了几句,这才发现自己一直过得太“安逸”了,就像米老师说的,人不能过得太安逸,否则会出问题的,真的是这样,废话不多说了,下面简单介绍下机房中引入的视图。
初次接触视图,是在自考的数据库系统原理,那时候只是单纯的想,单纯的理解,直到如今派上用场,才切切实实的感受到它的好以及便捷之处。
视图:从若干基本表或其它视图构造出来的表。大白话说,就是从几张我们需要的数据表中挑出我们需要的字段重新组成一张“表”以供我们查询使用。
在重构中,比如查询金额收取情况,这里涉及到两个表,一是充值表,而是学生信息表(因为要反应该卡是否结账),按照原来的思维,我可能会一个个的去查询我想要的,这里就有一个问题:大量的代码重复,怎么办?上网看看后才发现“视图”的存在。
首先,视图的创建,有两种方式:
1·相应的数据库下右击视图,按照要求来就可以,不太难,所以不再展示具体流程。
2·用“CREATE VIEW"语句实现。
create view V_student (cardNo,cancelDate,cancelTime,cancelMoney,head,isCheck)as select cancel_info.cardNo,cancelDate,cancelTime,cancelMoney,cancel_info.head,isCheckfrom Cancel_Info ,Student_Info where cancel_info.cardNo =student_info.cardNo两种方式均可,只是第二种方式可以顺便回顾一下代码语句。
其次,在重构中具体应用。
'用于查询金额返还记录 Public Function collectMoneyRecord(enRecharge As RechargeEntity) As Object Implements IRecharge.collectMoneyRecord Dim sql As String Dim table As DataTable 'Dim mylist As List(Of RechargeEntity, StudentEntity) Dim sqlParams() As SqlParameter = {New SqlParameter("@startDate", enRecharge.startDate), New SqlParameter("@endDate", enRecharge.endDate)} 'V_CollectMoney就是我们建立视图的名字,其它过程和正常查询类似。 sql = "select * from V_CollectMoney where rechargeDate between @startDate and @endDate" table = sqlhelper.GetDataTable(sql, CommandType.Text, sqlParams) 'mylist = ModuleEntity.converToList(Of RechargeEntity, StudentEntity)(table) Return table End Function
这样,简单的查询工作完成了,可是我又出现了一个问题,没有解决。目前是把相应的代码暂且注释了。
问题:我们都知道,在重构中,是不允许返回DataTable的,原因是向用户暴露了数据库信息,可是当我返回泛型集合时,问题又来了,大家都知道,实体和数据库中表都是一一对应的,那现在我查询的不是表,是视图,那那个集合反应的实体该怎么办?加入两个实体(RechargeEntity,StudentEntity)吗?我试过了,不可以,那要重新建立一个新的实体吗?如果这样,问题可以解决,可是这个实体不是和RechargeEntity,StudentEntity重复了吗?所以,我一直没有找着更好的解决方案,还望同胞们指点迷津。(这篇博客会持续更新)
- 机房收费系统之——视图
- 机房收费系统—《视图》
- 机房收费系统之视图
- 视图——机房收费系统
- 机房收费系统5之视图
- 机房收费系统之—组合查询
- 重构个人版机房收费系统——视图
- 机房收费系统——视图的运用
- 机房收费系统——机房总览
- 机房收费系统—结账
- 机房收费系统—报表
- 机房收费系统—总结
- 机房收费系统—结账
- 机房收费系统—美化
- 机房收费系统—《触发器》
- 机房收费系统—心得
- 机房收费系统—报表
- 机房收费系统—结账
- 自行搭建youkuvod服务器
- (4512)HDU
- Python标准库:内置函数print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- 1203 IP地址
- 关于android的日志输出&LogCat
- 机房收费系统之——视图
- java static修饰符的使用
- 深入理解Proxy机制
- 3dMax-win-64bit软件的安装-配置
- python mirror 修改
- 数据结构--ArrayList的Java实现
- Intent意图
- 排序算法
- 黑马程序员--java学习总结(9)