版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 網(wǎng)絡(luò)教育學(xué)院本 科 生 畢 業(yè) 論 文(設(shè) 計(jì))題 目:基于j2ee的酒店預(yù)訂系統(tǒng)設(shè)計(jì)與開發(fā)學(xué)習(xí)中心: 天津財(cái)貿(mào)奧鵬學(xué)習(xí)中心12層 次: ??破瘘c(diǎn)本科 專 業(yè): 網(wǎng)絡(luò)工程 內(nèi)容摘要論文針對酒店管理系統(tǒng)客房在位置上的分散性,邏輯上的集中性,以及客戶的松散耦合等特殊性,服務(wù)多樣性等;該系統(tǒng)采用面向?qū)ο筌浖7椒?,進(jìn)行系統(tǒng)需求分析;提出了系統(tǒng)的總體設(shè)計(jì)方案,并采用自頂向下逐步求精的軟件設(shè)計(jì)方法,融入面向?qū)ο蟮姆治鍪侄魏脱芯糠椒?。在酒店管理系統(tǒng)的建立過程中,主要參照萬維大酒店的服務(wù)流程,結(jié)合當(dāng)前酒店工作人員的計(jì)算機(jī)操作能力,完成了系統(tǒng)的需求、設(shè)計(jì)和編碼方案。本文首先結(jié)合需求調(diào)查對該系統(tǒng)的開發(fā)背景、
2、開發(fā)目標(biāo)、數(shù)據(jù)庫設(shè)計(jì)等進(jìn)行了簡要闡述;其次對系統(tǒng)開發(fā)過程中所涉及到的架構(gòu)知識、技術(shù)規(guī)范進(jìn)行了說明,如java ee標(biāo)準(zhǔn)、jsp技術(shù)、spring框架、hibernate框架以及ajax技術(shù)等;最后對本系統(tǒng)中的三個(gè)核心模塊客房設(shè)置模塊、入住登記模塊、結(jié)賬模塊的開發(fā)過程進(jìn)行了詳細(xì)分析和說明,并附帶有部分源代碼和演示效果圖。在系統(tǒng)設(shè)計(jì)上,采用基于java ee體系結(jié)構(gòu)和b/s模式的web應(yīng)用體系;采用java作為開發(fā)工具,它具有簡單性、平臺無關(guān)性、分布式、可移植性、多線程等特性;采用高性能的免費(fèi)數(shù)據(jù)庫服務(wù)器mysql作為后臺數(shù)據(jù)庫服務(wù)器。關(guān)鍵詞:酒店管理系統(tǒng);b/s 結(jié)構(gòu);java目 錄內(nèi)容摘要i1
3、 概述31.1 研究背景31.2 研究意義31.3 研究內(nèi)容42 系統(tǒng)相關(guān)技術(shù)介紹52.1 b/s 結(jié)構(gòu)52.2 java ee 架構(gòu)52.3 mvc 模式52.4 ajax 技術(shù)62.5 spring 技術(shù)62.6 hibernate 技術(shù)63 系統(tǒng)需求分析83.1 總體業(yè)務(wù)分析83.2 用例分析93.3 功能分析164 系統(tǒng)的設(shè)計(jì)184.1 系統(tǒng)總體設(shè)計(jì)184.2 系統(tǒng)設(shè)計(jì)184.2.1 實(shí)體域模型設(shè)計(jì)194.2.2 dao 模型設(shè)計(jì)194.2.3 過程域模型設(shè)計(jì)204.2.4 控制模型設(shè)計(jì)214.2.5 視圖模型設(shè)計(jì)234.3 數(shù)據(jù)庫分析與設(shè)計(jì)234.3.1 數(shù)據(jù)庫分析234.3.2 數(shù)
4、據(jù)庫概念設(shè)計(jì)234.3.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)285、系統(tǒng)的實(shí)現(xiàn)325.1 登陸模塊的實(shí)現(xiàn)325.2 客戶預(yù)定模塊345.3 查詢模塊405.4 入住模塊435.6 退房模塊446 結(jié)論與展望49參考文獻(xiàn)501 概述隨著我國社會(huì)的不斷發(fā)展,一些新興的產(chǎn)業(yè)和經(jīng)營管理類行業(yè)不斷地發(fā)展壯大,對一些管理類產(chǎn)業(yè)的考驗(yàn)也越來越大。對于目前廣泛存在的餐飲和酒店管理來說,傳統(tǒng)的信息管理模式主要是通過紙介質(zhì)進(jìn)行的,一些中小型酒店或賓館信息的處理方面也主要以人工方式為主。本章描述系統(tǒng)開發(fā)的背景,意義和研究內(nèi)容。1.1 研究背景隨著計(jì)算機(jī)技術(shù)的發(fā)展,計(jì)算機(jī)管理系統(tǒng)已經(jīng)深入到各個(gè)行業(yè),其中賓館酒店也正在尋求與之業(yè)務(wù)相
5、適應(yīng)的計(jì)算機(jī)管理的途徑,進(jìn)而實(shí)現(xiàn)管理的集中性、反應(yīng)的快速性,使其經(jīng)濟(jì)效率得以提高、運(yùn)行和管理成本降低。但是目前酒店管理軟件一般都是為大型賓館酒店而開發(fā)的,成本高、系統(tǒng)復(fù)雜,不適用于中小型酒店和新型的多功能的酒店,因而開發(fā)一套廣泛適用于中小型賓館酒店的管理系統(tǒng)就顯得格外重要。綜合計(jì)算機(jī)與互聯(lián)網(wǎng)的開發(fā)技術(shù)來開發(fā)賓館酒店管理系統(tǒng),不僅可以使管理效率提高,而且還可以使其經(jīng)濟(jì)效率得以提高、運(yùn)行和管理成本降低、實(shí)現(xiàn)資源的共享。賓館酒店管理系統(tǒng)正是針對上述需求開發(fā)的。該系統(tǒng)是一套全方位、可按模塊進(jìn)行高度集成的賓館酒店管理系統(tǒng),其功能全面,性能穩(wěn)定,界面美觀簡潔,易于操作,解決了賓館酒店的員工對于電腦操作普遍
6、生疏的問題,同時(shí)也提高對賓館酒店管理的效率。1.2 研究意義系統(tǒng)開發(fā)目的是通過使用當(dāng)下主流的軟件架構(gòu)、ui框架、設(shè)計(jì)理念開發(fā)一套 b/s模式的、涵蓋酒店全業(yè)務(wù)內(nèi)容的、各個(gè)模塊可以良好進(jìn)行組織分離的、實(shí)用的、界面友好的酒店管理系統(tǒng)。開發(fā) b/s酒店管理系統(tǒng),符合計(jì)算機(jī)應(yīng)用發(fā)展的客觀形勢。按照當(dāng)前的計(jì)算機(jī)應(yīng)用發(fā)展趨勢,計(jì)算機(jī)管理應(yīng)用系統(tǒng)正在從早期的 c/s 模式大規(guī)模步入 b/s模式,并正在局部進(jìn)入小客戶端、大服務(wù)器的發(fā)展方向,因此,b/s 中小型賓館酒店管理系統(tǒng)的開發(fā)實(shí)施是符合這樣的一個(gè)客觀現(xiàn)實(shí),同時(shí)通過這一開發(fā)工作,也能為將來的多種客戶端、多種數(shù)據(jù)交換的開發(fā)工作打下基礎(chǔ)。開發(fā)b/s酒店管理系統(tǒng)
7、,是酒店賓館的實(shí)際需求。酒店賓館一直在使用早期開發(fā)的 c/s 的系統(tǒng),客戶普遍有更為節(jié)省維護(hù)費(fèi)用、升級現(xiàn)有的操作系統(tǒng)、信息共享更大化的實(shí)際意愿需求。開發(fā) b/s酒店管理系統(tǒng),會(huì)將最先進(jìn)的酒店管理理念柔和到系統(tǒng)中,幫助酒店賓館的管理方式更符合現(xiàn)代的酒店管理模式,提高客戶的競爭力。開發(fā) b/s酒店管理系統(tǒng),能夠提高酒店賓館的效率,降低人力成本。1.3 國內(nèi)外現(xiàn)狀國外計(jì)算機(jī)技術(shù)起步較早,上世紀(jì)中葉就使用計(jì)算機(jī)軟件進(jìn)行業(yè)務(wù)處理,1954年美國使就開始使用計(jì)算機(jī)軟件進(jìn)行工資單的處理9。我國計(jì)算機(jī)軟件管理起步較晚,但是自改革開放之后我國的計(jì)算機(jī)管理應(yīng)用有了較大的發(fā)展。隨著改革開放的深入,國民經(jīng)濟(jì)收入提高,
8、人們消費(fèi)觀念轉(zhuǎn)變。特別是旅游業(yè)的快速發(fā)展,帶動(dòng)我國旅游相關(guān)產(chǎn)業(yè)升級轉(zhuǎn)型。酒店客房作為旅游者休息起居的主要場所,為人們出行帶來便利。目前相關(guān)的酒店客房服務(wù),能為客戶提供準(zhǔn)確、及時(shí)的客房信息,是酒店客房服務(wù)的一個(gè)重要體現(xiàn)6。 市場上酒店客房相關(guān)服務(wù)產(chǎn)品有了極大的豐富。酒店客房管理系統(tǒng)的設(shè)計(jì)初衷,就是為客戶管理信息提供完善、可靠、準(zhǔn)確的信息,為酒店客房管理者提供更加直觀化的操作平臺。本系統(tǒng)采用struts2和hibernate技術(shù)。用戶在系統(tǒng)中進(jìn)行客房預(yù)訂,客房結(jié)算,會(huì)員信息管理,客房信息管理,以及相關(guān)日志記錄查詢等工作。1.4 研究內(nèi)容本論文主要研究 b/s 模式下基于 jsp的酒店管理系統(tǒng)的設(shè)計(jì)
9、與實(shí)現(xiàn)。論文集中分析了b/s模式酒店管理信息系統(tǒng)構(gòu)建的技術(shù)基礎(chǔ)、可行性,重點(diǎn)討論了酒店管理信息系統(tǒng)具體模塊的設(shè)計(jì)。論文在對酒店的業(yè)務(wù)與管理需求進(jìn)行系統(tǒng)分析基礎(chǔ)上,運(yùn)用uml對系統(tǒng)進(jìn)行建模,分別創(chuàng)建了具體功能模塊的用例圖和交互視圖。在系統(tǒng)實(shí)現(xiàn)方面采用 rup(統(tǒng)一過程)的流程進(jìn)行開發(fā)。在論文撰寫過程中從系統(tǒng)需求出發(fā),設(shè)計(jì)與實(shí)現(xiàn)并重。設(shè)計(jì)部分突出了數(shù)據(jù)庫表的設(shè)計(jì)和子系統(tǒng)模塊的設(shè)計(jì)過程;實(shí)現(xiàn)部分,比較詳細(xì)的描述了 hibernate、spring 和 ajax 等框架技術(shù)在酒店管理系統(tǒng)中的應(yīng)用,并附有相關(guān)模塊代碼,方便對照研究。1.5主要內(nèi)容結(jié)構(gòu)及組織框架請?jiān)诖颂幪砑游淖值恼鹿?jié)和組織框架介紹。2 系
10、統(tǒng)相關(guān)技術(shù)介紹本章對軟件開發(fā)環(huán)境進(jìn)行介紹外,對j2ee框架與結(jié)構(gòu)不僅實(shí)現(xiàn)了編程語言開發(fā)、環(huán)境代碼編譯、過程組件的配置、應(yīng)用程序的運(yùn)行、調(diào)用的對象交互等各個(gè)層次上的功能,而且還為 web 服務(wù)和普通的應(yīng)用程序以及功能接口提供了一個(gè)兼容托管、安全、高效的運(yùn)行環(huán)境。2.1 b/s 結(jié)構(gòu)browser/server 結(jié)構(gòu)是 web 興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,web 瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡化了系統(tǒng)的開發(fā)、維護(hù)和使用??蛻魴C(jī)上只要安裝一個(gè)瀏覽器,瀏覽器通過 web server 同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。b/s 結(jié)構(gòu)最大的優(yōu)點(diǎn)就是可以在
11、任何地方進(jìn)行操作而不用安裝專門的軟件,只要有一臺可以上網(wǎng)的電腦就能夠使用,實(shí)現(xiàn)客戶端零維護(hù)。系統(tǒng)的擴(kuò)展也非常容易。b/s 結(jié)構(gòu)的使用越來越多,它的程序也能在客戶端電腦上進(jìn)行部分處理,從而大大的減輕了服務(wù)器的負(fù)擔(dān),并增加了交互性,能進(jìn)行局部實(shí)時(shí)刷新。2.2 java ee 架構(gòu)sun 公司推出的 javaee 是一系列技術(shù)和標(biāo)準(zhǔn)的集合,javaee 試圖通過構(gòu)建一個(gè)新的架構(gòu)來滿足互聯(lián)網(wǎng)對性能、安全性、易用性、可用性、可擴(kuò)充性、分布式的需要。javaee 提供了如下的技術(shù)來滿足上述要求:servlet/jsp 用來滿足對網(wǎng)絡(luò)請求進(jìn)行處理的功能;jta/jts 用來提供事務(wù)服務(wù)和分布式事務(wù)管理功能;
12、jms/jdbc/webserivice/mail/rmi/ejb 提供了交互支持,不同系統(tǒng)之間可以通過多種方式交互;jaas 提供了對 java 組建的安全保護(hù)功能;jpa 提供了對象關(guān)系映射,相對于其他映射工具來說,jpa 提供了最小的特性;javaeeapplication server 提供了集群、負(fù)載均衡、支持功能。javaee 還提供了其他的技術(shù)來滿足企業(yè)應(yīng)用,在此就不一一列舉了,下面僅介紹本系統(tǒng)用到的部分技術(shù)。2.3 mvc 模式mvc 的英文全稱是 model-view-controller,即“模式-視圖-控制器”。該模式的含義是不管是視圖的改變還是模型的改變,或者控制器的改
13、變,都會(huì)引起另外兩個(gè)的改變,按照模型層、視圖層、控制層進(jìn)行分解,從而使得整個(gè)系統(tǒng)責(zé)任明確、接口清晰,加快了設(shè)計(jì)開發(fā)過程。模型是指業(yè)務(wù)邏輯的處理和數(shù)據(jù)的存儲(chǔ)。模型接受視圖請求的數(shù)據(jù),并返回最終的處理結(jié)果。視圖層主要是用來展現(xiàn)用戶所需要的數(shù)據(jù),它是用戶和系統(tǒng)進(jìn)行交互的界面,一般可以采用 html 頁面、xml、applet 和 jsp 等技術(shù)??刂茖泳褪且粋€(gè)中轉(zhuǎn)站,它從用戶那里接受請求,將模型與視圖匹配在一起,共同完成用戶的請求。通過上面的解釋,可以得出 mvc 的處理過程:首先用戶通過視圖層發(fā)出請求,接著控制器接收用戶的請求,并決定應(yīng)該調(diào)用哪個(gè)模型來進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來處理用戶的請求并
14、返回?cái)?shù)據(jù),最后控制器將處理后的數(shù)據(jù)傳遞給視圖層,并通過視圖層展現(xiàn)給用戶。2.4 ajax 技術(shù)ajax 并不是一個(gè)新技術(shù),它其實(shí)是整合了 xmlhttprequest、javascript、dom、css、xml 等眾多技術(shù)的一個(gè)綜合體。ajax 主要是增強(qiáng)了用戶體驗(yàn)。隨著 ajax的逐漸流行,很多的 ajax 框架便應(yīng)運(yùn)而生了,比如 ext、prototype、dojo、dwr、gwt、buffalo 等。方便了開發(fā),本系統(tǒng)主要使用 ext 進(jìn)行 ajax 開發(fā)。ext 積累了眾多的組件,有表格、表單、動(dòng)態(tài)樹、菜單、工具條、對話框等。2.5 spring 技術(shù)spring 提供了一個(gè)集成的框
15、架,通過它可以解決一些常見的 javaee 問題。spring 的核心基礎(chǔ)是依賴反轉(zhuǎn)控制器,他鼓勵(lì)好的編程習(xí)慣,比如針對接口而不是類進(jìn)行編程;它還提供了一個(gè)獨(dú)特的數(shù)據(jù)訪問抽象,可以很方便的和 hibernate、jpa等進(jìn)行整合;另外使用 spring 可以選擇使用編程式事務(wù)或者聲明式事務(wù)處理,而且 spring 還提供了一個(gè)強(qiáng)大的 mvc 框架。spring 的核心是控制反轉(zhuǎn),又稱為依賴注入,其思想就是通常所說的“實(shí)現(xiàn)必須依賴抽象”,或者叫面向接口編程。除了控制反轉(zhuǎn),spring 還提供了分發(fā)器的功能,以實(shí)現(xiàn) mvc 中的控制層功能。2.6 hibernate 技術(shù)hibernate 是一個(gè)
16、開放源代碼的對象關(guān)系映射框架。hibernate 目的就是在應(yīng)用程序和數(shù)據(jù)庫之間建立一種映射關(guān)系,通過這種映射關(guān)系的建立使得開發(fā)人員完全用 oo 的思想去設(shè)計(jì)業(yè)務(wù)邏輯,而數(shù)據(jù)的存儲(chǔ)依然使用關(guān)系型數(shù)據(jù)庫。hibernate中持久化的狀態(tài)有 3 中表現(xiàn)形式,分別是瞬時(shí)狀態(tài),持久化狀態(tài)和托管狀態(tài)。現(xiàn)在hibernate在持久化類和數(shù)據(jù)庫之間建立映射關(guān)系除了通過xml文件還可以支持annotations.3 系統(tǒng)需求分析通過對系統(tǒng)的分析,制定出了如上本系統(tǒng)主要結(jié)構(gòu)功能的設(shè)計(jì),依靠此設(shè)計(jì),制定除了本系統(tǒng)的實(shí)施方案,之后按照各個(gè)功能點(diǎn)完成詳細(xì)設(shè)計(jì),將每一個(gè)模塊對應(yīng)的參數(shù)定義詳細(xì)的命名規(guī)范,設(shè)計(jì)好數(shù)據(jù)庫,完
17、成整個(gè)系統(tǒng)的開發(fā)。然后設(shè)計(jì)進(jìn)行整個(gè)系統(tǒng)的性能測試,研究其是否具有較強(qiáng)的系統(tǒng)抗壓能力。3.1 總體業(yè)務(wù)分析酒店管理系統(tǒng)是管理信息系統(tǒng)在酒店業(yè)務(wù)處理方面的應(yīng)用。從總體上講,客戶要求該系統(tǒng)應(yīng)具有操作人員識別模塊,并且具備一般系統(tǒng)所具有的客房預(yù)訂功能,客房狀態(tài)更改功能,入住客人資料登記功能,客房信息設(shè)置功能,賬單查詢功能等。除這些基本功能外,客戶要求該系統(tǒng)具備一定的統(tǒng)計(jì)能力,如對酒店每月的營業(yè)額進(jìn)行統(tǒng)計(jì)。另外,客戶要求該系統(tǒng)升級維護(hù)方便,使用簡單,容易上手操作,界面簡單明了,所反映的信息直觀等。掌握了客戶對該系統(tǒng)的總體功能要求后,通過與客戶的溝通,了解到系統(tǒng)更詳細(xì)的需求用例。1、該酒店的客房有不同的檔
18、次,需要系統(tǒng)能夠?qū)头窟M(jìn)行分類管理,如增加某類客房的房間,刪除某類型客房的房間,查找該類型客房的具體房間信息,更改房間類型。2、該酒店管理系統(tǒng)應(yīng)具有操作人員識別模塊,以區(qū)別每項(xiàng)業(yè)務(wù)是由哪位工作人員操作。即該系統(tǒng)應(yīng)設(shè)置登錄模塊。3、為了方便對客房價(jià)格的設(shè)置,需要系統(tǒng)提供對不同類型的客房進(jìn)行預(yù)定價(jià)格、預(yù)定折扣、計(jì)時(shí)最低價(jià)格等的設(shè)置功能。4、需要提供一個(gè)客房設(shè)置模塊,用來設(shè)置酒店的所有客房信息。在設(shè)置客房信息時(shí),應(yīng)該提供對不同房間實(shí)際價(jià)格、實(shí)際折扣的設(shè)置。5、特別重要的是能夠了解到所有房間的當(dāng)前狀態(tài)以及是否可用,這樣能夠方便酒店對所有客房的當(dāng)前狀態(tài)進(jìn)行及時(shí)管理,如對于已經(jīng)退房的房間可以通知保潔員清潔
19、房間,對于未入住的房間可以安排客人入住使用,對于已經(jīng)入住的房間及時(shí)跟蹤客人是否續(xù)住等。6、需要提供入住登記功能,并能夠根據(jù)客戶的入住時(shí)間、離店時(shí)間、客戶資料、入住房間等信息進(jìn)行查詢。7、需要客房預(yù)定功能,能夠處理客戶的各種預(yù)定,如電話預(yù)定、總臺面約、上預(yù)定或領(lǐng)導(dǎo)安排等等預(yù)定方式。8、需要提供一個(gè)入住客人信息管理功能,從而實(shí)現(xiàn)對酒店的客人信息的統(tǒng)一管理,如根據(jù)身份證號進(jìn)行客戶查詢,根據(jù)入住日期進(jìn)行查詢,更改客人的聯(lián)系方式等。9、系統(tǒng)還要提供業(yè)務(wù)統(tǒng)計(jì)報(bào)表功能,能夠?qū)频暌荒曛忻吭碌淖∷薹块g數(shù)進(jìn)行統(tǒng)計(jì),然后繪圖顯示。3.2 用例分析根據(jù)前期掌握的用戶需求分析信息,在酒店管理系統(tǒng)中設(shè)置兩種權(quán)限角色,分
20、別是普通操作員和管理員。這兩種角色所對應(yīng)的用例圖如下所示。圖 3-1 普通操作員用例圖對圖 3-1 普通操作員用例圖的分析可以看出。普通操作員只能使用前臺系統(tǒng),能夠處理入住登記、退房結(jié)賬、預(yù)定管理、客戶管理、業(yè)務(wù)統(tǒng)計(jì)等操作。圖 3-2 管理員用例圖管理員是系統(tǒng)的管理者,擁有最高權(quán)限。管理員除了可以使用前臺系統(tǒng)外,還可以使用系統(tǒng)的后臺。通過后臺可以對酒店的客房類型、客房、操作員進(jìn)行設(shè)置,管理員用例圖如圖3-2 所示。根據(jù)上述用例圖,下面通過挑選該系統(tǒng)典型模塊進(jìn)行分析說明。1、登錄模塊系統(tǒng)會(huì)判斷用戶的用戶名和密碼是否正確。當(dāng)判斷用戶是普通操作員時(shí),用戶僅能在前臺界面操作,流程圖如圖3-3 操作員登
21、陸業(yè)務(wù)流程圖所示;當(dāng)用戶是管理員時(shí),用戶不僅能操作前臺系統(tǒng),還可以操作后臺系統(tǒng),流程圖如圖3-4 管理員登陸業(yè)務(wù)流程圖所示。圖3-3 操作員登陸業(yè)務(wù)流程圖圖3-4 管理員登陸業(yè)務(wù)流程圖2、入住登記系統(tǒng)首先判斷用戶登陸的合法性,通過校驗(yàn)后的操作員或管理員系統(tǒng)前臺首頁,未通過登陸認(rèn)證的人員返回登陸首頁繼續(xù)認(rèn)證。進(jìn)入前臺首頁的管理員或操作員點(diǎn)擊進(jìn)入登記信息模塊,接下來填寫入住客人的個(gè)人信息如身份證號,姓名,電話等個(gè)人信息,并在所有客房中選擇可以使用的客房進(jìn)行登記。系統(tǒng)會(huì)對提交的客人信息如身份證號進(jìn)行數(shù)據(jù)校驗(yàn),并對選擇的房間狀態(tài)進(jìn)行校驗(yàn),如果選擇的房間不是空閑房間或者身份證號不符,客戶登記失敗,并返回
22、登記信息繼續(xù)登記。如果校驗(yàn)通過,房間狀態(tài)更改為正在使用,信息寫入數(shù)據(jù)庫,系統(tǒng)反饋登記成功。整個(gè)業(yè)務(wù)流程如圖3-5 入住登記業(yè)務(wù)流程圖所示。圖3-5 入住登記業(yè)務(wù)流程圖3、預(yù)定管理首先判斷用戶的合法性,通過校驗(yàn)后操作員或管理員可以進(jìn)行預(yù)定業(yè)務(wù)的操作,業(yè)務(wù)流程如圖3-6 所示。圖3-6 預(yù)定業(yè)務(wù)流程圖(1)預(yù)訂管理用例圖圖3-7描述了前臺預(yù)訂人員在進(jìn)行散客預(yù)訂時(shí)可進(jìn)行的操作,執(zhí)行者為前臺工作人員,可實(shí)現(xiàn)的功能是“散客預(yù)訂”和“散客預(yù)訂查詢”,其中用例“預(yù)訂修改”、“預(yù)訂取消”、“預(yù)訂刪除”、“預(yù)訂恢復(fù)”都是用例“預(yù)訂查詢”的必需組成部分被使用。圖3-7散客預(yù)訂用例圖(2)接待管理用例圖圖3-8描述
23、了執(zhí)行者“前臺工作人員”在進(jìn)行散客接待時(shí)所進(jìn)行的相關(guān)操作及系統(tǒng)具備的功能。用例“散客入住”的必備功能應(yīng)包括用例“客人信息”、“歷史查詢”、“黑名單查詢”,擴(kuò)展用例則包括用例“散客預(yù)訂入住”、“協(xié)議公司客人入住”、“歷史客人入住”、“會(huì)員入住”和“內(nèi)部用房登記”。圖3-8散客接待用例圖4、客戶信息管理首先進(jìn)行身份認(rèn)證,通過認(rèn)證的操作員或管理員進(jìn)入系統(tǒng)前臺首頁進(jìn)行客人信息管理模塊進(jìn)行業(yè)務(wù)操作。該模塊提供了顯示客戶信息,根據(jù)查詢條件查詢客戶信息,添加新的客戶信息,修改已存在客戶信息,刪除已存在客戶信息的功能。在刪除或修改客戶信息時(shí),系統(tǒng)會(huì)首先進(jìn)行數(shù)據(jù)校驗(yàn),如校驗(yàn)客戶身份證號是否正確,校驗(yàn)客戶軍官證號
24、是否正確等。如果未通過校驗(yàn)則返回客人信息主界面,通過校驗(yàn)則將數(shù)據(jù)寫入數(shù)據(jù)庫,系統(tǒng)顯示數(shù)據(jù)更新成功。整個(gè)客戶信息管理業(yè)務(wù)的流程如圖 3-9 客戶信息管理業(yè)務(wù)流程圖所示。圖3-7 客戶信息管理業(yè)務(wù)流程圖5、業(yè)務(wù)統(tǒng)計(jì)首先判斷用戶的合法性,通過校驗(yàn)后操作員或管理員進(jìn)入前臺首頁,點(diǎn)擊進(jìn)入業(yè)務(wù)統(tǒng)計(jì)模塊,系統(tǒng)主界面顯示該酒店全年酒店入住情況并通過柱狀圖顯示。操作員可以通過刷新界面獲得該圖形的更新。如果需要打印該統(tǒng)計(jì)圖表,系統(tǒng)也提供了打印圖表功能。整個(gè)業(yè)務(wù)流程如圖3-10 酒店業(yè)務(wù)統(tǒng)計(jì)流程圖所示。圖3-10 酒店業(yè)務(wù)統(tǒng)計(jì)流程圖6、客房類型設(shè)置系統(tǒng)首先對登錄人員進(jìn)行認(rèn)證,只有管理員才能進(jìn)入系統(tǒng)維護(hù)頁面。而操作員
25、雖然能進(jìn)入前臺首頁,但無法進(jìn)入后臺頁面,系統(tǒng)維護(hù)屬于后臺頁面范圍。接下來,管理員可以對客房類型進(jìn)行管理,包括添加客房類型,刪除選中的客房類型,更改客房類型,重新加載數(shù)據(jù),保存數(shù)據(jù)的操作??头款愋驮O(shè)置可以改變的內(nèi)容包括房間類別名稱,床位數(shù),預(yù)定價(jià)格,預(yù)定折扣,計(jì)時(shí)最低價(jià),每小時(shí)計(jì)時(shí)價(jià)。這些內(nèi)容更改后,屬于該類別的所有房間的信息都會(huì)更改。當(dāng)管理員點(diǎn)擊保存數(shù)據(jù)后,數(shù)據(jù)被保存進(jìn)數(shù)據(jù)庫。圖3-11 客房類型設(shè)置業(yè)務(wù)流程圖3.3 功能分析酒店管理系統(tǒng)分為后臺和前臺兩個(gè)部分,其中后臺供管理員管理系統(tǒng)之用,包括客房類型設(shè)置模塊、客房設(shè)置模塊以及操作員設(shè)置 3 個(gè)子模塊。模塊的具體功能如下:客房類型設(shè)置模塊:該
26、模塊用來設(shè)置酒店房間的類型,包括新增客房類型,刪除客房類型,編輯已有客房類型,編輯已有客房類型包括修改房間床位數(shù),修改預(yù)定價(jià)格,修改預(yù)定折扣,修改計(jì)時(shí)最低價(jià)的功能??头吭O(shè)置模塊:該模塊用來設(shè)置酒店房間信息,包括新增客房,刪除客房,編輯房間號,編輯客房所在區(qū)域或樓層,編輯房間類型等功能。操作員設(shè)置模塊:該模塊用來管理酒店操作員信息,新增操作員,編輯已有操作員信息,刪除操作員信息等功能。系統(tǒng)前臺供酒店所有工作人員使用,包括入住登記模塊、結(jié)賬模塊、預(yù)定模塊、客戶管理模塊以及業(yè)務(wù)統(tǒng)計(jì)模塊。模塊的具體功能如下:入住登記模塊:該模塊用來登記客戶的入住信息,入住信息包括登記信息,客人信息和費(fèi)用信息三部分。結(jié)
27、賬模塊:該模塊用來處理客戶的退房信息,知道客人入住的房間號碼就可以進(jìn)行退房結(jié)賬。預(yù)定模塊:該模塊用來處理客戶的預(yù)定信息,除了可以新增預(yù)定,還可以對現(xiàn)有預(yù)定信息進(jìn)行管理??蛻艄芾砟K:該模塊用來管理客戶的登記信息,包括新增客戶信息,編輯已有客戶信息,刪除客戶信息等功能。業(yè)務(wù)統(tǒng)計(jì)模塊:該模塊用來統(tǒng)計(jì)一定時(shí)間段內(nèi)酒店客房的出租率,并且以圖形報(bào)表形式顯示。整個(gè)系統(tǒng)的功能模塊如圖3-12 系統(tǒng)功能模塊圖所示。圖3-12 系統(tǒng)功能模塊圖4 系統(tǒng)的設(shè)計(jì)需求調(diào)研完成后,要與用戶進(jìn)行需求確認(rèn)。接下來系統(tǒng)的設(shè)計(jì)工作就可以啟動(dòng)。系統(tǒng)的設(shè)計(jì)一般包括以下步驟:架構(gòu)設(shè)計(jì),系統(tǒng)設(shè)計(jì),數(shù)據(jù)庫設(shè)計(jì)。本章首先對該系統(tǒng)的架構(gòu)設(shè)計(jì)、
28、系統(tǒng)設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)進(jìn)行闡述,最后以該系統(tǒng)的兩個(gè)核心模塊為例,對系統(tǒng)的設(shè)計(jì)和編碼工作進(jìn)行詳細(xì)分析說明。4.1 系統(tǒng)總體設(shè)計(jì)系統(tǒng)管理在本系統(tǒng)中,管理系統(tǒng)模塊主要實(shí)現(xiàn)對酒店預(yù)定添加,修改,修改的管理;客房與用戶信息的查詢管理;入住管理;退房的管理。該模塊中存在4個(gè)子模塊,他們?yōu)槠叫薪Y(jié)構(gòu),關(guān)系如下列圖。客戶預(yù)定模塊查詢信息模塊入住模塊退房模塊 顯所有客戶信息退房登記入住預(yù)定入住查詢房間顯示房間狀態(tài)取消登記預(yù)定登記修改登記圖 4-1 系統(tǒng)模塊圖4.2 系統(tǒng)設(shè)計(jì)企業(yè)級 web 應(yīng)用開發(fā),一般都采用 mvc 架構(gòu),而 spring 是一個(gè)很好的實(shí)現(xiàn)了 mvc 的框架,hibernate 是當(dāng)前最流行的持久
29、層框架。因此,本系統(tǒng)采用 spring與 hibernate 相結(jié)合的方式作為系統(tǒng)的總體開發(fā)框架。另外,系統(tǒng)視圖層主要采用jsp 技術(shù),ajax 技術(shù)作為視圖層的補(bǔ)充。后臺數(shù)據(jù)庫使用 mysql 數(shù)據(jù)庫。系統(tǒng)設(shè)計(jì)階段包括:實(shí)體域模型設(shè)計(jì),dao 模型設(shè)計(jì),過程域模型設(shè)計(jì),控制模型設(shè)計(jì),視圖模型設(shè)計(jì)。4.2.1 實(shí)體域模型設(shè)計(jì)根據(jù)需求調(diào)研可以分析出,該系統(tǒng)主要有以下實(shí)體域:客戶實(shí)體,包括客人編號,客人姓名,客人類型,客人證件類型,客人證件號碼,國籍,住址,郵編,手機(jī)號碼,性別,電子郵件地址等信息??头繉?shí)體,包括客房編號,客房所屬區(qū)域,客房所屬樓層,客房分機(jī)號碼,客房狀態(tài),客房類型,實(shí)際折扣等信息
30、。操作員實(shí)體,包括操作員類型,姓名,操作員用戶名,操作員密碼,操作員權(quán)限,手機(jī)號碼,地址,郵編,創(chuàng)建時(shí)間等信息。客房類型實(shí)體,包括客房類型編號,客房類型名稱,床位數(shù),預(yù)定價(jià)格,預(yù)定折扣,計(jì)時(shí)每小時(shí)價(jià)格等信息。散客入住登記實(shí)體,包括入住登記信息編號,入住登記訂單,入住房間,實(shí)際價(jià)格,已付押金,入住時(shí)間,離開時(shí)間,登記狀態(tài)等信息。團(tuán)體入住登記實(shí)體,包括入住登記信息編號,入住登記信息列表,團(tuán)隊(duì)名稱,人數(shù),客人類型,客人證件類別,客人證件號碼,登記狀態(tài),入住時(shí)間,預(yù)計(jì)離開時(shí)間,實(shí)際離開時(shí)間,已付押金,總費(fèi)用,加床費(fèi),事由等信息。結(jié)賬類型實(shí)體,包括客人編號,結(jié)賬類型,應(yīng)收金額,已付押金,續(xù)收金額,創(chuàng)建時(shí)
31、間,操作員用戶名,結(jié)賬說明等信息。該系統(tǒng)共有 11 個(gè)實(shí)體,除了上述 7 個(gè)主要實(shí)體外,還包括基礎(chǔ)信息實(shí)體,客戶記錄實(shí)體,預(yù)定信息實(shí)體和預(yù)定訂單實(shí)體。4.2.2 dao 模型設(shè)計(jì)有了實(shí)體域模型,還必須有 dao 模型來操作這些實(shí)體。dao 是數(shù)據(jù)訪問接口的縮寫。數(shù)據(jù)訪問顧名思義就是與數(shù)據(jù)庫打交道,數(shù)據(jù)訪問層位于業(yè)務(wù)邏輯層與數(shù)據(jù)庫資源中間。在 javaee 規(guī)范中認(rèn)為,為了建立一個(gè)健壯的應(yīng)用系統(tǒng),應(yīng)該將所有對數(shù)據(jù)源的訪問操作抽象封裝在一個(gè)公共 api 中。在具體編碼過程中,實(shí)際就是建立一個(gè)定義了程序中會(huì)用到的方法的接口,并且編寫單獨(dú)的類來實(shí)現(xiàn)這個(gè)接口,當(dāng)需要與數(shù)據(jù)源進(jìn)行交互時(shí)則使用它。針對每一個(gè)
32、實(shí)體域模型,都有一個(gè) dao 模型與它對應(yīng)。在本系統(tǒng)中,分別有11 個(gè) dao 接口類和實(shí)現(xiàn)類與實(shí)體域模型對應(yīng),這些接口類分別定義了操作相應(yīng)實(shí)體類的方法。另外,還有一個(gè)公共接口類 genericdao,這個(gè)接口定義了一般的增刪改查操作。dao 接口類位于工程的 com.hotelmaster.dao 包中。dao 的實(shí)現(xiàn)類定義在 com.hotelmaster.daoimpl 包中。如圖 4-4dao 接口類與 dao 實(shí)現(xiàn)類包圖所示。4.2.3 過程域模型設(shè)計(jì)實(shí)體域模型和 dao 模型是為了描述實(shí)體對象,以及對實(shí)體的增刪改查操作。對于具體的業(yè)務(wù)邏輯或流程,采用過程域模型來設(shè)計(jì)。在本系統(tǒng)中通過
33、創(chuàng)建一個(gè)公用業(yè)務(wù)邏輯層,來封裝所有的業(yè)務(wù)邏輯操作。公用業(yè)務(wù)邏輯層同樣包含兩個(gè)組成部分,一個(gè)是業(yè)務(wù)邏輯層接口,用來聲明所有的業(yè)務(wù)邏輯方法;一個(gè)是業(yè)務(wù)邏輯層實(shí)現(xiàn)類,用來實(shí)現(xiàn)所有的業(yè)務(wù)邏輯方法。業(yè)務(wù)邏輯的接口類位于工程的 com.hotelmaster.service 包中。業(yè)務(wù)邏輯的實(shí)現(xiàn)類位于工程的 com.hotelmaster.serviceimp 包中。如圖 4-5 業(yè)務(wù)邏輯接口類與業(yè)務(wù)邏輯實(shí)現(xiàn)類包圖所示。圖4-6 dao 接口類與 dao 實(shí)現(xiàn)類包圖4.2.4 控制模型設(shè)計(jì)完成了系統(tǒng)的過程域模型設(shè)計(jì)后,還需要為系統(tǒng)添加業(yè)務(wù)控制器。系統(tǒng)通過該控制器來調(diào)用業(yè)務(wù)邏輯層的業(yè)務(wù)邏輯操作。本系統(tǒng)共創(chuàng)建
34、了 9 個(gè)業(yè)務(wù)控制器,分別完成相應(yīng)的控制功能。系統(tǒng)的業(yè)務(wù)控制器位于工程的 com.hotelmaster.action 包中。如圖4-7 控制層包圖所示。創(chuàng)建完業(yè)務(wù)控制器后,還需要在 spring 的配置文件中配置相關(guān)業(yè)務(wù)的業(yè)務(wù)控制器,為其注入邏輯組件。將對后臺管理模塊和前臺管理模塊的控制模型結(jié)合代碼進(jìn)行詳細(xì)說明。圖4-7 業(yè)務(wù)邏輯接口類與業(yè)務(wù)邏輯實(shí)現(xiàn)類包圖圖4-8 控制層包圖4.2.5 視圖模型設(shè)計(jì)視圖層是與用戶直接交互的一層。本系統(tǒng)使用 jsp 技術(shù)為每一個(gè)功能模塊添加視圖層。在該 jsp 頁面中通過引入各個(gè) js 文件,實(shí)現(xiàn)各種功能。4.3 數(shù)據(jù)庫分析與設(shè)計(jì)4.3.1 數(shù)據(jù)庫分析通過前一
35、節(jié)的分析,已經(jīng)列出了本系統(tǒng)的實(shí)體,有客房類型實(shí)體、客房實(shí)體、客戶實(shí)體、客戶記錄實(shí)體、操作員實(shí)體、入住登記實(shí)體、入住登記訂單等共 11 個(gè)實(shí)體。本節(jié)為這些實(shí)體創(chuàng)建相應(yīng)的數(shù)據(jù)庫表。所有數(shù)據(jù)庫表如圖4-4系統(tǒng)數(shù)據(jù)庫表圖所示。圖4-9系統(tǒng)數(shù)據(jù)庫表圖4.3.2 數(shù)據(jù)庫概念設(shè)計(jì)根據(jù)本系統(tǒng)所要管理的信息,共設(shè)計(jì)規(guī)劃出 11 個(gè)實(shí)體,分別對應(yīng)圖4-4中 11個(gè)數(shù)據(jù)庫表。由于涉及到的數(shù)據(jù)庫表比較多,挑出其中 7 個(gè)具有代表性的數(shù)據(jù)庫表進(jìn)行分析。這 7 個(gè)表之所以具有代表性是因?yàn)樗鼈兩婕翱头吭O(shè)置模塊、入住登記模塊,而這兩個(gè)業(yè)務(wù)模塊基本涵蓋了酒店管理系統(tǒng)的功能。以下小節(jié)分別針對這 7 個(gè)表進(jìn)行數(shù)據(jù)庫概念設(shè)計(jì)。1.客
36、戶信息實(shí)體圖4-10 客戶信息 e-r 圖對酒店管理系統(tǒng)而言,客戶資料是非常重要的資源。通過創(chuàng)建客戶信息實(shí)體,可以保存所有客戶資料,方便查找和記錄??蛻粜畔?shí)體 e-r 模型圖如圖4-6 所示。2. 客房類型信息實(shí)體圖4-11 客房類型 e-r 圖一個(gè)酒店的客房類型會(huì)有許多種,例如標(biāo)準(zhǔn)間、商務(wù)套間、豪華套房等。這就需要?jiǎng)?chuàng)建一個(gè)客房類型信息實(shí)體,用來記錄酒店所有房間類型的信息??头款愋托畔?e-r 模型圖如圖4-8 所示。3.客房信息實(shí)體一個(gè)酒店會(huì)有多個(gè)客房,每個(gè)客房都有房間號、所屬區(qū)域或樓層、房間類型、分機(jī)電話等獨(dú)特信息??头啃畔?shí)體用來保存這些房間所屬信息??头啃畔?e-r圖如圖4-12所示
37、。圖4-12客房信息 e-r 圖4. 操作員信息實(shí)體酒店管理系統(tǒng)可以被多種身份的人員使用,如前臺收銀員、前臺服務(wù)員、酒店經(jīng)理、系統(tǒng)管理員等。這就要?jiǎng)?chuàng)建一個(gè)操作員信息實(shí)體,用來記錄所有操作人員信息。操作員信息 e-r 圖如圖4-13所示。圖4-13操作員信息 e-r 圖5. 入住登記信息實(shí)體客戶入住酒店時(shí),除了記錄其個(gè)人信息外,還需要記錄客戶的入戶時(shí)間、賬單號、入住房間號、離開時(shí)間等其他信息,以便結(jié)算時(shí)使用。這些信息都記錄在入住登記信息實(shí)體中。入住登記信息 e-r 模型圖如圖4-14 所示。圖4-14入住登記信息 e-r 圖6. 團(tuán)體入住登記信息實(shí)體圖4-15團(tuán)體入住登記信息 e-r 圖前面的入
38、住登記信息實(shí)體是能保存單個(gè)客戶的入住登記信息。如果要處理團(tuán)體客戶入住的情況,就需要?jiǎng)?chuàng)建一個(gè)團(tuán)體入住登記信息實(shí)體。通過該實(shí)體保存多個(gè)入住登記信息。團(tuán)體入住登記信息 e-r 模型圖如圖4-13。7. 結(jié)賬信息實(shí)體當(dāng)客戶需要對客房進(jìn)行結(jié)賬或者續(xù)費(fèi)時(shí),就用到了結(jié)賬信息實(shí)體中存儲(chǔ)的結(jié)賬信息。結(jié)賬信息 e-r 圖如圖4-16所示。圖4-16 結(jié)賬信息 e-r 圖4.3.3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)各實(shí)體模型圖創(chuàng)建數(shù)據(jù)庫的邏輯結(jié)構(gòu),數(shù)據(jù)庫各表結(jié)構(gòu)如下。1、客戶信息表表4-1 客戶信息表字段名數(shù)據(jù)類型是否主鍵描述gtidvarchar是客人編號gtnamevarchar否姓名gttypevarchar否類型gt
39、cardctalogvarchar否證件類別gtardidvarchar否證件號gtcountryvarchar否國籍gtaddressvarchar否地址gtzipvarchar否郵編gtcompanyvarchar否公司gtmobilevarchar否電話gtgendervarchar否性別gtemailvarchar否郵件地址gtcreatetimedatatime否創(chuàng)建時(shí)間2、客房類型信息表表4-2 客房類型信息表字段名數(shù)據(jù)類型是否主鍵描述rcidvarchar是客房類型編號rcnamevarchar否客房類型名稱rcbednumerint否床位數(shù)rcprepricefloat否預(yù)定價(jià)
40、格rcpredisconutfloat否預(yù)定折扣rchourbasepricefloat否計(jì)時(shí)最低價(jià)rcperhourpricefloat否計(jì)時(shí)每小時(shí)價(jià)3、客房信息表表4-3 客房信息表字段名數(shù)據(jù)類型是否主鍵描述rmidvarchar是客房編號rmareavarchar否所屬區(qū)域rmfloorvarchar否樓層rmprctpricefloat否價(jià)格rmtelphonevarchar否電話rmstateint否客房狀態(tài)rmavailableint否是夠可用rmcatalogvarchar否類型rmpicturevarchar否圖片rmprctiscountint否折扣4、操作員信息表表4-4
41、操作員信息表字段名數(shù)據(jù)類型是否主鍵描述opusernamevarchar是操作員用戶名oppasswordvarchar否操作員密碼opprivilegeint否操作員權(quán)限opassressvarchar否地址opnamevarchar否姓名optelephonevarchar否電話5、入住登記信息表表4-5 入住登記信息表字段名數(shù)據(jù)類型是否主鍵描述cimidvarchar是入住登記信息編號checkinorder_cioidvarchar否所屬登記訂單編號romm_rmidfloat否入住房間編號cimprctpricefloat否價(jià)格cimdisountfloat否折扣cimindatet
42、imedatetime否進(jìn)店時(shí)間cimindatetimedatetime否離店時(shí)間cimstatevarchar否狀態(tài)6、結(jié)賬信息表表4-6 結(jié)賬信息表字段名數(shù)據(jù)類型是否主鍵描述bmidvarchar是結(jié)賬編號bmcheckinorderidvarchar否訂單編號bmguestidvarchar否客人編號bmtypevarchar否結(jié)賬類型bmtotalratevarchar否應(yīng)收金額bmpaidmoneyvarchar否已付訂金bmreceivmoneyvarchar否續(xù)收金額bmcreatetimevarchar否創(chuàng)建時(shí)間bmoperatorvarchar否操作員bmpaymentmo
43、delvarchar否支付類型bmremarkvarchar否結(jié)賬說明5、系統(tǒng)的實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)的核心是圍繞數(shù)據(jù)庫對信息進(jìn)行加工處理,實(shí)施存取更新等各個(gè)方面的操作,同時(shí)訪問數(shù)據(jù)庫的 sql 語句最最大限度上影響到了網(wǎng)站的性能,因此設(shè)計(jì)合理的數(shù)據(jù)庫表,及數(shù)據(jù)庫訪問函數(shù)顯得相當(dāng)重要;與此同時(shí)網(wǎng)頁中的代碼,也在很大程度上影響著網(wǎng)站的性能,并決定了網(wǎng)站給客戶的直觀印象。在本節(jié)我將主要描述用戶登陸功能的實(shí)現(xiàn)。5.1 登陸模塊的實(shí)現(xiàn)在本次系統(tǒng)中,用戶登陸模塊與普通應(yīng)用系統(tǒng)的用戶登陸是基本相同的。因此當(dāng)一個(gè)用戶登陸管理系統(tǒng)之后,管理員的操作流程如以下圖所示。登陸界面輸入用戶名和密碼 查詢成功 否是登陸管理界面圖
44、5-1登陸操作流程用戶認(rèn)證是進(jìn)入系統(tǒng)前的必要措施,登陸模塊對系統(tǒng)的普通操作員和系統(tǒng)管理員進(jìn)行了分類認(rèn)證。登陸模塊實(shí)現(xiàn)效果如圖5-2 登陸界面所示。圖5-2 登陸界面登陸模塊主要思想為:當(dāng)輸入用戶名和密碼提交后到logincheck控制模塊進(jìn)行處理,當(dāng)輸入正確時(shí)轉(zhuǎn)到j(luò)iemian.jsp;否則回到login.jsp頁面重新輸入,同時(shí)提醒登陸錯(cuò)誤。logincheck代碼如下:request.setcharacterencoding(utf-8);string username=request.getparameter(username);string password=request.getpa
45、rameter(password);datasource ds = null;string message=null;context context;try context = new initialcontext();ds = (datasource) context.lookup(java:/comp/env/jdbc/mysqlds); catch (namingexception e) e.printstacktrace();system.out.println(獲取數(shù)據(jù)源錯(cuò)誤!);try string sql = select username,password from user
46、where username=? and password=?;queryrunner run = new queryrunner(ds);string str=username,password;list list = (list) run.query(sql,str, new beanlisthandler(room.class);if(list.isempty()message=登陸失敗!請重新輸入; request.setattribute(message,message);request.getrequestdispatcher(/login.jsp).forward(request
47、,response);else request.getrequestdispatcher(/jiemian.jsp).forward(request,response); catch (sqlexception e) e.printstacktrace();5.2 客戶預(yù)定模塊預(yù)定模塊有三個(gè)子功能實(shí)現(xiàn):預(yù)定登記,修改登記和取消登記;各子模塊實(shí)現(xiàn)如下:在本系統(tǒng)中,預(yù)定系統(tǒng)模塊主要實(shí)現(xiàn)對酒店預(yù)定添加,修改,取消的管理,關(guān)系如下列圖。添加是為預(yù)定客戶保留預(yù)定信息,流程如下:點(diǎn)擊“添加”按鈕是否有空房 否顯示空列表是顯示空房列表選擇房間彈出預(yù)定客戶客戶信息表輸入客戶信息,點(diǎn)擊確定提示操作成功 圖5-3
48、 “添加”流程圖5-4 預(yù)登記模塊界面截圖預(yù)定登記設(shè)計(jì)思想:當(dāng)?shù)怯洉r(shí)首先經(jīng)過getallroom控制塊處理,獲得還有的空房在roomseachnull.jsp界面顯示,然后選擇預(yù)定的房間進(jìn)行預(yù)定,接著轉(zhuǎn)到addclient.jsp進(jìn)行客戶信息填寫,最后經(jīng)過insertroom到數(shù)據(jù)庫添加。getallroom代碼實(shí)現(xiàn)如下: request.setcharacterencoding(utf-8);string leixing=request.getparameter(leixing);string yuding=request.getparameter(yuding);int i=integer
49、.parseint(leixing);/i!=1;為預(yù)定登記操作 try if(i=1) sql = select roomno,statue,startdate,enddate from room;elsesql = select roomno,statue,startdate,enddate from room where statue=0;queryrunner run = new queryrunner(ds);list list = (list) run.query(sql, new beanlisthandler(room.class); request.setattribute(
50、list,list); if(i=1) request.getrequestdispatcher(/main/roomseach.jsp).forward(request,response); elserequest.setattribute(yuding,yuding); request.getrequestdispatcher(/main/roomseachnull.jsp).forward(request,response); catch (sqlexception e) e.printstacktrace();選擇預(yù)定房間,點(diǎn)擊“預(yù)定”后;預(yù)定客戶信息表設(shè)計(jì)界面如下:圖5-5 預(yù)定客戶
51、信息表界面提交到insertroom對數(shù)據(jù)庫操作:當(dāng)leixing=0時(shí)是預(yù)定操作,leixing=1時(shí)是入住操作,當(dāng)leixing=2時(shí)是退房操作。insertroom代碼如下: request.setcharacterencoding(utf-8);servletcontext application = getservletcontext();string leixing = (string) application.getattribute(leixing);string roomno= (string) application.getattribute(roomno);system.
52、out.println(roomno);system.out.println(leixing); int i=integer.parseint(leixing);datasource ds = null;context context;try context = new initialcontext();ds = (datasource) context.lookup(java:/comp/env/jdbc/mysqlds); catch (namingexception e) e.printstacktrace();system.out.println(獲取數(shù)據(jù)源錯(cuò)誤!);int resul
53、t = 0;string message = null;string sql=null;try switch(i)case 0:sql=update room set statue=1 where roomno=?;break;case 1:sql=update room set statue=2,startdate=now() where roomno=?;break;case 2:sql=update room set enddate=now() where roomno=?;break; string sr = roomno;queryrunner run = new queryrunner(ds);resul
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銷售話術(shù)與溝通技巧訓(xùn)練培訓(xùn)
- 2024年設(shè)備監(jiān)理師考試題庫附答案【輕巧奪冠】
- 跨學(xué)科合作教學(xué)的實(shí)踐探索計(jì)劃
- 旅游行業(yè)前臺員工工作心得
- 鋼鐵冶煉工藝創(chuàng)新
- 2024年設(shè)備監(jiān)理師考試題庫及答案(必刷)
- 2024年美術(shù)教案經(jīng)典
- 分包采購合作協(xié)議(2篇)
- 2024年聯(lián)通智家工程師(初級)認(rèn)證理論備考試題庫(附答案)
- 通關(guān)03 世界史選擇題專練(原卷版)
- 安全生產(chǎn)目標(biāo)考核表
- (高清版)TDT 1042-2013 土地整治工程施工監(jiān)理規(guī)范
- 工程訓(xùn)練(廣東工業(yè)大學(xué))智慧樹知到期末考試答案2024年
- 2023-2024學(xué)年重慶市九龍坡區(qū)高二(上)期末物理試卷(含解析)
- 初中數(shù)學(xué)九年級下冊《位似》(1)教案
- 天全縣儲(chǔ)備林建設(shè)項(xiàng)目施工組織設(shè)計(jì)樣本
- 礦權(quán)收儲(chǔ)方案
- 2022-2023學(xué)年重慶市渝北區(qū)人教PEP版五年級上冊期末英語試卷
- 安徽省合肥市廬江縣2022-2023學(xué)年八年級上學(xué)期期末物理試卷(含答案)
- 造價(jià)年度工作總結(jié)
- 護(hù)理人員應(yīng)急預(yù)案培訓(xùn)課件:居家病人護(hù)理與應(yīng)急服務(wù)
評論
0/150
提交評論