酒店客房管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文.doc
《酒店客房管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《酒店客房管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文.doc(57頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 本科畢業(yè)論文本科畢業(yè)論文(設(shè)計(jì)設(shè)計(jì)) 酒店客房管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 誠(chéng)誠(chéng) 信信 聲聲 明明 我聲明,所呈交的畢業(yè)論文(設(shè)計(jì))是本人在老師指導(dǎo)下進(jìn)行的研究工作 及取得的研究成果。據(jù)我查證,除了文中特別加以標(biāo)注和致謝的地方外,論文 (設(shè)計(jì))中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得其他 教育機(jī)構(gòu)的學(xué)位或證書而使用過的材料。我承諾,論文(設(shè)計(jì))中的所有內(nèi)容 均真實(shí)、可信。 畢業(yè)論文(設(shè)計(jì))作者(簽名): 年 月 日 xxxxxxx 【摘要摘要】基于現(xiàn)代社會(huì)信息的高速傳輸、交流、發(fā)展,過去的酒店客房管 理系統(tǒng)采用 C/S 模式開發(fā),日益顯現(xiàn)其不足。在繼承過去 C/S 模式的酒店客房 管
2、理系統(tǒng)的優(yōu)點(diǎn)下,開發(fā)更加符合現(xiàn)代酒店業(yè)務(wù)的 B/S 模式系統(tǒng)有迫切的需要。 本文主要介紹酒店客房管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方法,包括設(shè)計(jì)目標(biāo)、系統(tǒng) 的功能設(shè)計(jì),數(shù)據(jù)庫(kù)的設(shè)計(jì)、系統(tǒng)所用的具體技術(shù)等等。 系統(tǒng)采用了 JSP 技術(shù)、Struts 為開發(fā)框架、Tomcat 為服務(wù)器,并通過 JDBC 連接數(shù)據(jù)庫(kù) SQL Server2000,Hibernate 作為對(duì)象關(guān)系映射框架。通過上述技術(shù) 的支持,開發(fā)出一個(gè)低成本并且具有穩(wěn)定性、可擴(kuò)展、易維護(hù)的酒店客房管理 系統(tǒng),為酒店的客房管理業(yè)務(wù)提高效率。 【關(guān)鍵詞關(guān)鍵詞】酒店;客房;Struts;JSP II Design and analysis of Ho
3、tel Room Management System Abstract Based on the information in modern society is transmission, exchange and development high-speed,the last hotel room management system developed in C/S model,however we can found that it has more and more shortcoming.In the succession of the C / S mode the advantag
4、es of hotel rooms under management, development more in line with the modern hotel business, B / S model system there is an urgent need. In this paper, hotel rooms management system design and implementation, including design objectives, system functional design, database design, system uses specifi
5、c technologies. System uses the JSP technology, Struts framework for the development, Tomcat as the server and connects to the database via JDBC SQL Server2000, Hibernate for object-relational mapping framework. Through this technology, support, and has developed a low-cost stable, scalable, and eas
6、y maintenance management system for hotel rooms for the hotel rooms management business to improve efficiency. KeywordsHotel Rooms Struts JSP I 目目 錄錄 1前言前言.1 1.1選題背景選題背景1 1.1.1 國(guó)內(nèi)現(xiàn)狀1 1.1.2 國(guó)外情況2 1.2 系統(tǒng)研究的意義系統(tǒng)研究的意義2 1.3 系統(tǒng)開發(fā)環(huán)境及工具介紹系統(tǒng)開發(fā)環(huán)境及工具介紹3 1.3.1 MyEclipse 簡(jiǎn)介3 1.3.2 Tomcat 服務(wù)器簡(jiǎn)介.4 2相關(guān)技術(shù)介紹相關(guān)技術(shù)介紹.5
7、2.1STRUTS框架技術(shù)框架技術(shù)5 2.1.1 Struts 基本概念 .5 2.1.2 Struts 實(shí)現(xiàn) MVC 的原理 .5 2.1.3 Struts 技術(shù)的優(yōu)缺點(diǎn) .8 2.2HIBERNATE框架技術(shù)框架技術(shù).9 2.2.1 什么是 HIBERNATE.9 3 系統(tǒng)分析系統(tǒng)分析.12 3.1 系統(tǒng)可行性分析系統(tǒng)可行性分析.12 3.1.1 經(jīng)濟(jì)可行性分析12 3.1.2 技術(shù)可行性分析12 3.1.3 社會(huì)可行性分析12 3.2 需求分析需求分析.13 3.2.1 系統(tǒng)功能需求13 3.2.2 系統(tǒng)數(shù)據(jù)流圖14 3.2.3 用例圖14 3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)15 3.3.1
8、數(shù)據(jù)庫(kù)的選擇15 II 3.3.2 系統(tǒng) ER 圖.16 3.3.3 數(shù)據(jù)庫(kù)的設(shè)計(jì)18 4 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)21 4.1 系統(tǒng)功能模塊圖系統(tǒng)功能模塊圖.21 4.1.1 酒店客房管理系統(tǒng)總模塊圖21 4.1.2 酒店客房管理系統(tǒng)各個(gè)分模塊圖.21 4.2 系統(tǒng)功能的設(shè)計(jì)系統(tǒng)功能的設(shè)計(jì).23 5 系統(tǒng)架構(gòu)系統(tǒng)架構(gòu)26 5.1 系統(tǒng)架構(gòu)說明系統(tǒng)架構(gòu)說明.26 6系統(tǒng)詳細(xì)設(shè)計(jì)系統(tǒng)詳細(xì)設(shè)計(jì).27 6.1HIBERNATE持久層持久層.27 6.1.1 編寫 PO 類.27 6.1.2 編寫 PO 的映身配置文件.30 6.1.3 連接數(shù)據(jù)庫(kù)32 6.2 DAO 層層33 6.2.1 DAO 的具體實(shí)現(xiàn)
9、33 6.3 WEB層設(shè)計(jì)層設(shè)計(jì).37 6.3.1 Action 的實(shí)現(xiàn).37 7 系統(tǒng)測(cè)試系統(tǒng)測(cè)試40 7.1 酒店客房管理系統(tǒng)的測(cè)試酒店客房管理系統(tǒng)的測(cè)試40 7.2 測(cè)試舉例測(cè)試舉例40 結(jié)束語結(jié)束語49 參考文獻(xiàn)參考文獻(xiàn)50 致致 謝謝51 1 1 前言前言 本系統(tǒng)是案例酒店管理系統(tǒng)的一個(gè)子系統(tǒng)客房管理系統(tǒng)主要完成 Web 服務(wù)器端的用戶管理、前臺(tái)管理、報(bào)表、物品庫(kù)存管理等,各個(gè)管理模塊具有 增、刪、查、改等功能。本文中數(shù)據(jù)庫(kù)服務(wù)器端采用了 SQL Sever 2000 數(shù)據(jù)庫(kù) 并以 Hibernate 技術(shù)進(jìn)行數(shù)據(jù)庫(kù)存取等操作,使 Web 與數(shù)據(jù)庫(kù)緊密聯(lián)系起來。 1.11.1選題背景
10、選題背景 隨著酒店行業(yè)規(guī)模的日益擴(kuò)大,酒店的經(jīng)營(yíng)管理而臨著越來越高的要求, 比如,快速的查詢、快速的登記、顧客的自動(dòng)優(yōu)惠等等。傳統(tǒng)的酒店系統(tǒng)大都 使用 C/S(client/server)模式的計(jì)算機(jī)信息管理系統(tǒng),這種 C/S 式在 20 世紀(jì) 90 年代分布式處理中起到主流系統(tǒng)的作用,它有著自身的一些優(yōu)點(diǎn),如通過在 客戶和服務(wù)之間劃分各自所包含的層次,提高了應(yīng)用的計(jì)算效率,緩解終端/主 機(jī)模式中主機(jī)繁重的負(fù)擔(dān),在終端/主機(jī)模式和文件服務(wù)器模式中找到平衡等; 然而隨著酒店規(guī)模的日益擴(kuò)大,應(yīng)用程序的復(fù)雜程度不斷提高,傳統(tǒng)的(C/S) 模式逐漸暴露出許多問題,如系統(tǒng)的可移植性、可擴(kuò)展性、可維護(hù)性都
11、很差等。 1同時(shí),隨著 Internet 迅速普及以及國(guó)加入 WTO,酒店管理也面臨著許多新的 挑戰(zhàn)和機(jī)遇,如提供遠(yuǎn)程客房預(yù)定、網(wǎng)上信息發(fā)布等等。2 因此,酒店迫切需要開發(fā)出基于 B/S(Browser/ Server)模式的酒店管理 系統(tǒng),以適應(yīng)當(dāng)前酒店行業(yè)的發(fā)展,提供更好的服務(wù)和提高酒店的經(jīng)濟(jì)效益。 設(shè)計(jì)開發(fā)一個(gè)功能齊全、安全、高效、適合自己管理模式的管理信息系統(tǒng),對(duì) 提高酒店的服務(wù)質(zhì)量、提高管理決策水平、減輕勞動(dòng)強(qiáng)度、提高工作效率是十 分重要的。 1.1.1國(guó)內(nèi)現(xiàn)狀國(guó)內(nèi)現(xiàn)狀 在 80 年代初發(fā)展起來的國(guó)內(nèi)的酒店管理系統(tǒng),充分吸收了國(guó)外管理系統(tǒng)的 精華,再結(jié)合國(guó)內(nèi)的實(shí)際情況,逐步發(fā)展成熟,
12、到 90 年代初期已形成了幾個(gè)較 成熟的軟件系統(tǒng),同時(shí),產(chǎn)生了幾家專職從事酒店管理系的公司。到了 90 年代 中后期,隨著計(jì)算機(jī)在酒店中的普及應(yīng)用,計(jì)算機(jī)技術(shù)的不斷發(fā)展,酒店管理 2 系統(tǒng)的發(fā)展到了一個(gè)新的時(shí)期,新的系統(tǒng)平臺(tái)、新的系統(tǒng)點(diǎn)及發(fā)展方向不斷涌 現(xiàn),主要體現(xiàn)在系統(tǒng)基本轉(zhuǎn)到客戶機(jī)/服務(wù)器模式下的 windows 版,功能更加細(xì) 致完善,系統(tǒng)更加穩(wěn)定可靠。對(duì)軟件開發(fā)商來說,小的軟件慢淘汰。3 此外,國(guó)內(nèi)酒店業(yè)的應(yīng)用系統(tǒng)不同,各家供應(yīng)商的軟件也不同。對(duì)于一家 酒店,如果各部門使用的是不同的平臺(tái)、不同的軟件,當(dāng)員工進(jìn)行軟件操作時(shí), 需要學(xué)各種人家,這樣不但使員工的學(xué)習(xí)成本增高,也同時(shí)影響酒店的
13、效率。 對(duì)于連鎖酒店集團(tuán)而言,信息系統(tǒng)沒有實(shí)施標(biāo)準(zhǔn)化是非常嚴(yán)重的問題。酒店不 但需要耗費(fèi)大量財(cái)力去維護(hù)不同的平臺(tái),而且當(dāng)未來同一連鎖集團(tuán)的酒店共享 服務(wù)中心或者實(shí)施電子商務(wù)時(shí),平臺(tái)整合的任務(wù)十分困難和昂貴。 中國(guó)加入 WTO 后,經(jīng)濟(jì)及旅游業(yè)得到了快速發(fā)展,2008 年北京奧運(yùn)會(huì)和 2010 世博會(huì)的舉行,旅游熱等因素給中國(guó)酒店業(yè)發(fā)展帶來了新的機(jī)遇和挑戰(zhàn)。 通過調(diào)查,我國(guó)在 2020 年將會(huì)成為世界上第四大旅游國(guó)家。同時(shí),大量跨國(guó)酒 店集團(tuán)入逐中國(guó)市場(chǎng),由于酒店管理問題引起的競(jìng)爭(zhēng)不力也越來越多的表現(xiàn)了 出來。當(dāng)中,現(xiàn)在甚至還有一些酒店停留在又人工操作和管理階段,這樣已經(jīng) 無法適應(yīng)現(xiàn)代社會(huì)的發(fā)展
14、趨勢(shì)。為了扭轉(zhuǎn)這種情勢(shì),適應(yīng)日益激烈的市場(chǎng)競(jìng)爭(zhēng), 國(guó)內(nèi)已悄悄刮起了一股“數(shù)字酒店”的颶風(fēng)。4智能化、數(shù)字化的酒店管理系 統(tǒng)已成為當(dāng)今酒店發(fā)展的主要核心競(jìng)爭(zhēng)力量之一。采用先進(jìn)的計(jì)算機(jī)網(wǎng)絡(luò)通信 技術(shù)改變酒店業(yè)務(wù)模式,實(shí)現(xiàn)酒店業(yè)務(wù)管理的自動(dòng)化已經(jīng)成為一種必然。 1.1.21.1.2 國(guó)外情況國(guó)外情況 世界范圍的酒店 IT 商家,擁有 OP-ERA,F(xiàn)idelio,F(xiàn)idelio,xPres。品牌 的 MICROS-Fidelio 和擁有 HISParagon,CLs,LogicTouch 品牌的 MAI 無疑是 已經(jīng)形成壟斷地位的行業(yè)領(lǐng)先者。但他們也意識(shí)到由于新技術(shù)的不斷涌現(xiàn),酒 店 IT 應(yīng)用行業(yè)
15、隨時(shí)可能出現(xiàn)超越他們的黑馬。Fidelio 全球的安裝量超過 8500 家,包括 Marriott,Radisson,Hilton,Wyndham,Bass 等連鎖酒店集團(tuán)均選用 其產(chǎn)品??v觀國(guó)外酒店業(yè)信息化發(fā)展軌跡和趨勢(shì),我們不難看出,隨著酒店業(yè) 競(jìng)的加劇,酒店之間客源的爭(zhēng)奪越來越激烈,客房銷售的利潤(rùn)空間越來越小, 就需要使用更有效的信息化手段,拓展經(jīng)營(yíng)空間,降低運(yùn)營(yíng)成本,提高管理和 決策效率。5 1.21.2系統(tǒng)研究的意義 3 對(duì)于整個(gè)酒店來說,酒店經(jīng)營(yíng)狀況起決定作用的是酒店的服務(wù)管理水平。 如何利用先進(jìn)的管理手段來提高酒店的管理水平成為酒店業(yè)務(wù)發(fā)展的當(dāng)務(wù)之急。 面對(duì)信息時(shí)代的機(jī)遇和挑戰(zhàn),
16、利用科技手段提高酒店的管理無疑是一條行之有 效的途徑。雖然計(jì)算機(jī)管理并不是酒店管理走向成功的關(guān)鍵元素,但它可以最 大限度地發(fā)揮準(zhǔn)確、快捷高效等作用,對(duì)酒店業(yè)務(wù)管理提供強(qiáng)有力的支持。因 此,采用全新的計(jì)算機(jī)網(wǎng)絡(luò)和酒店業(yè)務(wù)管理系統(tǒng),已經(jīng)成為酒店的管理效率, 使作業(yè)人員與管理系統(tǒng)之間靈活互動(dòng),實(shí)現(xiàn)流暢的工作流銜接,幫助酒店有效 地進(jìn)行業(yè)務(wù)管理,釋放最大價(jià)值。酒店業(yè)務(wù)管理系統(tǒng)在達(dá)到節(jié)省人力資源成本 同時(shí),可以提高業(yè)務(wù)效率,并能夠及時(shí)、準(zhǔn)確、迅速地滿足顧客服務(wù)的需求。6 1.31.3系統(tǒng)開發(fā)環(huán)境及工具介紹系統(tǒng)開發(fā)環(huán)境及工具介紹 操作系統(tǒng)平臺(tái):Windows Xp 數(shù)據(jù)庫(kù)服務(wù)器:Microsoft SQL
17、 Server 2000 系統(tǒng)服務(wù)器:Tomcat 開發(fā)工具:MyEclipse 1.3.1 MyEclipse 簡(jiǎn)介簡(jiǎn)介 MyEclipse 企業(yè)級(jí)工作平臺(tái)(MyEclipse Enterprise Workbench ,簡(jiǎn)稱 MyEclipse)是對(duì) Eclipse IDE 的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和 J2EE 的開發(fā)、 發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的 J2EE 集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持 HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。 在結(jié)構(gòu)上,MyEc
18、lipse 的特征可以被分為 7 類: 1. J2EE 模型 2. WEB 開發(fā)工具 3. EJB 開發(fā)工具 4. 應(yīng)用程序服務(wù)器的連接器 5. J2EE 項(xiàng)目部署服務(wù) 6. 數(shù)據(jù)庫(kù)服務(wù) 4 7. MyEclipse 整合幫助 對(duì)于以上每一種功能上的類別,在 Eclipse 中都有相應(yīng)的功能部件,并通過 一系列的插件來實(shí)現(xiàn)它們。MyEclipse 結(jié)構(gòu)上的這種模塊化,可以讓我們?cè)诓挥?響其他模塊的情況下,對(duì)任一模塊進(jìn)行單獨(dú)的擴(kuò)展和升級(jí)。 簡(jiǎn)單而言,MyEclipse 是 Eclipse 的插件,也是一款功能強(qiáng)大的 J2EE 集成 開發(fā)環(huán)境,支持代碼編寫、配置、測(cè)試以及除錯(cuò),MyEclipse6
19、.0 以前版本需先 安裝 Eclipse。MyEclipse6.0 以后版本安裝時(shí)不需安裝 Eclipse。7 1.3.2 Tomcat 服務(wù)器簡(jiǎn)介服務(wù)器簡(jiǎn)介 Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性 好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的 tomcat 標(biāo)志 改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的 功能。 Tomcat 是一個(gè)輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是 很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試 JSP 程序的首選。對(duì)于一個(gè)初學(xué)者來 說,可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好 Apache 服
20、務(wù)器,可利用它響應(yīng)對(duì) HTML 頁面的訪問請(qǐng)求。實(shí)際上 Tomcat 部分是 Apache 服務(wù)器的擴(kuò)展,但它 是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行 tomcat 時(shí),它實(shí)際上作為一個(gè)與 Apache 獨(dú)立的 進(jìn)程單獨(dú)運(yùn)行的。 這里的訣竅是,當(dāng)配置正確時(shí),Apache 為 HTML 頁面服務(wù), 而 Tomcat 實(shí)際上運(yùn)行 JSP 頁面和 Servlet。另外,Tomcat 和 IIS、Apache 等 Web 服務(wù)器一樣,具有處理 HTML 頁面的功能,另外它還是一個(gè) Servlet 和 JSP 容器,獨(dú)立的 Servlet 容器是 Tomcat 的默認(rèn)模式。不過,Tomcat 處理靜態(tài) HTML 的
21、能力不如 Apache 服務(wù)器。目前 Tomcat 最新版本為 7.0.6。 5 2 2 相關(guān)技術(shù)介紹相關(guān)技術(shù)介紹 2.12.1StrutsStruts 框架技術(shù)框架技術(shù) 2.1.1 Struts 基本概念基本概念 Struts 最早于 2000 年 5 月作為 Jakarta 項(xiàng)目的組成部分問世,Jakarta 項(xiàng) 目由 Apache(www.Jakarta.apache.org)基金組織運(yùn)作。JakartaStruts 是 Apache 軟件組織提供的一項(xiàng)開放源代碼項(xiàng)目,它為 Java Web 應(yīng)用提供了 MVC 框架, 尤其適用于開發(fā)大型可擴(kuò)展的 Web 應(yīng)用。Struts 這個(gè)名字來源
22、于在建筑和舊式 飛機(jī)中使用的支撐金屬架。Struts 為 Web 應(yīng)用提供了一個(gè)通用的框架,使得 開發(fā)人員可以把精力集中在如何解決實(shí)際業(yè)務(wù)問題上。此外,Struts 框架提供 了許多可供擴(kuò)展和定制的地方,使得應(yīng)用程序可以方便地?cái)U(kuò)展框架,來更好地 適應(yīng)用戶的實(shí)際需求8。 2.1.2 Struts 實(shí)現(xiàn)實(shí)現(xiàn) MVC 的原理的原理 1MVC 的基本概念 MVC模式(Model模型-View視圖-Controller控制器)是軟件工程中的一種 軟件架構(gòu)模式,是一種常用的設(shè)計(jì)模式。它把軟件系統(tǒng)分為三個(gè)基本部分: (Model模型),(View視圖)和(Controller控制器)。 MVC模式的目的是實(shí)
23、現(xiàn)一種動(dòng)態(tài)的程序設(shè)計(jì),使后續(xù)對(duì)程序的修改和擴(kuò)展 簡(jiǎn)化,并且使程序某一部分的重復(fù)利用成為可能。除此之外此模式通過對(duì)復(fù)雜 度的簡(jiǎn)化使程序結(jié)構(gòu)更加直觀。MVC 減弱了業(yè)務(wù)邏輯接口和數(shù)據(jù)接口之間的 耦合,以及讓視圖層更富于變化。軟件系統(tǒng)通過對(duì)自身基本部份分離的同時(shí)也 賦予了各個(gè)基本部分應(yīng)有的功能。 (控制器Controller)- 負(fù)責(zé)轉(zhuǎn)發(fā)請(qǐng)求,對(duì)請(qǐng)求進(jìn)行處理。 (視圖View) - 界面設(shè)計(jì)人員進(jìn)行圖形界面設(shè)計(jì)。 (模型Model) - 程序員編寫程序應(yīng)有的功能(實(shí)現(xiàn)算法等等)、數(shù)據(jù)庫(kù) 專家進(jìn)行數(shù)據(jù)管理和數(shù)據(jù)庫(kù)設(shè)計(jì)(可以實(shí)現(xiàn)具體的功能) 9。如圖2-1所示: 6 圖 2-1 MVC 模式 2Stru
24、ts 框架實(shí)現(xiàn)原理 隨著 MVC 模式的廣泛應(yīng)用,催生了 MVC 框架的產(chǎn)生。在所有 MVC 的框 架中,出現(xiàn)最早,應(yīng)用最廣的就是 Struts 框架10。Struts 實(shí)質(zhì)上就是在 JSP Model2 地基礎(chǔ)上實(shí)現(xiàn)的一個(gè) MVC 框架。在 Struts 框架中,模型由實(shí)現(xiàn)業(yè)務(wù) 邏輯地 JavaBean 或 EJB 組件構(gòu)成,控制器由 ActionServlet 類和 Action 類來實(shí) 現(xiàn),視圖由一組 JSP 文件構(gòu)成。 Struts 實(shí)質(zhì)上就是在 JSP Model2 地基礎(chǔ)上實(shí)現(xiàn)的一個(gè) MVC 框架。在 Struts 框架中,模型由實(shí)現(xiàn)業(yè)務(wù)邏輯地 JavaBean 或 EJB 組件構(gòu)
25、成,控制器由 ActionServlet 類和 Action 類來實(shí)現(xiàn),視圖由一組 JSP 文件構(gòu)成。 ActionServlet 類是 Struts 框架中的核心組件。ActionServlet 繼承了 Javax.servlet.http.HttpServlet 類,它在 MVC 模型中扮演中央控制器的角色。 ActionServlet 主要負(fù)責(zé)接受 HTTP 請(qǐng)求信息,根據(jù)配置文件 strutsconfig.xml 的配置信息,把請(qǐng)求轉(zhuǎn)發(fā)給適當(dāng)?shù)?Action 對(duì)象。如果該 Action 對(duì)象不存在, ActionServlet 會(huì)先創(chuàng)建這個(gè) Action 對(duì)象。 Action 類負(fù)責(zé)調(diào)
26、用模型的方法,更新模型的狀態(tài),并幫助控制應(yīng)用程序的 流程。對(duì)于小型簡(jiǎn)單的應(yīng)用,Action 類本身也可以完成一些實(shí)際的業(yè)務(wù)邏輯。 對(duì)于大型應(yīng)用,Action 充當(dāng)用戶請(qǐng)求和業(yè)務(wù)邏輯處理之間的適配器(Adaptor) , 其功能就是將請(qǐng)求于業(yè)務(wù)邏輯分開,Action 根據(jù)用戶請(qǐng)求調(diào)用相關(guān)的業(yè)務(wù)邏輯 組件。 當(dāng) ActionServlet 控制器收到用戶請(qǐng)求后,把請(qǐng)求轉(zhuǎn)發(fā)到一個(gè) Action 實(shí)例。 如果這個(gè)實(shí)例不存在,控制器會(huì)首先創(chuàng)建它,然后調(diào)用這個(gè) Action 實(shí)例的 execute()方法。Action 的 execute()方法返回 ActionForward 對(duì)象,它封 控制器 視圖模
27、型 7 裝了把用戶請(qǐng)求再轉(zhuǎn)發(fā)給其他 Web 組件的信息。用戶定義自己的 Action 類, 即 Action 基類的子類時(shí),必須覆蓋 execute()方法。在 Action 基類中返回 null。 Struts 的配置文件 strutsconfig.xml:一個(gè)用戶請(qǐng)求是通過 ActionServlet 來處理和轉(zhuǎn)發(fā)的,那么,ActionServlet 如何決定把用戶請(qǐng)求轉(zhuǎn)發(fā)給哪個(gè) Action 對(duì)象呢?這就需要一些描述用戶請(qǐng)求路徑和 Action 映射關(guān)系的配置信息了。 在 Struts 中,這些配置映射信息都存儲(chǔ)在特定的 XML 文件 strutsconfig.xml 中。在該配置文件中
28、,每一個(gè) Action 的映射信息都通過一個(gè)元素來配 置。這些配置信息在系統(tǒng)啟動(dòng)的時(shí)候被讀入內(nèi)存,供 Struts 在運(yùn)行期間使用。 在內(nèi)存中,每一個(gè)元素都對(duì)應(yīng)一個(gè) org.apache.struts.action.ActionMapping 類的實(shí)例。 3Struts Framework 的工作原理 1)讀取配置(初始化 ModuleConfig 對(duì)象) Struts 框架總控制器(ActionServlet)是一個(gè) Servlet,在 web.xml 中配置成 自動(dòng)啟動(dòng)的 Servlet 讀取配置文件(Struts-config.xml)的配置信息,為不同的 Struts 模塊初始化相應(yīng)的
29、 ModuleConfig 對(duì)象 2)發(fā)送請(qǐng)求 用戶提交表單或者調(diào)用 URL 向 Web 應(yīng)用程序器提交一個(gè)請(qǐng)求,請(qǐng)求的數(shù) 據(jù)用 HTTP 協(xié)議上傳給 Web 服務(wù)器。 3)填充 FORM(實(shí)例化、復(fù)位、填充數(shù)據(jù)、校驗(yàn)、保存) (*.do 請(qǐng)求)從 ActionConfig 中找出對(duì)應(yīng)該請(qǐng)求的 Action 子類,如沒有對(duì) 應(yīng)的 Action,控制器直接轉(zhuǎn)發(fā)給 JSP 靜態(tài)頁面。如有對(duì)應(yīng)的 Action 且這個(gè) Action 有一個(gè)相應(yīng)的 ActionForm,ActionForm 被實(shí)例化并用 HTTP 請(qǐng)求的數(shù)據(jù) 填充其屬性,并且保存在 Servlet Context 中(request
30、或者 session 中) ,這樣它 們就可以被其他 Action 對(duì)象或者 JSP 調(diào)用。 4)派發(fā)請(qǐng)求 控制器根據(jù)配置信息 ActionConfig 將請(qǐng)求派發(fā)到具體的 Action,相應(yīng)的 FormBean 一并傳給這個(gè) Action 的 execute()方法。 5)處理業(yè)務(wù) 8 Action 一般只包含一個(gè) execute 方法,它負(fù)責(zé)執(zhí)行相應(yīng)的業(yè)務(wù)邏輯(調(diào)用其 他業(yè)務(wù)模塊) 。完畢返回一個(gè) ActionForward 對(duì)象,控制器通過該 ActionForward 對(duì)象來進(jìn)行轉(zhuǎn)發(fā)工作。 6)返回響應(yīng) Action 根據(jù)業(yè)務(wù)處理的不同結(jié)果返回一個(gè)目標(biāo)響應(yīng)對(duì)象給總控制器,該目 標(biāo)響應(yīng)對(duì)
31、象對(duì)應(yīng)一個(gè)具體 JSP 頁面或者另一個(gè) Action。 7)查找響應(yīng)(翻譯響應(yīng)) 總控制器根據(jù)業(yè)務(wù)功能 Action 返回的目標(biāo)響應(yīng)對(duì)象,找到對(duì)應(yīng)的資源對(duì)象, 通常是一個(gè)具體的 JSP 頁面。 8)響應(yīng)用戶 目標(biāo)響應(yīng)對(duì)象將結(jié)果展現(xiàn)給用戶目標(biāo)響應(yīng)對(duì)象(JSP)講結(jié)果頁面展現(xiàn)給用 戶。 流程如圖 2-3 所示。 1.初初始始化化 3填填充充 FormBean 7.轉(zhuǎn)轉(zhuǎn)換換Http請(qǐng)請(qǐng)求求到到 目目標(biāo)標(biāo)響響應(yīng)應(yīng)對(duì)對(duì)象象 2.Http請(qǐng)請(qǐng)求求 6.返返回回目目標(biāo)標(biāo) 響響應(yīng)應(yīng)對(duì)對(duì)象象 5.調(diào)調(diào)用用后后臺(tái)臺(tái)業(yè)業(yè)務(wù)務(wù) 功功能能完完成成商商務(wù)務(wù)邏邏輯輯 8.Http響響應(yīng)應(yīng) 4、將將請(qǐng)請(qǐng)求求轉(zhuǎn)轉(zhuǎn)移移到到 具具
32、體體Action處處理理 Struts-config.xml 模模型型(ActionForm) 視視圖圖JSP 業(yè)業(yè)務(wù)務(wù)功功能能控控制制器器 (Action) 業(yè)業(yè)務(wù)務(wù)功功能能類類 (JavaBean) Struts框框架架總總控控制制器器 (ActionServlet) 圖 2-2 Struts 框架流程 2.1.3 Struts 技術(shù)的優(yōu)缺點(diǎn)技術(shù)的優(yōu)缺點(diǎn) Struts 優(yōu)點(diǎn): Struts 是開源軟件。使開發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制。 Struts 實(shí) 9 際就是實(shí)現(xiàn)了 MVC 的機(jī)制,切實(shí)可行的把控制和顯示分開,從管理上來說可 以節(jié)省不必要的時(shí)間和人力的浪費(fèi)。提高了開發(fā)速度。也真正
33、的實(shí)現(xiàn)了 bean 的 重用。 除此之外,Struts 的優(yōu)點(diǎn)主要集中體現(xiàn)在兩個(gè)方面:Taglib 和頁面導(dǎo)航。 Taglib 是 Struts 的標(biāo)記庫(kù),靈活動(dòng)用,能大大提高開發(fā)效率。另外,就目前國(guó) 內(nèi)的 JSP 開發(fā)者而言,除了使用 JSP 自帶的常用標(biāo)記外,很少開發(fā)自己的標(biāo)記, 或許 Struts 是一個(gè)很好的起點(diǎn)。 關(guān)于頁面導(dǎo)航,事實(shí)上可以使系統(tǒng)的脈絡(luò)更加清晰。通過一個(gè)配置文件, 即可把握整個(gè)系統(tǒng)各部分之間的聯(lián)系,這對(duì)于后期的維護(hù)有著莫大的好處。尤 其是當(dāng)另一批開發(fā)者接手這個(gè)項(xiàng)目時(shí),這種優(yōu)勢(shì)體現(xiàn)得更加明顯。 Struts 缺點(diǎn): 1.開發(fā)人員需要學(xué)習(xí)如何使用 Struts 的標(biāo)志庫(kù)。事
34、實(shí)上要理解這些 Struts 的 標(biāo)志庫(kù),特別是 Bean 和 HTML 標(biāo)志庫(kù)的確要花費(fèi)比較長(zhǎng)的時(shí)間。 2.你不能在視圖中用 JSP 來實(shí)現(xiàn)處理管道(processing pipeline) 。只能做些 簡(jiǎn)單的 include 和 forward,這樣很明顯就會(huì)限制了視圖的靈活性。 3.對(duì) JSP 頁面的任何修改都會(huì)導(dǎo)致 JSP 的重新編譯,這樣是非常耗費(fèi)時(shí)間 的。 2.22.2Hibernate 框架技術(shù)框架技術(shù) 2.2.12.2.1 什么是什么是 Hibernate 一 Hibernate 定義 Hibernate 是一種 Java 語言下的對(duì)象關(guān)系映射解決方案。 它是一種自由、 開源的
35、軟件。它用來把對(duì)象模型表示的對(duì)象映射到基于 SQL 的關(guān)系模型結(jié)構(gòu) 中去,為面向?qū)ο蟮念I(lǐng)域模型到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)的映射,提供了一個(gè)使用 方便的框架。 二 Hibernate 的作用 Hibernate 不僅管理 Java 類到數(shù)據(jù)庫(kù)表的映射(包括從 Java 數(shù)據(jù)類型到 SQL 數(shù)據(jù)類型的映射) ,還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度減少 10 開發(fā)時(shí)人工使用 SQL 和 JDBC 處理數(shù)據(jù)的時(shí)間。 它的設(shè)計(jì)目標(biāo)是將軟件開發(fā)人員從大量相同的數(shù)據(jù)持久層相關(guān)編程工作中 解放出來。無論是從設(shè)計(jì)草案還是從一個(gè)遺留數(shù)據(jù)庫(kù)開始,開發(fā)人員都可以采 用 Hibernate。 三 Hibernate 的
36、應(yīng)用 Hibernate 對(duì) JDBC 進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得 Java 程序員可以隨 心所欲的使用對(duì)象編程思維來操縱數(shù)據(jù)庫(kù)。 Hibernate 可以應(yīng)用在任何使用 JDBC 的場(chǎng)合,它既可以在 Java 的客戶端程序使用,也可以在 Servlet/JSP 的 Web 應(yīng)用中使用。最具革命意義的是,Hibernate 可以在應(yīng)用 EJB(Enterprise JavaBeans 是 Java 應(yīng)用于企業(yè)計(jì)算的框架)的 J2EE 架構(gòu)中取代 CMP,完成數(shù) 據(jù)持久化的重任。 四 Hibernate API 簡(jiǎn)介 1 Hibernate API 中的接口可以分為以下幾類: (1) 提供
37、訪問數(shù)據(jù)庫(kù)的操作的接口,包括 session、Transaction、Query 接 口; (2) 用于配置 Hibernate 的接口,Configuration; (3) 間接接口,使應(yīng)用程序接受 Hibernate 內(nèi)部發(fā)生的事件,并作出相關(guān) 的回應(yīng),包括:Interceptor、Lifecycle、Validatable; (4) 用于擴(kuò)展 Hibernate 功能的接口,如 UserType、CompositeUserType、IdentifierGenerator 接口。 Hibernate 內(nèi)部還封裝了 JDBC、JTA(Java Transaction API)和 JNDI(J
38、ava Naming And Directory Interface) 。其中,JDBC 提供底層的數(shù)據(jù)訪問操作,只要 用戶提供了相應(yīng)的 JDBC 驅(qū)動(dòng)程序,Hibernate 可以訪問任何一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)。 JTA 和 JNDI 使 Hibernate 能夠和 J2EE 應(yīng)用服務(wù)器集成。 2 Hibernate 的核心接口框圖 五 Hibernate 的優(yōu)缺點(diǎn) 11 (1)優(yōu)點(diǎn): a.Hibernate 使用 Java 反射機(jī)制 而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性。 b.Hibernate 的性能非常好,因?yàn)樗莻€(gè)輕量級(jí)框架。映射的靈活性很出色。 c. 它支持各種關(guān)系數(shù)據(jù)庫(kù),從一對(duì)一到多對(duì)多的各
39、種復(fù)雜關(guān)系。 (2)缺點(diǎn): Hibernate 限制您所使用的對(duì)象模型。例如,一個(gè)持久性類不能映射到多個(gè) 表。11 12 3 3 系統(tǒng)系統(tǒng)分析分析 3.13.1 系統(tǒng)可行性分析系統(tǒng)可行性分析 可行性研究的目的是用最小的代價(jià),在盡可能短的時(shí)間內(nèi)確定問題是否能 夠得到解決,以是否值得解決。在項(xiàng)目開發(fā)之前進(jìn)行可行性論證是非常必要的。 一個(gè)項(xiàng)目如果未經(jīng)過充分的可行性證明,只粗略地估計(jì)解決問題的花費(fèi)和方法, 就盲目上陣開始軟件開發(fā)工作,結(jié)果往往是不能在預(yù)定的系統(tǒng)規(guī)?;蛘邥r(shí)間限 制解決問題,甚至無法求解,最后造成花費(fèi)在該項(xiàng)目上時(shí)間、人力、物力資源 和經(jīng)費(fèi)的浪費(fèi)。 3.1.1 經(jīng)濟(jì)可行性分析經(jīng)濟(jì)可行性分析
40、主要是對(duì)預(yù)估費(fèi)用和對(duì)項(xiàng)目的經(jīng)濟(jì)效益進(jìn)行評(píng)價(jià)。在費(fèi)用支出方面,需 要考慮到主機(jī)費(fèi)用。而開發(fā)費(fèi)用,主要考慮人工成本,系統(tǒng)采用的開發(fā)環(huán)境及 工具價(jià)格低廉,開發(fā)語言使用 JSP。而系統(tǒng)需要的運(yùn)行軟件工具主要為: Tomcat 服務(wù)器、Microsoft SQL Server 2000.大大降低成本 3.1.2 技術(shù)可行性分析技術(shù)可行性分析 本系統(tǒng)采用當(dāng)今流行的 JSP 作為系統(tǒng)的開發(fā)語言,開源且免費(fèi),能提供完 善的指令控制語句、類與對(duì)象的支持及豐富的數(shù)據(jù)類型,為開發(fā)高性能、穩(wěn)定 的系統(tǒng)提供保證,同時(shí)代碼模塊化高,方便系統(tǒng)以后的修改與維護(hù)。同時(shí)采用 Struts 框架,使系統(tǒng)結(jié)構(gòu)清晰,同時(shí)也加快了開發(fā)的
41、速度,提高系統(tǒng)的可拓展性。 Tomcat 作為系統(tǒng)的服務(wù)器,其支持 jsp 語言,同時(shí)免費(fèi)、開源、跨平臺(tái)、 部署簡(jiǎn)易,是現(xiàn)代通用、性能強(qiáng)大的服務(wù)器。 3.1.3 社會(huì)可行性分析社會(huì)可行性分析 社會(huì)可行性分析是開發(fā)項(xiàng)目的運(yùn)行方式在用戶組織內(nèi)是否行的通。由于系 13 統(tǒng)使用 B/S 模式,而且系統(tǒng)分系統(tǒng)管理員與普通用戶兩類,便于管理。再者系 統(tǒng)的界面友好,功能人性化,減少酒店對(duì)員工的系統(tǒng)操作培訓(xùn)費(fèi)用 3.2 需求分析需求分析 通過對(duì)本地城市中多間酒店的調(diào)查,以及對(duì)當(dāng)前較為流行的 C/S 和 B/S 的 酒店客房管理系統(tǒng)的研究,得到當(dāng)今社會(huì)上酒店客房管理系統(tǒng)希望有以下的業(yè) 務(wù)功能: 1.運(yùn)行環(huán)境要求
42、(包括硬件與軟件)不能過高,能保證系統(tǒng)穩(wěn)定運(yùn)行為前 提 2.系統(tǒng)的界面友好,操作人員使用系統(tǒng)能得心應(yīng)手 3.入住酒店的客人登記資料要詳盡 4.提供營(yíng)業(yè)報(bào)表的查詢功能 5 添加全國(guó)城市的身份證對(duì)照表,方便核對(duì) 6 酒店的物件的庫(kù)存管理 3.2.1 系統(tǒng)功能需求系統(tǒng)功能需求 酒店客房管理系統(tǒng)分為六個(gè)模塊。當(dāng)中包括:前臺(tái)管理、預(yù)定管理、庫(kù)存 管理、用戶管理(僅限管理員)、資料管理和報(bào)表。 系統(tǒng)核心模塊為前臺(tái)管理,其功能預(yù)覽如下: 1、 開房管理(客戶信息登記) 2、 退房管理 3、 房間狀態(tài) 4、 房間操作管理 5、 商品消費(fèi)管理 6、 會(huì)員管理 系統(tǒng)應(yīng)該達(dá)到以下要求: 1、可用性。目標(biāo)系統(tǒng)功能齊全
43、,能夠完全滿足業(yè)務(wù)需求。 2、可靠性。能連續(xù)準(zhǔn)確的處理業(yè)務(wù),有較強(qiáng)的容錯(cuò)能力。 3、可理解性。用戶容易理解和使用該系統(tǒng)。 14 4、安全保密性。保證系統(tǒng)的物理安全、數(shù)據(jù)存儲(chǔ)做好使用人員的授權(quán) 管理。 5、時(shí)間經(jīng)濟(jì)性。優(yōu)化邏輯設(shè)計(jì)與物理設(shè)計(jì),使系統(tǒng)運(yùn)行效率高。 6、可維護(hù)性和適應(yīng)性。系統(tǒng)應(yīng)易于修改、易于擴(kuò)充、易于維護(hù),能夠 適應(yīng)業(yè)務(wù)不斷發(fā)展變化的需要。 3.2.2 系統(tǒng)數(shù)據(jù)流圖系統(tǒng)數(shù)據(jù)流圖 1 管理員成功登錄后,進(jìn)行相應(yīng)操作,產(chǎn)生的數(shù)據(jù)流,如圖 3-1 所示 管理員登陸驗(yàn)證 系統(tǒng)管理 頁面 管理員信 息 前臺(tái)管理 預(yù)訂管理 資料管理 用戶管理 庫(kù)存管理 報(bào)表 退出系統(tǒng) 圖 3-1 酒店客房管理系
44、統(tǒng)數(shù)據(jù)流圖 3.2.3 用例圖用例圖 用例圖(User Case)是被稱為參與者的外部用戶所能觀察到的系統(tǒng)功能的 模型圖,呈現(xiàn)了一些參與者和一些用例,以及它們之間的關(guān)系,主要用于對(duì)系 統(tǒng)、子系統(tǒng)或類的功能行為進(jìn)行建模。12 如圖 3-2: 15 普通用戶 管理員 用戶管理 資料管理 預(yù)訂管理 前臺(tái)管理 庫(kù)存管理 報(bào)表 圖 3-2 用例圖 3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì) 3.3.1 數(shù)據(jù)庫(kù)的選擇數(shù)據(jù)庫(kù)的選擇 Microsoft SQL Server 2000 能提供超大型系統(tǒng)所需的數(shù)據(jù)庫(kù)服務(wù)。大型服 務(wù)器可能有成千上萬的用戶同時(shí)連接到 SQL Server 2000 實(shí)例。SQL Server 2
45、000 為這些環(huán)境提供了全面的保護(hù),具有防止問題發(fā)生的安全措施,例如,可 以防止多個(gè)用戶試圖同時(shí)更新相同的數(shù)據(jù)。SQL Server 2000 還在多個(gè)用戶之間 有效地分配可用資源,比如內(nèi)存、網(wǎng)絡(luò)帶寬和磁盤 I/O。 超大型 Internet 站點(diǎn)可將其數(shù)據(jù)分開存放在多臺(tái)服務(wù)器上,從而使處理負(fù) 荷分散到多臺(tái)計(jì)算機(jī)上,使站點(diǎn)能為成千上萬的并發(fā)用戶提供服務(wù)。 可以在一臺(tái)計(jì)算機(jī)上運(yùn)行多個(gè) SQL Server 2000 實(shí)例。例如,一個(gè)為其它 許多組織提供數(shù)據(jù)庫(kù)服務(wù)的組織可為每個(gè)客戶組織單獨(dú)運(yùn)行一個(gè) SQL Server 2000 實(shí)例,而全部實(shí)例可集中在一臺(tái)計(jì)算機(jī)上。這樣,既隔開了每個(gè)客戶組織 的
46、數(shù)據(jù),同時(shí)又使服務(wù)組織只需管理一臺(tái)服務(wù)器計(jì)算機(jī)從而減少了費(fèi)用。 SQL Server 2000 應(yīng)用程序可在裝有 SQL Server 2000 的計(jì)算機(jī)上運(yùn)行。該 應(yīng)用程序通過 Windows 進(jìn)程間通訊 (IPC) 組件(例如共享內(nèi)存)而非通過網(wǎng) 16 絡(luò)連接到 SQL Server 2000。這使 SQL Server 2000 得以應(yīng)用于應(yīng)用程序必須在 本地存儲(chǔ)數(shù)據(jù)的小型系統(tǒng)中。 大型 Web 站點(diǎn)和企業(yè)級(jí)數(shù)據(jù)處理系統(tǒng)通常會(huì)生成大量的數(shù)據(jù)庫(kù)處理,超 出了一臺(tái)計(jì)算機(jī)的支持能力。在這些大型系統(tǒng)中,數(shù)據(jù)庫(kù)服務(wù)由組成數(shù)據(jù)庫(kù)服 務(wù)層的一組數(shù)據(jù)庫(kù)服務(wù)器提供。SQL Server 2000 不支持采
47、用平衡負(fù)荷的聚集形 式建立數(shù)據(jù)庫(kù)服務(wù)層,但支持跨自主服務(wù)器組分存數(shù)據(jù)的機(jī)制。盡管每個(gè)服務(wù) 器需分開管理,但組內(nèi)的各個(gè)服務(wù)器可共同分擔(dān)數(shù)據(jù)庫(kù)處理負(fù)荷。共享同一工 作負(fù)荷的一組自主服務(wù)器稱為服務(wù)器聯(lián)合體。13 3.3.2 系統(tǒng)系統(tǒng) ER 圖圖 用用戶戶 用用戶戶ID賬賬戶戶名名密密碼碼類類別別 登登陸陸記記錄錄 記記錄錄號(hào)號(hào)用用戶戶名名密密碼碼登登陸陸時(shí)時(shí)間間 記記錄錄登登陸陸歷歷史史 n 1 圖 3-3 實(shí)體聯(lián)系圖 1 17 房房間間 房房號(hào)號(hào)房房間間類類型型房房間間價(jià)價(jià)格格房房間間狀狀態(tài)態(tài)備備注注 房房間間賬賬單單 賬賬單單號(hào)號(hào)消消費(fèi)費(fèi)號(hào)號(hào)付付款款 客客人人入入住住單單 消消費(fèi)費(fèi)號(hào)號(hào)客客人人姓
48、姓名名性性別別入入住住類類型型預(yù)預(yù)付付款款 身身份份證證號(hào)號(hào)電電話話 地地址址入入住住時(shí)時(shí)間間離離開開時(shí)時(shí)間間當(dāng)當(dāng)前前狀狀態(tài)態(tài) 賬賬單單登登記記 1 1 選選擇擇房房間間 1 1 入入住住房房間間 入入住住ID消消費(fèi)費(fèi)號(hào)號(hào)入入住住房房間間號(hào)號(hào) 入入住住房房間間登登記記 1 1 圖 3-4 實(shí)體聯(lián)系圖 2 會(huì)會(huì)員員 會(huì)會(huì)員員ID姓姓名名電電話話身身份份證證號(hào)號(hào)碼碼 圖 3-5 實(shí)體聯(lián)系圖 3 身身份份證證資資料料庫(kù)庫(kù) 庫(kù)庫(kù)編編號(hào)號(hào)地地區(qū)區(qū)代代碼碼地地方方名名 圖 3-6 實(shí)體聯(lián)系圖 4 18 商商品品 商商品品號(hào)號(hào) 名名稱稱類類型型數(shù)數(shù)量量?jī)r(jià)價(jià)錢錢 商商品品消消費(fèi)費(fèi)單單 商商品品名名稱稱價(jià)價(jià)錢錢
49、數(shù)數(shù)量量消消費(fèi)費(fèi)時(shí)時(shí)間間 ID 房房間間號(hào)號(hào)賬賬單單號(hào)號(hào) 消消費(fèi)費(fèi)人人 消消費(fèi)費(fèi)商商品品 n 1 圖 3-7 實(shí)體聯(lián)系圖 5 3.3.3 數(shù)據(jù)庫(kù)的設(shè)計(jì)數(shù)據(jù)庫(kù)的設(shè)計(jì) 1、依據(jù)項(xiàng)目的處理需求,對(duì)應(yīng)數(shù)據(jù)表的設(shè)計(jì)及功能如下: 結(jié)賬表(TB_ACCOUNT):用于保存客人結(jié)賬信息 客人入住信息登記表(TB_CUSTOMER):用于保存客人入住信息登記信 息 商品表(TB_GOOD):用于保存酒店商品信息 房間表(TB_HOUSE):用于保存酒店房間信息 房間入住表(TB_HOUSECUSTOMER):用于保存房間入住信息 會(huì)員表(TB_HUIYUAN):用于保存會(huì)員信息 登陸記錄表(TB_LOGINRE
50、CORD):用于保存登陸記錄信息 商品消費(fèi)表(TB_PAYFORGOODS):用于保存商品消費(fèi)表信息 身份證代碼表(TB_PCAREA):用于保存全國(guó)身份證代碼信息 19 用戶表(TB_USER):用于保存系統(tǒng)用戶信息 其中,房間表和身份證代碼表屬于后臺(tái)設(shè)置部分,需要首先導(dǎo)入設(shè)置。其 余的數(shù)據(jù)庫(kù)表都屬于前臺(tái)功能表。通過實(shí)現(xiàn)功能可以對(duì)表的內(nèi)容進(jìn)行增、刪、 查、改等等。 2、數(shù)據(jù)表 前臺(tái)的功能性表,如 3-1 表 表 3-1 數(shù)據(jù)表 1 表名數(shù)據(jù)項(xiàng)名數(shù)據(jù)類型長(zhǎng)度 TB_ACCOUNTACCOUNTIDvarcher20 CUSTOMERIDvarcher20 PAYFORHOUSEfloat8 T
51、B_CUSTOMERCUSTOMERIDvarcher20 CUSTOMERNAMEvarcher20 SEXvarcher4 INHOMETYPEvarcher10 BUDGETMONEYfloat8 PERSONNALCARDvarcher18 TELEPHONEvarcher11 ADDRESSvarcher100 INTIMEdatetime8 OUTTIMEdatetime8 CURRENTSTATEvarcher5 TB_GOODGOODSIDvarcher100 GOODSNAMEvarcher100 TYPEvarcher10 QULANTITYint4 PRICEfloat8
52、 TB_HOUSECUSTOMERCUSHOUSEIDint4 CUSTOMERIDvarcher20 INHOUSEIDvarcher10 TB_HUIYUANHUIYUANIDvarcher20 IDvarcher20 USERNAMEvarcher20 TELEPHONEvarcher11 20 PERSONALCARDvarcher18 TB_LOGINRECORDIDint4 USERNAMEvarcher50 PASSWORDvarcher50 LOGINTIMEdatetime8 TB_PAYFORGOODSIDint4 HOUSEIDvarcher20 ACCOUNTIDvar
53、cher20 CUSTOMERNAMEvarcher100 GOODSNAMEvarcher200 PRICEfloat8 QULTANTITYint4 INACCOUNTTIMEdatetime8 TB_USERUSERIDvarcher15 USERNAMEvarcher20 PASSWORDvarcher20 USERRANKvarcher10 注:斜體字為主鍵 。 后臺(tái)設(shè)置的表,有房間表(TB_HOUSE)和身份證代碼表(TB_PCARE),如下 表 3-2: 表 3-2 數(shù)據(jù)表 2 表名數(shù)據(jù)項(xiàng)名數(shù)據(jù)類型長(zhǎng)度 TB_HOUSEHOUSEIDvarcher10 HOUSETYPEvarc
54、her20 HOUSEPRICEfloat8 HOUSESTATEvarcher5 MARKvarcher200 TB_PCAREAIDvarcher20 PCNUMBERvarcher10 ZONEvarcher100 21 4 4 系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì) 系統(tǒng)總體設(shè)計(jì)是問題求解及建立解答的高級(jí)策略。系統(tǒng)總體設(shè)計(jì)的主要任 務(wù)是將系統(tǒng)分解成易于管理的子系統(tǒng),并構(gòu)造系統(tǒng)的策略,諸如系統(tǒng)運(yùn)行的軟 硬件平臺(tái)、數(shù)據(jù)管理策略等,最終得到系統(tǒng)的體系結(jié)構(gòu)設(shè)計(jì)模型。14 4.1 系統(tǒng)功能模塊圖系統(tǒng)功能模塊圖 系統(tǒng)邏輯模型中數(shù)據(jù)流圖中的模塊是邏輯處理模塊,模型中沒有說明模塊 的物理構(gòu)成和實(shí)現(xiàn)途徑,同時(shí)也看不出模塊的層
55、次分解關(guān)系,為此在系統(tǒng)結(jié)構(gòu) 設(shè)計(jì)中要將數(shù)據(jù)流圖上的各個(gè)邏輯處理模塊進(jìn)一步分解,用模塊結(jié)構(gòu)圖確定系 統(tǒng)的層次結(jié)構(gòu)關(guān)系,并將系統(tǒng)的邏輯模型轉(zhuǎn)變?yōu)槲锢砟P汀?5 4.1.1 酒店客房管理系統(tǒng)總模塊圖酒店客房管理系統(tǒng)總模塊圖 如圖 4-1: 酒酒店店客客房房管管理理 前前臺(tái)臺(tái) 管管理理 預(yù)預(yù)訂訂 管管理理 報(bào)報(bào)表表 物物品品 庫(kù)庫(kù)存存 管管理理 用用戶戶 管管理理 資資料料 管管理理 圖 4-1 酒店客房管理系統(tǒng)總模塊圖 4.1.2 酒店客房管理系統(tǒng)各個(gè)分模塊圖酒店客房管理系統(tǒng)各個(gè)分模塊圖 22 前前臺(tái)臺(tái) 管管理理 開開房房 管管理理 商商品品 消消費(fèi)費(fèi) 管管理理 退退房房 管管理理 房房間間 狀狀態(tài)
56、態(tài) 房房間間 操操作作 管管理理 會(huì)會(huì)員員 管管理理 圖 4-2 前臺(tái)管理功能模塊圖 預(yù)預(yù)訂訂管管理理 預(yù)預(yù)訂訂入入住住退退訂訂 查查詢?cè)?與與 修修改改 圖 4-3 預(yù)訂管理功能模塊圖 營(yíng)營(yíng)業(yè)業(yè)報(bào)報(bào)表表 客客人人 結(jié)結(jié)賬賬 報(bào)報(bào)表表 商商品品 消消費(fèi)費(fèi) 報(bào)報(bào)表表 預(yù)預(yù)付付 款款報(bào)報(bào) 表表 當(dāng)當(dāng)前前 住住客客 報(bào)報(bào)表表 圖 4-4 報(bào)表功能模塊圖 23 庫(kù)庫(kù)存存管管理理 入入庫(kù)庫(kù)出出庫(kù)庫(kù) 當(dāng)當(dāng)前前 庫(kù)庫(kù)存存 查查詢?cè)?庫(kù)庫(kù)存存 盤盤點(diǎn)點(diǎn) 圖 4-5 物品庫(kù)存管理功能模塊圖 用用戶戶管管理理 用用戶戶 登登錄錄 歷歷史史 賬賬號(hào)號(hào) 管管理理 賬賬號(hào)號(hào) 權(quán)權(quán)限限 設(shè)設(shè)置置 圖 4-6 用戶管理功能
57、模塊圖 資資料料管管理理 會(huì)會(huì)員員 資資料料 管管理理 身身份份 證證代代 碼碼 圖 4-7 資料管理功能模塊圖 4.2 系統(tǒng)功能的設(shè)計(jì)系統(tǒng)功能的設(shè)計(jì) (管理員通過密碼驗(yàn)證后能進(jìn)行如下操作) 1.前臺(tái)管理 酒店的前臺(tái)管理包括如下: A.開房管理 為客人正確填寫入住資料,并選擇入住房間、入住類型,輸入入住時(shí) 間和離開時(shí)間。點(diǎn)擊入住,即保存入住信息。 24 B.退房管理 通過查詢房間號(hào),搜索要進(jìn)行退房操作的房間。也可以不輸入房間號(hào), 直接點(diǎn)擊查詢,即返回可以進(jìn)行退房操作的房間。 C.商品消費(fèi)管理 為酒店的小商品消費(fèi)進(jìn)行管理。在導(dǎo)航欄點(diǎn)擊商品消費(fèi),即能登記錄 入某房間號(hào)某人進(jìn)行消費(fèi)某項(xiàng)商品。點(diǎn)擊添加
58、,進(jìn)行保存。商品消費(fèi)查詢, 輸入房間號(hào),能查詢對(duì)應(yīng)房間住客進(jìn)行的消費(fèi)記錄。 D.房間狀態(tài)查詢 通過選擇單選框“在住”或“空置” ,再點(diǎn)擊查詢,即能返回當(dāng)前在住 或空置房的列表。 E.房間操作管理 對(duì)房間操作進(jìn)行管理,實(shí)質(zhì)為“一鍵換房”功能。對(duì)已經(jīng)登記入住的客 人,若有換房要求,能為客人選擇空置房進(jìn)行換房。 F.會(huì)員管理 對(duì)希望成為本酒店住客會(huì)員的客人,為其登記信息,添加成為會(huì)員。 2. 預(yù)訂管理 A.預(yù)訂 本功能與開房管理相近,記錄客戶預(yù)訂的必要信息。 B.入住 查詢已經(jīng)預(yù)訂的客人或者客人身份證號(hào),并對(duì)其進(jìn)行入住操作,點(diǎn)擊入 住按鈕,正式開房。若然沒有輸入客人或者客人身份證號(hào),即返回所有預(yù) 訂
59、的客人列表。 C.退訂 對(duì)已經(jīng)預(yù)訂的客戶,進(jìn)行退訂操作。查詢需要退訂的客戶,點(diǎn)擊刪除。 D.查詢與修改 對(duì)已經(jīng)預(yù)訂的客戶的信息進(jìn)行查詢與修改。 3.庫(kù)存管理 A.入庫(kù) 25 對(duì)酒店的商品或用品進(jìn)行入庫(kù)登記,輸入其商品名、編號(hào)、價(jià)格等信息。 點(diǎn)擊入庫(kù),進(jìn)行保存。 B.查詢 輸入商品名稱,對(duì)該商品的信息進(jìn)行查詢。 4.用戶管理 A.賬戶管理 對(duì)本系統(tǒng)的用戶進(jìn)行添加、查詢、修改、刪除等操作。 B.用戶登錄歷史 能根據(jù)用戶名查詢,登錄系統(tǒng)的歷史。 C.賬號(hào)權(quán)限設(shè)置 對(duì)賬號(hào)的權(quán)限級(jí)別進(jìn)行設(shè)置。能把管理員級(jí)別換成普通會(huì)員,也可以把 普通會(huì)員變成管理員級(jí)別,提升權(quán)限。 5.資料管理 A.會(huì)員管理 能對(duì)酒店的
60、客戶會(huì)員進(jìn)行添加、修改、刪除操作。 B.身份證代碼 提供全國(guó)身份證代碼的列表,進(jìn)行對(duì)照查詢。 6.報(bào)表 A.當(dāng)前住客報(bào)表(對(duì)當(dāng)前住客進(jìn)行列表匯總) B.客人結(jié)賬報(bào)表(對(duì)已經(jīng)結(jié)賬的客人進(jìn)行列表匯總) C.商品消費(fèi)報(bào)表(對(duì)商品消費(fèi)記錄進(jìn)行列表匯總) D.預(yù)付報(bào)表(對(duì)進(jìn)行預(yù)付的客人記錄進(jìn)行列表匯總) 26 5 系統(tǒng)架構(gòu)系統(tǒng)架構(gòu) 5.1 系統(tǒng)架構(gòu)說明系統(tǒng)架構(gòu)說明 本系統(tǒng)采用的是典型的 J2EE 三層結(jié)構(gòu),分為表現(xiàn)層、中間層和數(shù)據(jù)服務(wù) 層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗(yàn)等工作放在中間層處理???戶端不直接與數(shù)據(jù)庫(kù)交互,而是通過組件與中間層建立連接,再由中間層與數(shù) 據(jù)庫(kù)交互。 系統(tǒng)具體分層如 5
61、-1 所示: 視視圖圖層層 (JSP) 用戶界面負(fù)責(zé) 業(yè)務(wù)收集和表 示客戶端校驗(yàn) WEB層層 (Struts) MVC架構(gòu)的控 制層 控制業(yè)務(wù)邏輯 層和表現(xiàn)層的 交互 DAO(Data Access Object) 數(shù)據(jù)訪問對(duì)象 與持久層交互 持持久久層層 (Hibernate) 通過實(shí)體關(guān)系 映射OR Mapping由數(shù) 據(jù)庫(kù)表 數(shù)數(shù)據(jù)據(jù)庫(kù)庫(kù)服服務(wù)務(wù) (Microsoft SQL Server 2000) 存放數(shù)據(jù) 圖 5-1 系統(tǒng)結(jié)構(gòu)圖 該系統(tǒng)的表現(xiàn)層是傳統(tǒng)的 JSP 技術(shù),JSP 技術(shù)自 1999 年問世以來,經(jīng)過 多年的發(fā)展,其廣泛的應(yīng)用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術(shù)打下了堅(jiān)實(shí)的 基
62、礎(chǔ)。 中間層為了將控制層與業(yè)務(wù)邏輯層分離,又細(xì)分為以下幾種: Web 層,就是 MVC 模式里面的交互,調(diào)用業(yè)務(wù)邏輯層,并將業(yè)務(wù)數(shù)據(jù)返 回給表現(xiàn)層作組織表現(xiàn),該系統(tǒng)的 MVC 框架采用 Struts。 DAO 層,負(fù)責(zé)與持久化對(duì)象交互。該層封裝了數(shù)據(jù)的增、刪、查、改的操 作。 PO,持久化對(duì)象。通過實(shí)體關(guān)系映射工具將關(guān)系型數(shù)據(jù)庫(kù)的數(shù)據(jù)映射成對(duì) 象,很方便地實(shí)現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫(kù),該系統(tǒng)采用 Hibernate 作為 ORM 框架。 27 6系統(tǒng)詳細(xì)設(shè)計(jì)系統(tǒng)詳細(xì)設(shè)計(jì) 6.1 Hibernate 持久層持久層 采用 Hibernate 作為持久層技術(shù)的最大的好處在于:可以完全以面向?qū)ο蟮?方
63、式進(jìn)行系統(tǒng)分析、系統(tǒng)設(shè)計(jì)。面向?qū)ο蟮姆治龊兔嫦驅(qū)ο蟮脑O(shè)計(jì)才最接近于 程序員的自然思維。 6.1.1 編寫編寫 PO 類類 10 個(gè)基本的 PersisentObject 類。分別為: Account Customer Goods House HouseCustomer HuiYuan LoginRecord PayForGoods PcArea User 下面只給出 House 和 Customer 類,其它的可以參看源代碼。 package com.hibernate.mapings; /* * * 酒店房間實(shí)體 * */ public class House implements java
64、.io.Serializable private String houseid; /房間id 28 private String housetype;/房間類型 private Double houseprice;/房間價(jià)格 private String housestate;/房間狀態(tài) private String mark;/房間備注 public House() /空的構(gòu)造方法 public House(String houseid, String housetype, Double houseprice, String housestate, String mark) this.hou
65、seid = houseid; this.housetype = housetype; this.houseprice = houseprice; this.housestate = housestate; this.mark = mark; /構(gòu)造方法,給類中的屬性賦值 /省略get和set 訪問器 package com.hibernate.mapings; import java.sql.Timestamp; import java.util.HashSet; import java.util.Set; /* * 入住酒店客人信息 * */ public class Customer i
66、mplements java.io.Serializable private String customerid; /入住id private String customername;/客人姓名 private String sex;/客人性別 private String inhometype;/入住類型 29 private Double budgetmoney;/預(yù)付款 private String personnalcard; /身份證號(hào) private String telephone;/電話號(hào)碼 private String address;/聯(lián)系地址 private Timestamp i
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案