基于JSP技術(shù)的酒店客房管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
?。?)客人-房間表crooms的表結(jié)構(gòu),如表1所示。
關(guān)于字段oldflag取值:零表示該客人是在住客人;為正整數(shù)時(shí)表示該客人已離店(本系統(tǒng)中稱為歷史客人)。如果一個(gè)客人在一天之內(nèi)多次入住、離店,其最大值即表示了該客人在當(dāng)日的離店次數(shù)。為保持?jǐn)?shù)據(jù)庫(kù)中數(shù)據(jù)的一致性和完整性約束,在日結(jié)清理數(shù)據(jù)時(shí),針對(duì)該客人的消費(fèi)記錄、住店記錄等數(shù)據(jù)采取的處理方法如下:
假如該客人是歷史客人,則先查詢出與此客人相關(guān)的oldflag字段上的最大值(設(shè)為X),然后刪除oldflag≤X的消費(fèi)記錄、oldflagX的住店記錄,最后將余下的住店記錄中的oldflag字段值復(fù)位為1。
?。?) 房間-消費(fèi)匯總表rctotal的表結(jié)構(gòu),如表2所示。
3 系統(tǒng)實(shí)現(xiàn)
為客人提供快捷的服務(wù)、為酒店用戶提供人性化的操作界面是本系統(tǒng)的設(shè)計(jì)目標(biāo)。在系統(tǒng)實(shí)現(xiàn)時(shí),采用酒店行業(yè)的術(shù)語(yǔ)、按照酒店用戶的使用習(xí)慣,提高界面的友好性。
根據(jù)作者的項(xiàng)目實(shí)踐經(jīng)驗(yàn),酒店一般都是在服務(wù)臺(tái)用一個(gè)Hub集線器將若干主機(jī)連接起來(lái)形成一個(gè)局域網(wǎng)。在該局域網(wǎng)內(nèi)使用客房管理系統(tǒng)。若無(wú)特別需要,基本是不需連接Internet的。在這種環(huán)境下,軟件架構(gòu)采用B/S、C/S均可。但酒店客房部的營(yíng)業(yè)活動(dòng)具有較為明顯的“旺季和淡季”。采用B/S結(jié)構(gòu)開發(fā),酒店用戶可根據(jù)需要,基本不受限制地自行增添、更換非服務(wù)器主機(jī)。
基于成本、安全性、可擴(kuò)展性3個(gè)因素進(jìn)行考慮,本系統(tǒng)的架構(gòu)是B/S結(jié)構(gòu),具體采用JSP為開發(fā)技術(shù)(選用“JSP+JavaBean”模式)、Tomcat為Web服務(wù)器、SQL Server 2000為后臺(tái)數(shù)據(jù)庫(kù)。
在“JSP+JavaBean”模式下[2],將與數(shù)據(jù)庫(kù)連接池相關(guān)的操作、讀寫數(shù)據(jù)庫(kù)的操作、需經(jīng)常使用的數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行的操作分別定義成一個(gè)類。考慮到某個(gè)功能可能需要用到上述建立的多個(gè)類,而JSP動(dòng)作元素中的jsp:useBean>標(biāo)簽每次只能創(chuàng)建一個(gè)Bean實(shí)例。為避免出現(xiàn)JSP頁(yè)面中多次重復(fù)使用jsp:useBean>標(biāo)簽的情況,在開發(fā)時(shí)單獨(dú)建立一個(gè)JSP文件,在該JSP文件中,用若干條jsp:useBean>標(biāo)簽將上述類的實(shí)例一起創(chuàng)建好。這樣就可以在各個(gè)JSP頁(yè)面中僅用一條JSP指令元素中的include指令即可透明地讀寫數(shù)據(jù)庫(kù),也便于修改和統(tǒng)一管理。
各個(gè)角色經(jīng)統(tǒng)一的登錄頁(yè)面成功登錄后,界面均是一個(gè)被拆分為常見的“左窄右寬型”的框架集,其中左側(cè)是功能選擇區(qū),右側(cè)是具體操作區(qū)。
本系統(tǒng)實(shí)現(xiàn)了一對(duì)一的個(gè)性化服務(wù),已被地跨廣東省佛山和江門兩市的柏麗酒店連鎖集團(tuán)的八家分店使用,現(xiàn)在已經(jīng)進(jìn)入穩(wěn)定運(yùn)行期。從運(yùn)行效果看,本系統(tǒng)體現(xiàn)了更加系統(tǒng)化、規(guī)范化、自動(dòng)化,實(shí)現(xiàn)操作簡(jiǎn)便、靈活性強(qiáng)、安全性好等特點(diǎn),更為廣大客戶提供了方便的信息查詢平臺(tái)。
評(píng)論