基于web的宾馆客房管理系统的设计与实现_毕业设计(论文)(31页).doc
-基于web的宾馆客房管理系统的设计与实现_毕业设计(论文)-第 24 页齐齐哈尔大学毕业设计(论文)题 目 基于Web的宾馆客房管理系统的设计与实现 学 院 计算机与控制工程学院 摘 要随着社会经济的飞速发展,酒店、宾馆在服务行业中扮演的角色越来越重要。在酒店、宾馆的运作期间,其管理和服务水平直接影响到酒店形象和声誉。采用计算机这一现代化工具作为管理的辅助手段可以提高服务质量,尽可能做到让客户满意,同时也需要一套酒店管理系统对客人、费用、房间的正确处理和保存等。基于C/S结构的管理软件开发困难,业务变更或改变不够灵活,增加了维护和管理的难度,进一步的业务拓展困难较多,并且兼容性差。基于B/S的酒店客房管理系统可以实现对客房的科学化、规范化、查询顾客情况、订房信息、以及结算信息等,有助于提高管理的效率,方便酒店对客房的实际情况进行集中的查询与管理工作,以改善整个酒店的工作效率和服务质量。本文采用了当今比较流行的框架Struts2 + Spring+ Hibernate的系统结构,通过介绍Struts的MVC结构、基本组成和结构以及Hibernate的基本对象,并将三种框架技术整合起来应用到系统中,给出一个具体的实例配置,前端采用Struts的MVC框架,中间层采用Spring,底层采用Hibernate,提高了系统代码的可重用性和开发效率。经测试,本系统的实现策略是可行的,能够满足中小型宾馆客房管理的需求,实现了对工作效率的提升。关键词:宾馆;客房;MVC框架;管理系统AbstractWith the rapid economic development of society , the hotel , the guesthouse inservice industry in the role of more and more important. In a hotel , thehotel duringthe operation, the management and service level directly affect thehotel's image andreputation. Using a computer to the modern tools as amanagement auxiliary instrument,it can improve the service quality, as far aspossible, do let customer satisfaction, alsoneed a hotel management system inthe guest room , cost, the proper management andpreservation . Based on C/Sstructure of management software development difficulties,business changes orchange flexible enough, increased the difficulty of maintenance andmanagement,further business to expand more difficult, and poor compatibility.Based onB/S hotel guest room management system can realize the rooms,scientific, standardized,and inquires , booking information, customer information and settlement , and improvethe management efficiency,convenient hotel rooms,the fact ofconcentration and management of inquires, in order to improve the whole hotelwork efficiency and service quality.This paper adopted the more popular framework Struts2+Spring+Hibernate systemstructure, through the introduction of the Struts structure, basic MVC composition andstructure and the basic objects Hibernate,and the three frame technology applied to thesystem together,give a specific example configuration,the Struts MVC framework front,the intermediate Spring, the bottom Hibernate, and improve the system code reusabilityand efficiency of development.By test, the realization of the system of the strategy is feasible,can meetthe needsof small and medium-sized hotel room management , realize the workefficiency of ascension.Key words: Hotel; Guest room; MVC framework; Management system目 录摘要IAbstractII第1章 绪论11.1 课题研究的背景及意义11.2 客房管理系统及相关技术研究现状11.3 课题的研究目的与内容11.3.1 课题的研究目标21.3.2 课题的主要工作和研究内容21.4 设计说明书结构3第2章 系统开发相关技术的简介42.1 系统开发环境42.1.1 软件开发环境42.1.2 数据库开发工具MySQL 5.142.1.3 开发工具MyEclipse8.552.2 主要开发技术52.2.1 Struts2简介52.2.2 Hibernate简介52.2.3 Spring简介6第3章 系统的需求分析83.1 目前小型宾馆运营中存在的问题83.2 功能分析83.2.1 系统业务流程83.2.2 用例模型93.2.3 业务流程分析103.3 可行性分析103.3.1 经济可行性113.3.2 技术可行性113.3.3 操作可行性11第4章 系统的概要设计124.1 系统功能结构框架124.2 数据库设计124.2.1 数据库概念设计134.2.2 数据库逻辑结构设计174.2.3 文件夹组织结构20第5章 系统的详细设计与实现215.1系统结构的实现215.2 用户登录的实现215.3用户管理模块设计225.3.1 实现目标235.3.2 实现过程235.4住宿管理模块设计245.4.1 实现目标245.4.2 客人入住实现过程245.4.3 客人退房实现过程255.4.4 客房预订实现265.5 数据管理模块设计275.5.1 实现目标275.5.2 客房信息管理实现27第章系统的测试286.1 系统的测试目标286.2 测试方法286.3 系统测试的实施296.4 本章小结31结论32参考文献33致谢34第1章 绪 论1.1 课题研究的背景及意义随着人员的流动规模不断的扩大,酒店数量也随之急剧增加,有关宾馆客房管理的各种信息量也在不断的成倍增长。面对越来越庞大的信息量,传统的人工客房信息管理,管理方法繁琐并且复杂,执行效率低,易于出错。这就需要有酒店客房管理系统来提高客房管理工作的效率和准确性。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。基于C/S结构的管理软件开发很困难,业务变更或改变不灵活,增加了软件的维护和管理难度,想进一步拓展业务及其困难,并且兼容性很差。基于B/S结构的软件具有分布性特点,可以随时随地进行业务处理。业务扩展简单方便,通过增加网页即可增加服务器的功能。维护简单方便,只需要对网页进行改变,即可实现所有用户的同步更新。开发简单,共享性强。因此,开发一套全新的高效的基于web的宾馆客房管理系统来完成客管理是必要的。1.2 客房管理系统及相关技术研究现状国外的酒店管理系统最早是于70年代初发展起来的,到了80年代,国外的酒店管理系统,整个模式已基本固定,技术较成熟,功能也较完善。现在,国外酒店正向个性化的方向发展,酒店按其经营方式可以分为商务型酒店、长住型酒店、度假型酒店等等;按其经营形式可分为独立经营饭店、集团经营饭店等。随着国外酒店使用的计算机系统和先进的管理技术被大规模吸收和引进,进一步加快了国内酒店管理技术的发展。国内的酒店管理系统在充分吸收了国外管理系统的精华的同时,结合国内实际的情况下逐步成熟发展起来。到了90年代初期的时候形成了几个比较成熟的酒店管理软件系统,同时出现了很多专职从事制作酒店计算机管理系统的公司。随着计算机在酒店中的广泛应用,计算机开发技术的不断创新发展,酒店计算系统的发展又到了一个新的时期,新的系统平台、新的软件功能、新的系统特点及新的发展方向不断涌现。1.3 课题的研究目的与内容1.3.1 课题的研究目标随着竞争的日益激烈,如何能在降低成本的同时最大的提高效益已经成为各行各业要解决的首要问题。但是目前商业性的酒店管理软件大多数都是适用于大、中型酒店,其操作比较复杂,收费很昂贵,还需要专业的维护。这就造成了很多小型或极小型宾馆没有客房管理软件,对于其宾馆的经营造成管理的繁琐与混乱。所以开发一款适用于小型或及小型宾馆的客房管理软件是必需的。酒店客房系统系统对酒店加强客房信息管理有着极其重要的作用,就一所客房数量较大的酒店来说,它的设计内容非常复杂而且繁多,比如拥有客房信息管理、客房类别信息管理、预定信息管理等功能,而且设计的模块也很多,比如用户信息管理模块、客房类型管理模块、客房信息管理模块、客房经营管理模块、客户信息查询模块、经营状况统计模块等等。课题研究目标如下:(1)使用户方便快捷的管理客房信息,并保护信息安全;(2)提高中小型宾馆的工作效率,释放人力资源;(3)尽可能提供满足客人一切需求的功能设置;(4)简单清晰的操作,让使用者容易使用;(5)可通过访问权限控制确保数据的安全性。1.3.2 课题的主要工作和研究内容利用Internet信息传递便捷、内容更新及时、存储容量大、共享性能优良、分布范围广、互动性强等特点,研究适合现有条件的客房管理信息系统的解决方案。本文采用Java技术,利用面向对象分析与设计思想,使用数据库对系统建模,研究了适宜于本系统特点,使客房管理信息系统的设计与开发,包括系统分析、系统设计、系统实施。在系统的设计与开发中,负责课题的整体规化设计、组织实施及部分模块实现。所做的主要工作如下:(1)学习开发web系统应具备的知识;(2)对系统进行总体设计,注意数据库的设计;(3)进行系统规划,确定其基本结构及功能划分;(4)组织实施课程开发、运行程序的设计与实现;(5)对系统进行调试、运行。本系统属于中小型的宾馆客房管理系统,可以有效的对中小型宾馆的客房及客人信息进行管理。本系统的主要研究内容是:(1)设计简洁友好的界面,能够灵活、方便的查询信息,安全可靠的对数据进行加密存储;(2)能够方便快捷的管理客人、房间以及前台操作员的信息;(3)对客户信息方便快捷、安全的管理。(4)能够有效的实现宾馆客人的一些要求功能;(5)最大限度地使系统实现易维护性和易操作性。1.4 设计说明书结构本设计说明书共分六章,各章结构如下:第1章 绪论。讲述了客房管理系统的研究背景、研究意义,客房管理系统目前在国内外技术研究现状,客房管理系统的研究内容与研究目标;第2章 系统开发相关环境、技术简介。讲述了该客房管理系统的开发工具(即其软件开发环境、MyEclipse开发工具和MySQL数据库开发工具)和与该系统开发相关的Java技术;第3章 系统的需求分析。该章先对目前宾馆运营中存在的部分问题进行了分析,根据这些问题做出了功能需求分析和该管理系统的可行性分析;第4章 系统功能结构和数据库的设计。讲述了系统的功能结构和系统数据库的设计,其中系统功能结构中讲述了系统功能结构图、系统的主界面和业务流程图,数据库的设计则对数据库的概念设计和逻辑结构设计进行了比较详细的介绍;第5章 系统的详细设计与实现。则针对系统内某些类和具体模块的实现进行了详细的介绍,其中模块主要是系统登录模块、客房管理模块、客人信息管理模块和账目管理模块;第6章 系统测试。该章依据测试目的和测试准则,对系统所研究的功能模块进行测试,并且得出测试结果。第2章 系统开发相关技术的简介2.1 系统开发环境2.1.1 软件开发环境本系统对其运行环境有一定的要求,具体如下:操作系统: Windows 7;数据库管理系统软件:MySQL 1.5系统开发平台:Myeclipse 8.5Java编译环境:JDK1.6;WEB服务:Tomcat6.0。2.1.2 数据库开发工具MySQL 5.1MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16日被Sun公司收购。而2009年,SUN又被Oracle收购。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。MySQL的SQL“结构化查询语言”。SQL是用于访问数据库的最常用标准化语言。MySQL软件采用了GPL。由于其体积小、速度快、总体拥有成本很低,尤其是开放源码的这一特点,许多中小型的网站为了降低网站总体拥有成本而选择了MySQL作为网站建设使用的数据库。 与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL当然拥有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有影响它的受欢迎程度。对于一般的个人使用者和中小型的企业来说,MySQL提供的功能已经十分丰富,再者MySQL是一个开放源码的软件,因此可以大大降低总体拥有成本。目前Internet上流行的网站构架方式是LAMP和LNMP,即使用Linux作为操作系统,Apache和Nginx作为Web服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统。2.1.3 开发工具MyEclipse8.5MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS ,JavaScript,Spring,SQL,Hibernate。2.2 主要开发技术2.2.1 Struts2简介Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。 Struts2体系结构与Struts1的体系结构有很大的差别,Struts1是使用ActionServlet做为其中心处理器,Struts2则使用一个拦截器(FilterDispatcher)做为其中心处理器,这样做的一个好处就是将Action类和Servlet API进行了分离。以下是Struts2的工作流程:图2-1 Struts2工作流程图拦截器是Struts 2框架的核心,通过拦截器,实现了AOP(面向切面编程)。使用拦截器,可以简化Web开发中的某些应用,例如权限拦截器可以简化Web应用中的权限检查。业务控制器Action是由开发者自己编写实现的,Action类可以是一个简单的Java类,与Servlet API完全分离。Action一般都有一个execute()方法,也可以定义其他方法来控制业务。Action 的execute()方法返回一个String类型值,这与Struts 1返回的ActionForward相比,更加简单易懂。Struts 2提供了一个ActionSupport工具类,该类实现了Action接口和validate()方法,一般开发者在编写Action时可以直接继承 ActionSupport类。编写Action类后,开发者还必须在配置文件中配置Action参数。一个Action的配置应该包含下面几个元素: (1)该Action的name,即用户请求所指向的URL; (2)Action所对应的class元素,对应Action类的位置; (3)指定result逻辑名称以及实际资源的位置。Action是业务控制器,在开发过程中编写Action的时候,应尽量避免在其中出现业务逻辑,达到减少Action与业务逻辑模块或者组件的耦合度的目的。2.2.2 Hibernate简介Hibernate 可助基于普通的Java 对象模型创建持久对象,允许持久对象拥有用户自定义的类型, 还可拥有复杂的结构如混合类型、集合和属性。这样底层数据库模式的复杂结构现在可通过持久对象有效地反映出来。Hibernate 还包括一些提高效率的策略, 包括必要时语句的执行、有效外部连接的获取、对象缓存,以上均为数据库交互的多重最优化。Hibernate 在构建Java 应用中的作用是: 在其运行通过后可以对数据库进行访问,实现对数据层的持久化,再通过其生成并配置的文件properties和XML Mapping映射文件映射到数据库中。从而Application 应用允许Java Class 的直接访问数据库并让这一桥梁纽带使应用与数据库之间得到联系,而不必非经过JDBC 和SQL的数据的操作。这样便通过了Hibernate 实现关系数据库的持久化操作。2.2.3 Spring简介Spring框架是一个分层框架,由7个定义模块组成。Spring模块构建在核心容器之上,核心容器定义了创建,配置和管理Bean的方式 。Spring这个应用框架可谓表现全面,其功能之丰富,主要表现在以下几方面:(1)控制反转:IoC(Inversion of Control,控制反转)是Spring的核心概念。IoC的本质是实现对象之间依赖关系的转移。Spring会自动的依据配置信息来维护对象之间的依赖关系,将被依赖的对象设置给依赖对象。开发人员将不必在自己的代码中维护对象之间的依赖关系,只需在配置文件中进行设定就可以了。IoC是一个概念化的设计模式,一般状况下IoC有两种实现方式:Service Locator(服务定位器)与Dependency Injection(依赖注入(Struts框架采用即为依赖注入)) 。(2)面向切面的编程:Spring框架的另一个核心特色是AOP(Aspect-oriented programming,面向切面的编程)。AOP某种程度上也是一种编程方法,但它与传统的顺序编程方式是相区别的。AOP可以解决开发中的公有性问题从其他角度,而且会很方便。在任何J2EE服务器中Spring框架的功能都可以使用,大多数功能也适用于不受管理的环境。Spring的核心要点是:支持不绑定到特定J2EE服务的可重用业务和数据访问对象。这样的对象可以独立应用程序在不同J2EE环境(Web或EJB)中,测试环境之间也可重用。第3章 系统的需求分析3.1 目前小型宾馆运营中存在的问题管理效率低下。前台在对客人的服务中的纸笔操作会令客人容易疲倦,如果遇到客流高峰期更会英雄客人情绪,所以,管理效率要高。员工工作效率低。原始的管理方法的体力脑力都是极大的负担,所以我们需要提升管理工具来提升员工工作效率降低原始成本。3.2 功能分析3.2.1 系统业务流程基于Web的客房管理系统的业务流程:在登陆界面上输入用户名和密码,单击确定,如果填写内容正确,则成功登陆,系统会根据登录用户的信息确定其权限,然后进行操作。其中系统用户主要功能有个人信息管理、客房信息管理、客人信息管理、入住和退房。本系统的开房业务流程图如图3-1所示。图3-1 客房管理系统开房业务流程图本系统用户对客人以及客房的管理流程如图3-2所示。用户登录客人信息客房个人信息管理客房信息增加查询修改增加删除修改查询查询图3-2 宾馆客房管理系统前台业务流程图3.2.2 用例模型图3-3 系统用户用例图用例图(Use Case Diagram)是由软件从需求分析到最终实现的第一步,它描述了人们如何使用一个系统。用例视图可以显示出谁是相关的用户、用户希望系统能够提供什么样的服务,以及用户需要为系统提供的服务,以便使系统的用户更容易理解这些元素的用途,也便于软件开发人员最终实现这些元素。本项目共有两个模块:管理员模块和前台服务人员模块。管理员拥有全部权限,可以对客房信息、客人信息、员工信息以及账目信息进行操作,而其他用户只拥有对个人信息的管理权限,以及对客房信息、客人信息的管理。3.2.3 业务流程分析管理员/前台人员首先要进行登录,然后对系统进行操作,对客人进行服务。客人要提供自己的必要信息以及服务需求。然后系统用户根据客人要求,进行操作。图3-4 用户业务流程图3.3 可行性分析计算机技术的发展以及计算机的普及让人们充分认识到了计算机以及网络的价值,生活中各个方面对计算机的依赖与日俱增。利用计算机技术解决以往困难繁琐的问题已经变得很平常,就管理软件而言,能提高我们的工作效率,减少我们的工作失误,减少成本。当然,对应不同客户的需求,我们需要分别提供不同的功能和设置来满足用户的需要。3.3.1 经济可行性 本客房管理系统所要求的计算机硬件配置要求并不高,现在一般主流的计算机都可以满足需求。相对的软件环境,主要包括MyEclipse、Tomcat6.0、MySQL5.1,开发软件是免费的,其余的数据库及服务器软件均是免费的,系统成本主要集中在本管理系统的开发与维护上,对用户不会造成过重的经济负担。而本系统投入使用,可以减少宾馆的工作强度,提高工作效率,而且方便了对客人及客房信息的管理,可以极大限度的解放人力。另外,本系统的开发不是很复杂,开发的周期较短,软件开发的成本不会超过带来的效益,所以从经济方面讲开发此系统是可行的。3.3.2 技术可行性客房管理系统的开发基Web,主要包括前台服务程序程序的开发以及后台数据库的建立和维护。本系统采用了当前比较流行的Struts2+Spring+Hibernate框架整合开发,这三大框架的技术很成熟,Java语言也是目前主流的开发语言,开发Web前端的服务程序很是合适。MySQL数据库很容易使用,并支持标准的SQL语言,Hibernate框架对其兼容性也很好,Java对MySQL数据库的访问完全可以满足系统需求。因此,从技术层面上分析,开发此系统是可行的。3.3.3 操作可行性宾馆的主要功能就是为客人提供方便快捷的房间使用服务,并且本系统主要针对的是中小型及极小型的宾馆,所以简单方便的但是安全的操作时必须的。本系统讲尽可能的使用户从界面上获得直观的操作信息,达到方便、快捷、简单,不会带给用户操作体验上的困扰综上所述,开发本系统对中小型宾馆的客房管理有着很大意义,并且不会带给客户过多负担,开发此系统是可行的。第4章 系统的概要设计4.1 系统功能结构框架基于Web的宾馆客房管理系统的功能结构主要有用户的管理,住宿管理(即房间查询、客人入住、预订以及退房及客人查询)、信息管理(即对客人信息、客房信息以及客房分类信息的管理)。宾馆客房管理系统的功能结构图如图4-1所示。基于Web的宾馆客房管理系统用户管理住宿管理数据管理信息管理用户退出客房查询客人查询客人入住客房预订客人结算客房类型客房信息客人信息图4-1 宾馆客房管理系统功能结构图4.2 数据库设计设计良好的数据库很容易使用、很灵活,并且能够保护数据的有效性。而设计不良的数据相反仍然能够发挥相当的作用,但是最终可能会导致数据的无效、错误或者丢失。数据库的规范化过程非常的著名,所以有正式的规则来保证规范化的数据库建设。这些规则有七条,叫做范式,而在大多数情况下前四条范式就够用了:第一范式(1NF)这条规则包含了以下几个要求:无多值项目(multivalued item)和重复组(repeating group);每个字段都应该是原子型的(atomic),也就是说每个字段必须包含可能的最小数据元素;以及表格包含关键字(key)。 第二范式(2NF)表格必须要按照1NF来规范化。所有的字段都必须有主键值的引用(或者描述)。如果主键是基于多余一个字段的,那么每个nonkey字段都应该取决于复杂键(complex key),而不仅仅是一个没有键的字段。并且不支持主键的nonkey字段应该被移动到另一个表格中去。第三范式(3NF)表格必须要符合1NF和2NF的要求。所有的字段都应该相互独立。任何描述nonkey字段的字段都必须被移动到另一个表格里。 Boyce-Codd范式(BCNF)一定不能存在依赖于nonkey的字段。这条规则实际上是3NF的一个子规则,用于捕捉可能会通过进程的依赖性。这一点相当的抽象,一开始是很难应用的。以上的规则十分精确,但是技术定义以及规范化的规则可以被简化成以下几点:(1)字段都应该尽量小; (2)任何字段都只能包含唯一的数据项目; (3)记录都应该是唯一的; (4)要注意那些重复的条目;(5)字段都应该完全的支持主键,而且只能支持主键。 基于以上所述,在开发基于Web的宾馆客房管理系统之前,创建了名为hotel的数据库,分析了解该系统所需要的数据,在其中创建了7个数据表用于存储不同的数据信息,如图4-2所示。图4-2 数据库概览图4.2.1 数据库概念设计用户表用以存放使用者的信息,来确保系统的安全性。用户信息实体的ER图如图4-3所示。图4-3 用户信息实体ER图客人信息表用以存放入住客人的相关信息,该表只存放一些基本的有用的客人信息以方便对客人的管理,避免给客人造成麻烦。客人信息实体的ER图如图4-4所示。图4-4 客人信息实体ER图VIP表用以存放办理会员的客人的相关信息,并且在存储时给予特定的标识值,结账时给予VIP用户优惠。并且会统计VIP用户的消费情况,给予相对的优惠。会员信息实体的ER图如图4-5所示。图4-5 会员信息实体ER图房间信息表用以存放客房的信息,方便用户的查询以及对客房的操作。房间信息实体的ER图如图4-6所示。图4-6 房间信息实体ER图房间类型表用以存放入客房的分类信息,该表存放了房间的具体信息,类型ID与房间信息中的类型ID相关联。房间类型信息实体的ER图如图4-7所示。图4-7 房间类型信息实体ER图预订信息表用以存放客人预订房间的相关信息,该表存放预订客户的信息,房间ID以及入住时间。预订信息实体的ER图如图4-8所示。图4-8 预订信息实体ER图消费记录信息表用以客人入住消费的记录,存放消费客人信息以及所住客房的相关信息,方便查询。历史信息实体的ER图如图4-9所示。图4-9 消费记录信息实体ER图4.2.2 数据库逻辑结构设计根据以上ER图在数据库hotel中创建各个表,各个表的结构如何如下。(1)user(用户信息表)。该表用于保存所有用户信息,该表的主键是userId,该表的结构如表4-1所示。表4-1 用户信息表字段名数据类型主键描述userIdvarchar是用户IDnamevarchar否用户姓名pwdvarchar否密码roleint否权限值phonevarchar否电话gendervarchar否性别(2)guest(客人信息表)。该表用于保存所有入住客人的信息,该表的主键是guestId,该表的结构如表4-2所示。表4-2 客人信息表字段名数据类型主键描述guestIdvarchar是用户IDnamevarchar否姓名phonevarchar否电话saveTimebigint否入住时间roomIdvarchar否房间号cashint否押金typeint否客户类型(3)vip(会员信息表)。该表用于保存所有会员信息,该表的主键是vipId,该表的结构如表4-3所示。表4-3 会员信息表字段名数据类型主键描述vipIdvarchar是用户IDnamevarchar否用户姓名phonevarchar否电话typeint否类型allPaidvarchar否消费总额lastTimevarchar否上次消费时间(4)room(房间信息表)。该表用于保存所有房间信息,该表的主键是roomId,该表的结构如表4-4所示。表4-4 房间信息表字段名数据类型主键描述roomIdvarchar是房间IDroomTypevarchar否房间类型statusvarchar否状态notevarchar否备注(5)roomtype(房间类型信息表)。该表用于保存所有房间类型信息,该表的主键是typeId,该表的结构如表4-5所示。表4-5 房间类型信息表字段名数据类型主键描述typeIdvarchar是类型IDnamevarchar否类型名称pricevarchar否价格bedNumvarchar否床数量computervarchar否电脑情况tvvarchar否电视情况notevarchar否备注(6)bookInfo(预订信息表)。该表用于保存所有预订房间信息,该表的主键是bookId,该表的结构如表4-6所示。表4-6预订信息表字段名数据类型主键描述bookIdvarchar是预订IDroomIdvarchar否房间IDguestIdvarchar否客人IDbeginTimebigint否入住时间bookTimebigint否预定时间(7)history(消费记录信息表)。该表用于保存所有消费记录信息,该表的主键是historyId,该表的结构如表4-7所示。表4-7 消费记录信息表字段名数据类型主键描述historyIdint是消费记录IDroomIdvarchar否房间IDguestIdvarchar否客人IDguestNamevarchar否客人姓名beginTimebigint否入住时间endTimebigint否退房时间totalvarchar否消费金额4.2.3 文件夹组织结构图4-10 项目文件夹组织结构图第5章 系统的详细设计与实现本次毕业设计开发工具选用的是JAVA,数据库是使用的是MySQL 数据库。该程序是建立在MVC三层结构基础之上的。本系统基于B/S结构,采用结合了JAVA、SSH、J2EE等技术模式进行开发,在底层使用SQL数据库管理系统实现。5.1系统结构的实现本系统采用MVC三层结构进行设计,这三层分别是表示层,业务层和持久层。表示层中所执行的内容主要有:利用JSP实现页面间的交互,Service用来接收用户提交的表单等信息,然后Struts.xml将接收到的信息交给Action处理。在业务层中,Spring向Action提供数据处理,DAO完成业务逻辑,并提供事务处理,在持久层中,Hibernate对象化映射和数据,交互处理Dao请求的数据并返回结果。设计中涉及到了几个主要的Java文件,包括Action,Entity,Dao,Service。Action:提交表单后通过xml文件交给Action处理,先倒入User等一系列的类所在的包,其后实例化一个对象,数据从页面获取来之后执行set方法设置这个对象,然后执行save方法,执行save操作必须注入相应的Service才能调用相应的save方法。Service:该文件在需要用到的时候调用Dao接口实现增,删,改,查的相应操作,完成与数据库的联动操作。Entity:该文件是做出的Java文件,定义了各个类的实例,并写入了相应的get和set方法。Dao:Dao是一个interface接口,该接口定义了增,删,改,查的方法,以及接口的实现。5.2 用户登录的实现在安装部署本系统并且启动服务器以后,系统用户可通过在浏览器输入地址http:/localhost:8080/SSHotel/login.jsp进入系统登录页面。用户通过登录模块登录本系统时,便可按照相应的权限值role进行使用本系统的相关功能。在进入登陆界面后,通过输入账号和密码来判断是否成功登陆系统。管理员和普通用户是一样的。在账号部分应用表单input将类型设为text就可以输入相应账号,在密码输入部分,将表单input的类型设为passwor