1、精选资料 学号: 2014 届本科生毕业论文(设计)校园一卡通系统的设计与实现学院(系):专业班级:学生姓名:指导教师:合作指导教师:完成日期:可修改编辑 校园一卡通系统的设计与实现摘 要高校的一卡通模式是:“一卡在手,走遍全校”,校园一卡通取代了以前的图书借阅证,学生证,教师证,食堂饭卡,超市购物证,门禁卡,以及打水证,等等。方便了全校师生的日常生活,使大家不用只要出门就满手是卡的尴尬局面,对于学生而言,只需将现金冲入校园卡,就可以将校园卡作为电子钱包。也可通过花费充值流水信息,对最近的消费做出正确的评估。而对于管理者,可以通过一卡通的后台管理系统,管理全校师生的信息。这次的毕业设计就是模仿
2、做一个校园一卡通系统,以探究高校校园一卡通在开发和实际操作中可能遇到的问题以及相应的解决方案。关键词: 高校生活;校园一卡通;一卡通系统;校园卡消费The design and implementation of campus one-card systemAbstractCollege one cartoon pattern is: one card in hand, walk through the school, campus one replace the old book application card, student card, to teach, canteen meal c
3、ard, supermarket shopping card, access control card, and water proof, and so on. Really is convenient for the entire school teachers and students in daily life, make you dont have to go out as long as the full hand card embarrassing situation, for the students, just put the cash into the campus card
4、, campus card can be as a digital wallet, meet the students dont have to carry cash anytime and anywhere, convenient and safe. Spend prepaid phone water information, also can be a review of recent consumption correctly, easy to finance. But for managers, can be made one cartoon background management
5、 system, to the entire school teachers and students information management, fast and convenient, also can better convenient service for the entire school teachers and students. This graduation design is to copy a campus IC card system, to explore the campus IC card in the development and possible pr
6、oblems in practical operation and the corresponding solutions. Key words: The University Life; Campus Card; Intelligent Card System; Campus Card Consumption目录第1章 引言- 1 -1.1 系统背景- 1 -1.2 一卡通系统设计的思路- 1 -1.3 系统开发相关技术介绍- 5 -1.3.1 Spring- 6 -1.3.2 SpringMVC- 7 -1.3.3 Mybits- 7 -1.3.4 mysql- 8 -1.3.5 ajax
7、- 8 -1.3.6 json- 9 -第2章 校园一卡通数据库设计- 11 -2.1数据库概念设计- 11 -2.2 数据库逻辑设计- 16 -第3章 系统的分析与设计- 17 -3.1系统分析- 17 -3.2 可行性分析- 17 -3.3 系统环境配置- 18 -3.4 系统的后台模块设计- 18 -3.4.1持久层设计- 18 -3.4.2 Dao层设计- 21 -3.4.3 service层设计- 24 -3.4.3 controller层设计- 25 -第4章 系统的实现- 29 -4.1 后台页面开发- 29 -4.1.1 后台登陆界面模块- 29 -4.1.2 后台学生信息管理
8、模块- 30 -4.1.3 后台校园一卡通信息管理模块- 31 -4.1.4 后台信息展示模块- 33 -4.2 前台页面开发- 34 -4.2.1 学生登陆模块- 35 -4.2.2 学生首页模块- 35 -4.2.3 学生校园卡模块- 36 -4.2.4 学生借书模块- 37 -4.2.5 学生还书模块- 38 -4.2.6 学生购买商品模块- 38 -4.2.7 学生购买食物模块- 39 -第5章 结束语- 41 -5.1 系统亮点- 41 -5.2 系统不足- 41 -参考文献- 42 -附 录- 43 -致 谢- 50 -第1章 引言1.1 系统背景计算机网络技术正在日新月异的高速发
9、展,为人类的日常生产生活带来了极大的便利,同时也改变着了人们的生活方式,促进了社会的发展进步。然而,目前的许多高校却仍然采用最原始的高校信息管理模式,各个部门分开管理管理且相互之间没有联系。不仅仅管理者管理时很头疼信息的查找、修改、核实。不仅仅浪费大量的时间,而且因为消息的不透明,常常数据修改错误,而再次查找修改信息却又是管理者的噩梦。而针对学生,要去办理某项业务,不仅仅要首先核实自己的个人信息是否正确,往往还要各部门来回的跑,不仅费时费力,而且效率极差,学生往往苦不堪言。因此高校校园一卡通变应运而生,取代了传统的数据不流通,使得各个部门之间信息有沟通,同时信息中出现错误,往往可以一次修改之后
10、,其他部门那里也回更新相应数据,不会出错,大大减少了管理中的脏数据。也为广大的学生带来了极大的便利,使得学生可以自主的使用一卡通购物、借书、充值、洗澡、打水,多卡一体化,真正实现“一卡在手,走遍全校”。1.2 一卡通系统设计的思路此次的一卡通系统针对两大主体:一卡通的管理者、学生或者教职工。并针对这两大主体做一个模拟的校园一卡通系统。图1-1 一卡通管理系统结构模型针对于管理员,管理员首先登陆后台管理系统,进入后台系统可进行如下操作:1.2. 1 管理员模块1) 管理员登陆管理员拥有唯一的账号和密码,只有核实了身份信息的管理员才可以进行后台的相关操作。2) 查看学生信息查看已入学的学生信息,核
11、实学生身份,并修改学生的状态为一入学状态。3) 添加学生信息根据相关信息添加一个学生,如学生高考完毕顺利考入本校,或者学生信息以外丢失,重新录入该学生的信息。4) 删除学生信息学生已毕业,或者由于以外的原因不能在继续上学,管理员核实信息无误后,对该学生的其他信息查找,如该学生是否还有未归还图书,该学生的校园卡是否存在消费信息、充值信息、借阅信息,一并删除流水信息,然后删除校园卡账号,并将学生状态改为离校状态。图1-2 删除学生流程5) 添加校园卡新生入学,核实新生信息,并为新生添加一张校园卡,作为该学生在校园内身份的证明,以便该学生可以使用校园卡,该校园卡初始化密码为000000,默认校园卡状
12、态为激活状态,初始校园卡余额为0元。6) 查看校园卡查看学生校园卡的相关信息,然后根据学生的请求,进行后续操作。7) 删除校园卡学生离校时,查询该校园卡是否存在没有归还书籍,然后归还再借书籍,删除该学生的借书信息、消费信息、充值信息,以免出现脏数据,并删除该校园卡账号所有信息。8) 激活校园卡学生挂失校园卡后,管理员登陆后台系统查找该账号,并将该账号的状态改为激活状态。9) 查看图书信息管理员只拥有查看书籍相关的权限,而没有修改图书信息的权限。10) 查看商品信息管理员查看商品的相关信息,但是不对商品信息进行修改。11) 查看食品信息管理员查看商品的相关信息,但是不对食品信息进行修改。1.2.
13、 2 学生模块1) 学生登陆学生首次登陆系统,使用校园卡账号和初始密码,账户密码匹配正确 ,登陆个人账户系统,否则提示密码错误,留在登陆页面。2) 校园卡充值根据当前用的账户进行充值,充值前判断输入的数值是合法的数字,否则提示出错,并重新输入充值金额。3) 校园卡修改密码首先输入旧密码判断该密码是否正确,然后两次输入新密码,判断两次密码是否相同,不相同则提示重新输入密码,否则修改密码,并返回修改密码成功,并返回登陆页面重新登陆4) 校园卡挂失学生在丢失校园卡时,请求并冻结校园卡账户,并将校园卡状态改为挂失状态,然后补办校园,并申请管理员,请求激活校园卡状态。5) 购买食物学生购买食物时,首先判
14、断学生 校园卡余额是否大于或者等于食物的价格,如果大于,则从学生的校园卡上扣除相应的金额,并添加一条消费记录,并提示购买食物后校园卡的余额。如果校园卡余额小于所需支付的金额,则拒绝支付,并提示余额不足,提示学生及时充值图1-3 学生购买食品流程6) 购买商品学生在超市消费时,扣除金额时首先查找学生的账户余额是否大于所需付的金额,如果大于,则提示购买成功,并添加一条购物信息,从学生账户扣除相应的金额,显示扣除后的余额信息。如果校园卡余额小于所需支付的金额,则拒绝支付,并提示余额不足,提示学生及时充值。7) 学生借书学生借书时,首先判断该校园卡信息是否存在,然后在判断该校园卡状态是否是激活状态,再
15、判断该学生的是否已借阅该图书,如果三项都满足,则进行借书操作,插入一条借书记录,并添加借书流水信息,如果该书籍曾经借阅过,但已归还,则无需重复插入借书记录,只需更新原先存在的借书记录。图1-4 学生借书流程8) 学生还书学生还书时,从系统查找到该条借书记录,并更新该条借书记录为已还书状态。9) 在借书籍查看学生根据自己的账号查阅,现在所有借书的记录,以及尚未归还的图书信息,以便可以按时归还图书。10) 查阅所有借书信息学生根据账号查找自己所有的借书记录,可以规划自己最近的阅读计划。11) 查阅消费信息学生根据账号,可以查阅自己所有的消费记录,可以统计自己最近在什么方面的投资比较多,可以做一个消
16、费计划,慢慢学习理财。12) 查阅充值信息学生根据账号,可以查询自己的充值记录。1.3 系统开发相关技术介绍 1.3.1 SpringSpring是一个开源框架,是基于java开发的轻量级开发框架,其目的是为了解决企业应用开发的复杂性,spring框架的最大的特点就是分层框架结构,分层框架的好处就在于使得开发人员的开发变得更加简单,可测试行更好,松耦合程度更高。Spring主要特点如下:1) 轻量从自身大小与开发花费而言,Spring相对于EJB都是轻量级的,一个完整的Spring只需要在1MB的JAR文件发布,它的处理时间开销也是很少的。2) 控制反转Spring通过BeanFactory使
17、用控制反转(IOC)模式将开发程序的配置和依赖规范开发的实际代码分开。降低代码的耦合性。3) 面向切面Spring的面向切面编程通过分离业务逻辑和系统服务,使得开发人员只需注意完成开发自己的业务逻辑,并不需要投入太多的精力关注其他系统级别的事情。4) 容器对于项目中所用到的bean对象,需要在工程加载前在Spring配置好,包括bean的类名、对应的实体名称、类属性的配置、以及创建和销毁的相关配置,好处是减少了开发人员的代码量,同时也可通过xml文件配置,减低代码的依赖性。图1-5 Spring框架图1.3.2 SpringMVC springMVC 是一个非常优秀的MVC ,它是Spring
18、FrameWork的后续产品,并且已经集成到spring web flow 里面,sprinigMVC框架用来方便的实现web应用的MVC策略,提供了基于注解的解决方案,同时面向接口的编程思想贯穿始终。springMVC是高度可配置的,它没有依赖某一种视图展示形式,而是给外部提供可配置信息,可以支持jsp技术、Velocity技术等。springMVC将视图层,模型层和控制层解除耦合,极大减小了web项目的复杂性,减少了开发人员的负担。整个springMVC的运行过程图 1-2所示图1-6 springMVC工作流程图1.3.3 Mybits Mybits是非常流行的持久层框架,支持普通的SQ
19、L查询使用SqlSessionFactory实例化,一个SqlSessionFactory通过SqlSessionFactoryBuilder获取,而在获取SqlSessionFactoryBuilder之前必须要在mybits的xml配置文件中配置好对应的bean对象。使用mybatis最多的是mybatis的sql语句映射功能,他可以讲dao层用sql语句绑定,这样就能省去我们编写到层的实现。(1)API接口层:这个是开发者和利用mybatis最直观的部分,通过调用这些api来实现系统功能。(2)数据处理层:主要是进行sql语句的解析,由于mybatis具有动态sql这一特性,这是myba
20、tis相比其他持久层软件的一大优势。(3)基础支撑层:这是底层支持上层开发的组件,包括很多高级的特性都是有这些组件来实现的,开发者还可以根据接口定义自己的实现机制。图1-7 mybits系统结构图1.3.4 mysql MySQL是一个开源世界流行的关系型数据库,由瑞典公司MySQL AB开发,现在属于Oracle公司(百度百科 mysql 词条),现在分为了社区办和企业版,企业版具有更好的性能,以及更多的工具,但是需要交纳一定的费用,社区版是免费使用的,但是性能以及功能没有企业版强大。Mysql之所以流行是因为它体积小,执行速度快,最重要的是它是一个开源项目,很多中小企业都在使用mysql作
21、为数据库,甚至像阿里巴巴这样的大型公司也在使用mysql做集群。Mysql使用的sql语言是访问数据库语言最标准化的语言,因此对于教育机构也有很多在使用mysql作为教学数据库。另一个好处是mysql同为开源世界的一份子对于java的支持也是非常不错,所以越来越多的人开始使用了mysql数据库1.3.5 ajax AJAX全称“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以
22、在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。不用刷新整个页面就可以向后台请求数据,并得到所需的数据,可以大大提高整个网页的访问效率和用户体验度。(百度百科词条)1.3.6 jsonJSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。JavaScript很容易解释它,而且 JSON 可以表示比名称 / 值对更复杂的结构。(百度百科词条)第2章 校园一卡通数据库设计在引言中明确了设计校园一卡
23、通系统的迫切性,以及校园一卡通系统所需实现的功能,根据查找多方资料决定使用开发环境、工具、开发技术之后,就应该开始正式的开发系统之旅,首先应该解决的问题就是数据库的设计问题,因为数据库是任何一个系统的根本数据支撑,设计数据库马虎不得。2.1数据库概念设计 2.1.1 数据库概念设计要做数据库概念设计首先要明白什么是数据库概念设计。我们知道,自然界的实体和计算机内部的存储方式是不同的,计算机无法把一个真正的自然界外物放在计算机内部,而我们为了方便需要把实体抽象成一个计算机可以接受,而人们也可以辨识出的东西,符合实体在自然界的客观规律的东西,这个过程就叫做数据库概念设计。概念设计主要是用来描述系统
24、中数据的各种状态,并不关心具体的实现方式,它是从自然界实体到计算机世界的第一层抽象。2.1.2 校园一卡通系统E-R图建立根据分析得出校园一卡通最基本的实体有5个,分别有学生、校园卡、书籍、食品、商品。而由于消费、充值、借书等操作衍生的实体有4个,分别有已借阅书籍信息、借书流水信息、充值流水信息、消费流水信息。1) 实体E-R图图2-1 学生实体E-R图图2-2 校园卡实体E-R图图2-3 图书实体E-R图图2-4 食品实体E-R图图2-5 商品实体E-R图图2-6 已借阅书籍实体E-R图图2-7 充值流水实体E-R图图2-8 消费流水实体E-R图图2-9 借阅流水实体E-R图2) 分模块E-
25、R图图2-10 学生基本信息E-R图图2-11 管理员管理基本校园卡信息图2-12校园卡激活挂失图2-13 校园卡充值消费图2-14 校园卡借阅归还图书3) 总E-R图这是整个系统的E-R图,整个系统的流程开始于学生考入本学校,系统管理员以此为根据添加对应的学生信息以及学生的校园一卡通信息。学生拥有了校园一卡通之后,就正式成为本校的学生 ,可以通过一卡通进行正常的生活。为了资金的安全起见,学生可以修改校园一卡通的密码,使得这个密码只有自己知道,好处是一旦由于粗心遗失校园卡可以不用担心别人捡到自己的校园卡之后,大肆的花费自己的校园一卡通余额,并且在丢失之后学生可以申请挂失校园卡,冻结校园卡资金,
26、以减少不必要的麻烦。此外学生还可以自主的购买食物以及日用品,但在此之外的前提是校园一卡通的余额要大于所需花费的钱数,这是个很正常的逻辑。还有一个很重要的日常操作,那就是借书还书,学生通过校园一卡通借阅书籍,但有条件,不能重复借阅。学生还可通过校园一卡通归还书籍。在 学生毕业时,或者因故不得不终止学业时,系统管理员要查实学生信息,该学生是否有未归还书籍,如果不存在未归还书籍,则直接删除学生的校园一卡通信息,包括借书信息,消费信息,校园一卡通基本信息,然后将学生的基本信息修改为离校,表示该学生已经和学校脱离了关系,但要保存该学生的基本信息,表示该学生曾经是本校的学生。这个E-R图流程结束。图2-1
27、5 校园一卡通整体E-R图 2.2 数据库逻辑设计所谓的数据库逻辑设计,就是对数据库概念结构再次抽象,将基本的E-R图转化为所选择数据库开发产品所支持的数据模型相符合的逻辑结构。根据目前的实际业内行情,应用的最广泛的就是关系型数据库,所以此次设计的校园一卡通数据库也应是关系型数据库。将E-R图转化为逻辑结构应分为3步走:a) 将概念结构转化为关系模型;b) 将转化而来的关系模型转化为将使用开发的数据库所支持的模型转化;c) 对已转化的数据模型进行优化。最终总结出来的数据库关系表有以下几张表:1) 学生基本信息表(编号、学生ID,姓名、身份证、性别、出生日期、籍贯、政治面貌、学院、专业、 年级、
28、照片、办公室号、状态);2) 校园卡基本信息表(编号、校园卡ID、学生ID、姓名、密码、余额、状态、宿舍楼号);3) 图书基本信息表(编号、图书ID、图书名称、作者、数量); 4) 商品基本信息表(编号、商品ID、商品名称、商品图片、商品价格);5) 食品基本信息表(编号、食品ID、食品名称、食品图片、食品价格);6) 书籍借阅表(编号、图书ID、校园卡ID、图书名称、借书日期、应还书日期、图书状态);7) 书籍借阅流水表(编号、图书ID、校园卡ID、图书名称、借书日期);8) 充值信息表(编号、校园卡ID、充值金额、充值日期);9) 消费信息流水表(编号、校园卡ID、消费金额、消费日期);注
29、:带有下划线的是对应表的主键。第3章 系统的分析与设计3.1系统分析在第二章分析设计出了一卡通系统的数据库部分,接下来就要正式的进入一卡通系统的开发部分,首先摆在眼前的就是解决开发前期的问题,开发工具及开发环境的选择。确立开发环境:1) 系统环境:windows 7 32位操作系统;2) 服务器:tomcat 6.0;3) 开发工具:Eclipse;4) 系统框架:SpringMVC;5) 持久层:Mybits;6) 数据库:MySQL;3.2 可行性分析校园一卡通系统采用Spring、SpringMVC、Mybits等优秀开源框架,将持久层、业务层、逻辑层、展示层解除耦合,减小了系统的耦合性
30、,系统采用面向对象、面向接口的编程思想 ,使得本系统在开发完成之后的后期维护会变得很容易,其次因为本系统采用的面向对象编程思想,使得本系统在业务的扩展方面具有很高的可扩展性,不必在要添加一个需求时,整个系统都有大的改动,这也是很重要的方面。本系统选用的开发工具和开发框架都是免费的开源产品,也就避免了版权方面的经济纠纷,另外,所选择的开发环境是比较基础的开发要求,一般的笔记本硬件就可以达到开发的要求,不需要去购买高配置硬件电脑,可以节约开发费用。此外,本系统所采用的开发工具与所选择的框架都是主流公司所使用的,非常容易上手,实用性很强,故而也节约开发时间。通过以上分析,校园一卡通系统的开发无论是从
31、经济、版权、开发成本,还是人力物力上看,都具有很强的可强的可执行性,所以开发校园一卡通系统还是很值得一试。3.3 系统环境配置校园一卡通系统开发 本身要依赖Spring、SpringMVC、Mybits这些框架集成开发的,为了能更好的利用框架开发,搭建工程之初,第一步,就是配置好这些框架相应的组件:1) 配置Spring组件;2) 配置Mybits组件;3) 配置SpringMVC组件。基本的组件配置完成,具体的配置XML代码可以参考附录。3.4 系统的后台模块设计搭建好框架之后就可以进行正式的后台系统开发,分别进行持久层(Mybits)、Dao层、Service层以及Controller层的
32、开发。3.4.1持久层设计 系统Mybits持久层开发的必要条件就是设计出与持久层操作相关的实体类。Dao层所有的增添改查操作都是根据对应实体类操作,接下来就是设计MySQL数据库表对应的实体类。(1) Person实体类设计 该实体类主要存放与数据库基本表personBase属性列表所对应的属性元素,如姓名、学号、性别、照片等等,在这里 要处理一下关于图片路径的问题,因为数据库存储图片的路径和URL中默认读取图片的路径是相反的。图 3-1 Person实体类(2) Card实体类设计 该实体类主要存放与数据库基本表cardbase相对应的属性元素,如卡号、学号、姓名、密码、余额等等。图 3-
33、2 Card实体类(3) Book实体类设计 该实体类主要存放与数据库基本表bookbase相对应的属性元素,如书籍编号、书籍名称 、书籍作者、书籍数量等等。图 3-3 Book实体类 (4)Food实体类设计 该实体类主要针对模拟购物时所需使用的数据库基本表foodBase而设计,存放对应的属性,如食品编号、食品名称、食品价格、商品照片,这个和Person类一样,也要处理一下图片的路径问题。图 3-4 food实体类 (5)Good实体类设计该实体类主要针对模拟购物时所需使用的数据库基本表goodBase而设计,存放对应的属性,如商品编号、商品名称、商品价格、商品照片,同上,需要处理图片显示
34、的途径问题。图 3-5 good实体类 (6)基本类衍生类 此外还有根据基本类在具体增添改查操作时所产生的衍生类,如图书借阅类(BookBorrow)、图书借阅流水类(BookInfo)、消费流水类(Cost)、充值流水类(Deposit)。BookBorrow类的属性有图书编号、校园卡账号、图书名称、图书借阅日期、图书应归还日期、图书状态,作用是在学生通过校园卡借阅图书时,存储图书借阅的信息,主要的功能帮助学生查看自己所借阅过的书籍,以便学生可以及时的归还图书,其类图如图3.6所示。BookInfo类的属性有图书编号、校园卡账号、图书名称、图书借阅日期。其作用是可供学生自己查看自己所借阅过的
35、书籍,记录学生校园卡账号的图书借阅流水记录,只是用于查看,并没有其他的操作功能,其类图如下图3.7所示。 图 3-6 BookBorrow实体类 图3-7 BookInfo实体类Cost类的属性有消费编号、校园卡账号、消费金额、消费日期。其作用是存储学生账号的消费流水信息,是用于记录个人消费的情况,不提供其他的功能,其类图如下图3.7所示。Deposit类的属性有充值编号、校园卡账号、充值金额、充值日期。其作用是存储学生校园卡账号的充值流水信息,是用来记录个人充值的记录,不提供其他的功能,其类图如下图3.8所示。 图3-7 Cost实体类 图3-8 Deposit实体类3.4.2 Dao层设计
36、Dao层接口是数据访问层,用来保存数据,将于数据持久层相关函数剥离出去,提供一个具有业务含义的封装层,依赖于在应用XML配置好的sessionFactory进行数据库访问,操作数据库数据,设计出针对于具体实体类的增、添、改、查操作。Dao是封装数据库底层的操作,实现业务最基础的操作,以留下Dao层接口供service层的业务调用,以实现业务逻辑的分离。(1) PersonDao设计该Dao层接口主要与Mybits配置文件application.xml的中所加载的数据表personBase所对应的user.xml配合,使用SqlSessionFactory类型实体sessionFactory来实
37、现真正的数据库表操作。1. sessionFactory使用user.xml中的selectPList实现对Person列表查询操作,并把所有的信息以List的方式返回。2. sessionFactory使用user.xml中的selectPerson,并且在接口中传入所要查询的sno,首先判断该学号在数据库中是否存在,然后查询对应的学生信息,并返回所需的结果。3. sessionFactory使用user.xml中的selectStatus,并且在接口处传入对应的sno,先判断是否为空,然后返回对应的学生状态,以供其他函数调用。4. sessionFactory使用user.xml中的SQL
38、 addPerson添加学生,首先调用2中的函数查看该学号的学生是否已存在,不得重复插入,插入该学生信息。5. sessionFactory使用user.xml中的updatePerson实现软删除学生,首先调用cardDao中的方法删除Card相关信息,然后将该学生的状态改为离校状态。(2) CardDao设计该Dao层接口主要与Mybits配置文件application.xml的中所加载的数据表cardBase所对应的card.xml配合,使用SqlSessionFactory类型实体sessionFactory来实现真正的数据库表操作。实现校园卡列表查询、根据学号/校园卡账号查询校园卡信
39、息、根据校园卡账号查询校园卡状态、激活校园卡状态、挂失校园卡状态、校园卡充值、校园卡消费、校园卡信息添加、校园卡信息删除,添加消费流水、添加花费流水、根据账号查询花费流水、根据账号查询消费流水、修改校园卡密码。具体做法如下:1. sessionFactory通过card.xml中的selectCList,查询所有的校园卡信息列表,并以List的形式返回结果。2. sessionFactory通过card.xml中的selectCardByCardId,传入参数cardId,返回对应校园卡信息。3. sessionFactory通过card.xml中的selectCardBySno,传入参数sn
40、o,返回对应校园卡信息。4. 传入参数cardId,调用2,返回对应编号的校园卡状态。5. 传入参数cardId,调用2,查询该校园卡的余额信息,并将其返回。6. sessionFactory通过card.xml中的activeStatusBycardId,传入参数cardId,修改该对应校园卡的状态为激活状态。7. sessionFactory通过card.xml中的guashiStatusBycardId,传入参数cardId,修改该对应校园卡的状态为挂失状态。8. sessionFactory通过card.xml中的addDeposit,传入参数cardId,参数money,添加一条充值
41、记录。9. sessionFactory通过card.xml中的selectDeposit,传入参数cardId,查询该账号所有的充值信息,并以List形式返回结果。10. sessionFactory通过card.xml中的addCost,传入参数cardId、参数money,添加一条消费信息。11. sessionFactory通过card.xml中的selectCost传入参数cardId,查询该校园卡所有的消费信息,并以List的形式返回所有的结果。12. sessionFactory通过card.xml中的addMoney,传入参数cardId、参数money,修改当前校园卡的余额信
42、息,调用接口7,添加一条充值记录,无返回值。13. sessionFactory通过card.xml中的deleteMoney,传入参数cardId、参数money,首先调用5,查询该消费金额是否大于对应的校园卡余额,如果小于,则从该账号上扣除对应的金额,消费成功,返回TRUE,如果消费金额大于校园卡余额,则拒绝消费,并返回FALSE,消费失败。14. 传入参数cardId、参数password,首先调用2,判断对应账号的校园卡是否存在,若存在则执行下边的操作,sessionFactory通过card.xml中的changePasswd,修改该校园的密码,并返回TRUE,否则返回FALSE。(
43、3) BookDao设计该Dao层主要与Mybits配置文件application.xml中的所加载数据库表中的bookbase所对应的book.xml配合,使用SqlsessionFactory类实体的sessionFactory来实现数据库表操作。1. sessionFactory通过book.xml中的selectBList实现对所有书籍的信息的查询,并以列表List的形式返回book列表所有的信息。2. sessionFactory通过book.xml中的selectBookById,并且传入参数bookID实现根据图书编号查询图书信息,并且返回对应书籍的信息。3. 传入参数BookI
44、d,调用 2得到对应图书信息,将所得到图书的库存数量返回,已完成后续操作。4. 传入参数cardId,sessionFactory通过调用book.xml中的selectBrByCardId,查询出该校园卡账号对应的所有的借书信息,并且以List的形式返回结果。5. 传入参数cardId,sessionFactory通过book.xml中的selectBiByCardId,查找出该校园卡对应所有的借书流水信息,并且以List的形式返回结果。6. 传入参数cardId,sessionFactory通过book.xml中的addBookInfo,添加一条借书流水记录。7. 传入cardId,ses
45、sionFactory通过book.xml中的selectBrBycardId,查询出该学生所有的借书记录。8. 借书操作,传入参数cardId、参数bookId,首先传入cardId、bookId到5中,判断该校园卡该本书是否有借书记录,如果没有,sessionFactory通过book.xml中的addBookborrow,添加一条借书记录,调用6,添加一条借书流水信息。否则sessionFactory通过book.xml中的updateBrBycardId,更新当前这条借书信息,并调用6,添加一条借书流水信息。9. 还书操作,sessionFactory通过book.xml中的delet
46、BrByCardId,更新对应书籍的借书记录。(4) FoodDao设计该Dao层接口主要与Mybits配置文件application.xml的中所加载的数据表foodBase所对应的good.xml配合,使用SqlSessionFactory类型实体sessionFactory来实现真正的数据库表操作。1. sessionFactory通过food.xml中的selectFList实现对食物列表信息的查询,并且以List的形式返回food列表的所有信息。2. sessionFactory通过food.xml中的selectFood,传入参数FoodId实现根据商品编号查找食物信息,并将结果返
47、回。3. 将参数FoodId传入,可根据2所的商品信息得到该食物的价格以实现4的操作。4. 传入参数FoodId,可根据3得到食物的价格,调用cardDao中的消费方法,购买商品。(5) GoodDao设计该Dao层接口主要与Mybits配置文件application.xml的中所加载的数据表goodBase所对应的good.xml配合,使用SqlSessionFactory类型实体sessionFactory来实现真正的数据库表操作。5. sessionFactory通过good.xml中的selectGList实现对商品列表信息的查询,并且以List的形式返回good列表的所有信息。6. sessionFactory通过good.xml中的selectGood,传入参数Good