歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

酒店客房預(yù)定系統(tǒng)畢業(yè)設(shè)計(jì)論文

  • 資源ID:36995557       資源大?。?span id="w2woayc" class="font-tahoma">1.01MB        全文頁(yè)數(shù):39頁(yè)
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫(xiě)的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

酒店客房預(yù)定系統(tǒng)畢業(yè)設(shè)計(jì)論文

摘 要當(dāng)今社會(huì)人員流動(dòng)規(guī)模的不斷擴(kuò)大,賓館數(shù)量的急劇增加,有關(guān)客房管理的各種信息量也在不斷成倍增長(zhǎng)。面對(duì)龐大的信息量,就需要有酒店客房訂購(gòu)管理系統(tǒng)來(lái)提高客房管理工作的效率。通過(guò)這樣的系統(tǒng),我們可以做到信息的規(guī)范管理和快速查詢,從而減少了管理方面的工作量。本系統(tǒng)基于JSP來(lái)編寫(xiě)酒店客房預(yù)定系統(tǒng),開(kāi)發(fā)語(yǔ)言環(huán)境用My Eclipse。數(shù)據(jù)庫(kù)用SQL SERVER2005來(lái)連接系統(tǒng),即JSP + SQL SERVER2005模式完成整個(gè)設(shè)計(jì)工作。本系統(tǒng)全部基于Internet網(wǎng)絡(luò),以JSP語(yǔ)言對(duì)網(wǎng)站進(jìn)行開(kāi)發(fā),注重用戶與網(wǎng)站的交互性。因此在這樣的背景下,針對(duì)當(dāng)前Internet網(wǎng)絡(luò)發(fā)展趨勢(shì)來(lái)計(jì)酒店客房預(yù)定系統(tǒng)就成為了當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。關(guān)鍵詞:酒店客房預(yù)定系統(tǒng);系統(tǒng)設(shè)計(jì);信息管理AbstractAlong with the undertake transfer of personnel scales unceasing expansion, guesthouse quantitys sharp growth, related guest room managements each kind of information content also in unceasingly doubled and re-doubled grows. Facing the huge information content, needs to have the hotel guest room order management system management system to enhance the guest room supervisory work the efficiency. Through such system, we may achieve the information the standard management and the fast inquiry, thus reduced the management aspect work load.This system compiles the hotel guest room predetermined system with the JSP language, the database with the SQL SERVER2005 connected system, namely JSP + the SQL SERVER2005 pattern completes the entire project work. This system based on the Internet network, carries on the development completely by the JSP language to the website, pays great attention the user and the website interactive. Therefore under such background, counts the hotel guest room predetermined system in view of the current Internet network trend of development to become now application softwares first choice architecture. Key words: Hotel guest room; predetermined system; System design; Information management目 錄第1章 概述11.1 選題背景11.2 設(shè)計(jì)思想11.3 課題意義1第2章 項(xiàng)目概述32.1 可行性研究3第3章 需求分析53.1 功能需求53.2 性能需求5第4章 相關(guān)技術(shù)介紹64.1 JSP技術(shù)簡(jiǎn)介64.2 JSP工作原理64.3 Eclipse 簡(jiǎn)介64.4 SQLSERVER 2005 數(shù)據(jù)庫(kù)74.5 JDBC介紹84.6 系統(tǒng)數(shù)據(jù)庫(kù)連接94. 7系統(tǒng)數(shù)據(jù)表124.8 B/S模式與C/S模式的比較分析14第5章 系統(tǒng)分析165.1 系統(tǒng)功能分析165.2 系統(tǒng)功能模塊175.3 處理流程設(shè)計(jì)17第6章 系統(tǒng)設(shè)計(jì)206.1 前臺(tái)模塊設(shè)計(jì)206.2 后臺(tái)模塊設(shè)計(jì)25第7章 系統(tǒng)調(diào)試與測(cè)試307.1 程序調(diào)試307.2 程序的測(cè)試30結(jié) 論33參考文獻(xiàn)34致 謝35 II第1章 概述1.1 選題背景隨著人員流動(dòng)規(guī)模的不斷擴(kuò)大,賓館數(shù)量的急劇增加,有關(guān)客房管理的各種信息量也在不斷成倍增長(zhǎng)。面對(duì)龐大的信息量,就需要有酒店客房訂購(gòu)管理系統(tǒng)來(lái)提高客房管理工作的效率。通過(guò)這樣的系統(tǒng),我們可以做到信息的規(guī)范管理和快速查詢,從而減少了管理方面的工作量。傳統(tǒng)手工的客房信息管理,管理過(guò)程繁瑣而復(fù)雜,執(zhí)行效率低,并且易于出錯(cuò)。通過(guò)這樣的系統(tǒng),我們可以做到信息的規(guī)范管理和快速查詢,實(shí)現(xiàn)了客房信息管理的系統(tǒng)化、規(guī)范化和自動(dòng)化,這樣不僅減少了管理工作量,還提高了管理效率,降低了管理成本。酒店客房預(yù)定系統(tǒng)對(duì)賓館加強(qiáng)客房信息管理有著極其重要的作用,就一所客房數(shù)量較大的賓館來(lái)說(shuō),它的設(shè)計(jì)內(nèi)容非常復(fù)雜而且繁多,比如擁有客房信息管理、客房類別信息管理、預(yù)定信息管理等功能,而且設(shè)計(jì)的模塊也很多,比如信息統(tǒng)計(jì)模塊,報(bào)表設(shè)計(jì)模塊,模糊查詢模塊等等。1.2 設(shè)計(jì)思想本系統(tǒng)用JSP語(yǔ)言來(lái)編寫(xiě)酒店客房預(yù)定系統(tǒng),數(shù)據(jù)庫(kù)用SQL SERVER2005來(lái)連接系統(tǒng),即JSP + SQL SERVER2005模式完成整個(gè)設(shè)計(jì)工作。本系統(tǒng)全部基于Internet網(wǎng)絡(luò),以JSP語(yǔ)言對(duì)網(wǎng)站進(jìn)行開(kāi)發(fā),注重用戶與網(wǎng)站的交互性。因此在這樣的背景下,針對(duì)當(dāng)前Internet網(wǎng)絡(luò)發(fā)展趨勢(shì)來(lái)計(jì)酒店客房預(yù)定系統(tǒng)就成為了當(dāng)今應(yīng)用軟件的首選體系。1.3 課題意義隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來(lái)越重要的作用。它已經(jīng)深入到日常工作和生活的方方面面,比如文字處理、信息管理、輔助設(shè)計(jì)、圖形圖像處理、教育培訓(xùn)以及游戲娛樂(lè)等。各行各業(yè)的人們無(wú)須經(jīng)過(guò)特別的訓(xùn)練就能夠使用電腦完成許許多多復(fù)雜的工作。然而,雖然現(xiàn)在世界上已經(jīng)充滿了多如牛毛的各種軟件,但它們依然不能滿足用戶的各種特殊需要,人們還不得不開(kāi)發(fā)適合自己特殊需求的軟件。今天,計(jì)算機(jī)已經(jīng)成為我們學(xué)習(xí)和工作的得力助手;計(jì)算機(jī)的價(jià)格已經(jīng)十分低廉,性能卻有了長(zhǎng)足的進(jìn)步。它已經(jīng)被應(yīng)用于許多領(lǐng)域,計(jì)算機(jī)之所以如此流行的原因主要有以下幾個(gè)方面:首先,計(jì)算機(jī)可以代替人工進(jìn)行許多繁雜的勞動(dòng);其次,計(jì)算機(jī)可以節(jié)省許多資源;第三,計(jì)算機(jī)可以大大的提高人們的工作效率;第四,計(jì)算機(jī)可以使敏感信息更加安全,等等。歸納起來(lái),好處大約有以下幾點(diǎn):1.可以在線預(yù)定酒店客房;2.只需一名錄入員即可操作系統(tǒng),節(jié)省大量人力;3.可以迅速查到所需信息。現(xiàn)在我國(guó)還有許多的酒店客房的管理水平還停留在紙介質(zhì)的基礎(chǔ)上,這樣的機(jī)制已經(jīng)不能適應(yīng)時(shí)代的發(fā)展,因?yàn)樗速M(fèi)了許多人力和物力,采用傳統(tǒng)的紙介質(zhì)的管理模式,還主要依賴于人力手工的操作,并歸檔編號(hào)保存,事后如需查閱,則要人工從浩瀚的資料中查找,既費(fèi)時(shí)費(fèi)力又容易出錯(cuò)。在信息時(shí)代這種傳統(tǒng)的管理方法必然被計(jì)算機(jī)為基礎(chǔ)的信息管理所取代。這就急需有一套全新的高效的管理系統(tǒng),由計(jì)算機(jī)來(lái)代替手工完成酒店客房預(yù)定的管理。第2章 項(xiàng)目概述隨著酒店的經(jīng)營(yíng)規(guī)模不斷擴(kuò)大,有關(guān)酒店客房預(yù)定各種信息也成倍增長(zhǎng)。面對(duì)龐大的信息量,有必要開(kāi)發(fā)酒店客房預(yù)定系統(tǒng)來(lái)提高管理工作的效率。今天我們使用計(jì)算機(jī)對(duì)酒店客房預(yù)定與訂購(gòu)信息進(jìn)行管理,具有手工管理所無(wú)法比擬的優(yōu)點(diǎn)。通過(guò)這樣的系統(tǒng),可以做到信息的規(guī)范管理、科學(xué)統(tǒng)計(jì)和快速查詢,從而減少管理方面的工作量,有效地提高進(jìn)銷存的工作效率。2.1 可行性研究該階段通過(guò)對(duì)系統(tǒng)目標(biāo)的初步調(diào)研和分析,提出可行性方案并進(jìn)行論證。我們?cè)谶@里主要從技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性等方面進(jìn)行分析。2.1.1 經(jīng)濟(jì)可行性開(kāi)發(fā)該系統(tǒng)所需的相關(guān)資料可以通過(guò)已存在的相關(guān)系統(tǒng)進(jìn)行調(diào)查采集,所需的其他應(yīng)用軟件、硬件系統(tǒng)也易于獲得.因此,開(kāi)發(fā)成本較低。而引進(jìn)使用本系統(tǒng)后,與傳統(tǒng)方式相比,具有高效率、低成本、高質(zhì)量的特點(diǎn),可以節(jié)省不少人力、物力及財(cái)力。所以,從經(jīng)濟(jì)的角度來(lái)看,該系統(tǒng)可行。2.1.2 技術(shù)可行性技術(shù)可行性要考慮現(xiàn)有的技術(shù)條件是否能夠順利完成開(kāi)發(fā)工作,軟硬件配置是否滿足開(kāi)發(fā)的需求等。本網(wǎng)站用的是JSP開(kāi)發(fā)語(yǔ)言,調(diào)試相對(duì)簡(jiǎn)單,當(dāng)前的計(jì)算機(jī)硬件配置也完全能滿足開(kāi)發(fā)的需求,因此在技術(shù)上是絕對(duì)可行的。軟件方面:由于目前單機(jī)模式相對(duì)發(fā)展成熟,故軟件的開(kāi)發(fā)平臺(tái)成熟可行,它們速度快、容量大、可靠性能高、價(jià)格低,完全能滿足系統(tǒng)的需求。2.1.3運(yùn)行可行性運(yùn)行可行性是對(duì)組織結(jié)構(gòu)的影響,現(xiàn)有人員和機(jī)構(gòu)和環(huán)境對(duì)系統(tǒng)的適應(yīng)性及人員培訓(xùn)補(bǔ)充計(jì)劃的可行性。當(dāng)前信息化技術(shù)已經(jīng)相當(dāng)普及,各類操作人員水平都有相當(dāng)?shù)母叨?,所以在運(yùn)行上是可行性的。本系統(tǒng)的開(kāi)發(fā),是典型的Mis開(kāi)發(fā),主要是對(duì)數(shù)據(jù)的處理,包括數(shù)據(jù)的收集,數(shù)據(jù)的變換,及數(shù)據(jù)的各種報(bào)表形式的輸出。采用流行的JSP+SQLSERVER 2000體系,已無(wú)技術(shù)上的問(wèn)題。2.1.4 時(shí)間可行性從時(shí)間上看,在兩個(gè)月的時(shí)間里學(xué)習(xí)相關(guān)知識(shí),并開(kāi)發(fā)網(wǎng)站,時(shí)間上是有點(diǎn)緊,但是不是不可能實(shí)現(xiàn),通過(guò)兩個(gè)多月的努力功能基本實(shí)現(xiàn)。2.1.5 法律可行性: 所有技術(shù)資料都為合法。 開(kāi)發(fā)過(guò)程中不存在知識(shí)產(chǎn)權(quán)問(wèn)題。 未抄襲任何網(wǎng)站,不存在侵犯版權(quán)問(wèn)題。 開(kāi)發(fā)過(guò)程中未涉及任何法律責(zé)任。綜上所述,本系統(tǒng)的開(kāi)發(fā)從技術(shù)上、從經(jīng)濟(jì)上、從法律上都是完全可靠的。第3章 需求分析3.1 功能需求本系統(tǒng)需要實(shí)現(xiàn)前臺(tái)和后臺(tái)兩個(gè)平臺(tái)的管理。前臺(tái)模塊在用戶登錄后可以進(jìn)行預(yù)訂房間;后臺(tái)需系統(tǒng)管理員進(jìn)行客房管理、客房分類管理、客房預(yù)訂管理、用戶管理。3.2 性能需求服務(wù)起端的最低配置是由建立站點(diǎn)所需要的軟件來(lái)決定的,在最底配置的情況下,服務(wù)器的性能往往不進(jìn)人意,現(xiàn)在硬件性能已經(jīng)相當(dāng)出色,而且價(jià)格也很便宜,因此通常應(yīng)給服務(wù)器端配置高性能硬件。本機(jī)器的配置如下:處理器:Inter 酷睿i3或更高。內(nèi)存:512MB硬件空間:160GB題目主要采用的技術(shù)數(shù)據(jù)庫(kù):Microsoft SQL Server 2005。編程語(yǔ)言:jsp,java。服務(wù)器:Tomcat6.0, jdk1.6開(kāi)發(fā)環(huán)境:Windows7第4章 相關(guān)技術(shù)介紹4.1 JSP技術(shù)簡(jiǎn)介JSP(Java Server Page服務(wù)器網(wǎng)頁(yè))是從1998年開(kāi)始出現(xiàn)的新技術(shù)。由Sun公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn),是基于JavaServlet以及整個(gè)Java體系的web開(kāi)發(fā)技術(shù)。在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中加入腳本片段和JSP標(biāo)記(Tag),構(gòu)成JSP網(wǎng)頁(yè)(*.jsp)。JSP技術(shù)為創(chuàng)建顯示動(dòng)態(tài)生成內(nèi)容的web頁(yè)面提供了簡(jiǎn)便的方法。JSP作為Java家族的一員,承襲了Java的特點(diǎn),即跨平臺(tái)的特性,也即一次編譯,到處運(yùn)行1。在國(guó)外,己經(jīng)大量使用JSP作為網(wǎng)絡(luò)應(yīng)用程序的開(kāi)發(fā)工具,而在國(guó)內(nèi),盡管JSP還不是主流開(kāi)發(fā)技術(shù),但是由于JSP的強(qiáng)大優(yōu)勢(shì),許多網(wǎng)站都已經(jīng)準(zhǔn)備轉(zhuǎn)向JSP,利用JSP來(lái)開(kāi)發(fā)動(dòng)態(tài)網(wǎng)站2。 4.2 JSP工作原理JSP是面向服務(wù)器的,因此支持任何瀏覽器。當(dāng)Web服務(wù)器和JSP引擎遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),JSP引擎將請(qǐng)求對(duì)象發(fā)送給服務(wù)器端的相關(guān)組件,比如JavaBean組件、Servlet或EJB等,然后由服務(wù)器端組件處理這些請(qǐng)示,可能需要從數(shù)據(jù)庫(kù)或數(shù)據(jù)存儲(chǔ)中檢索信息,然后服務(wù)器端組件再將響應(yīng)對(duì)象返回JSP引擎。JSP引擎將響應(yīng)對(duì)象傳遞給JSP頁(yè)面,根據(jù)JSP頁(yè)面的HTML格式完成數(shù)據(jù)編排,最后Web服務(wù)器和JSP引擎將格式化后的JSP頁(yè)面以HTML格式返回客戶瀏覽器。這就是當(dāng)前網(wǎng)站構(gòu)建中廣泛采用的瀏覽器Web服務(wù)器后臺(tái)數(shù)據(jù)庫(kù)的三層架構(gòu)模式。因?yàn)镴SP所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果。4.3 Eclipse 簡(jiǎn)介目前,市場(chǎng)上計(jì)算機(jī)語(yǔ)言和開(kāi)發(fā)工具有很多,但是 Eclipse 的以其穩(wěn)定和與平臺(tái)無(wú)關(guān)的特性,從眾多編程工具中脫穎而出,成為很多 Java 程序員的首選。Eclipse 是一個(gè)開(kāi)放源代碼的、基于 Java 的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開(kāi)發(fā)工具(Java Development Tools,JDT)。雖然大多數(shù)用戶很樂(lè)于將 Eclipse 當(dāng)作 Java IDE 來(lái)使用,但 Eclipse 的目標(biāo)不僅限于此。Eclipse 還包括插件開(kāi)發(fā)環(huán)境(Plug-in Development Environment,PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展 Eclipse的軟件開(kāi)發(fā)人員,因?yàn)樗试S他們構(gòu)建與 Eclipse 環(huán)境無(wú)縫集成的工具。由于 Eclipse 中的每樣?xùn)|西都是插件,對(duì)于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開(kāi)發(fā)環(huán)境而言,所有工具開(kāi)發(fā)人員都具有同等的發(fā)揮場(chǎng)所。這種平等和一致性并不僅限于 Java 開(kāi)發(fā)工具。盡管 Eclipse 是使用 Java 語(yǔ)言開(kāi)發(fā)的,但它的用途并不限于 Java 語(yǔ)言;例如,支持諸如 C/C+、COBOL 和 Eiffel 等編程語(yǔ)言的插件已經(jīng)可用,或預(yù)計(jì)會(huì)推出。Eclipse是一個(gè)開(kāi)發(fā)源碼項(xiàng)目,它其實(shí)是Visual Age for Java的替代品,其界面跟先前的 Visual Age for Java 差不多,但由于其開(kāi)放源碼,任何人都可以免費(fèi)得到,并可以在此基礎(chǔ)上開(kāi)發(fā)各自的插件,因此越來(lái)越受人們關(guān)注。近期還有包括Oracle 在內(nèi)的許多 大公司也紛紛加入了該項(xiàng)目,并宣稱 Eclipse 將來(lái)能成為可進(jìn)行任何語(yǔ)言開(kāi)發(fā)的 IDE 集大成者,使用者只需下載各種語(yǔ)言的插件即可3。4.4 SQLSERVER 2005 數(shù)據(jù)庫(kù)SQL Server是由Microsoft開(kāi)發(fā)和推廣的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開(kāi)發(fā)的,并于1988年推出了第一個(gè)OS/2版本。 SQL Server近年來(lái)不斷更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用戶見(jiàn)面;SQL Server 2005是Microsoft公司于2005年推出的最新版本。 SQL Server 特點(diǎn):1真正的客戶機(jī)/服務(wù)器體系結(jié)構(gòu)。 2圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫(kù)管理更加直觀、簡(jiǎn)單。 3豐富的編程接口工具,為用戶進(jìn)行程序設(shè)計(jì)提供了更大的選擇余地。 4SQL Server與Windows NT完全集成,利用了NT的許多功能,如發(fā)送和接受消息,管理登錄安全性等。SQL Server也可以很好地與Microsoft BackOffice產(chǎn)品集成。 5具有很好的伸縮性,可跨越從運(yùn)行Windows 95/98的膝上型電腦到運(yùn)行Windows 2005的大型多處理器等多種平臺(tái)使用。 6對(duì)Web技術(shù)的支持,使用戶能夠很容易地將數(shù)據(jù)庫(kù)中的數(shù)據(jù)發(fā)布到Web頁(yè)面上。 7SQL Server提供數(shù)據(jù)倉(cāng)庫(kù)功能,這個(gè)功能只在Oracle和其他更昂貴的DBMS中才有。4.5 JDBC介紹JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它由一組用Java語(yǔ)言編寫(xiě)的類和接口組成。JDBC為工具/數(shù)據(jù)庫(kù)開(kāi)發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開(kāi)發(fā)人員能夠用純 Java API 編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序,同時(shí),JDBC也是個(gè)商標(biāo)名4。 有了JDBC,向各種關(guān)系數(shù)據(jù)發(fā)送SQL語(yǔ)句就是一件很容易的事。換言之,有了JDBC API,就不必為訪問(wèn)Sybase數(shù)據(jù)庫(kù)專門(mén)寫(xiě)一個(gè)程序,為訪問(wèn)Oracle數(shù)據(jù)庫(kù)又專門(mén)寫(xiě)一個(gè)程序,或?yàn)樵L問(wèn)Informix數(shù)據(jù)庫(kù)又編寫(xiě)另一個(gè)程序等等,程序員只需用JDBC API寫(xiě)一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送SQL調(diào)用。同時(shí),將Java語(yǔ)言和JDBC結(jié)合起來(lái)使程序員不必為不同的平臺(tái)編寫(xiě)不同的應(yīng)用程序,只須寫(xiě)一遍程序就可以讓它在任何平臺(tái)上運(yùn)行,這也是Java語(yǔ)言“編寫(xiě)一次,處處運(yùn)行”的優(yōu)勢(shì)。Java數(shù)據(jù)庫(kù)連接體系結(jié)構(gòu)是用于Java應(yīng)用程序連接數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)方法。JDBC對(duì)Java程序員而言是API,對(duì)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)連接的服務(wù)提供商而言是接口模型。作為API,JDBC為程序開(kāi)發(fā)提供標(biāo)準(zhǔn)的接口,并為數(shù)據(jù)庫(kù)廠商及第三方中間件廠商實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接提供了標(biāo)準(zhǔn)方法。JDBC使用已有的SQL標(biāo)準(zhǔn)并支持與其它數(shù)據(jù)庫(kù)連接標(biāo)準(zhǔn),如ODBC之間的橋接。JDBC實(shí)現(xiàn)了所有這些面向標(biāo)準(zhǔn)的目標(biāo)并且具有簡(jiǎn)單、嚴(yán)格類型定義且高性能實(shí)現(xiàn)的接口5。JDBC 擴(kuò)展了 Java 的功能。例如,用 Java 和 JDBC API 可以發(fā)布含有 applet 的網(wǎng)頁(yè),而該 applet 使用的信息可能來(lái)自遠(yuǎn)程數(shù)據(jù)庫(kù)企業(yè)也可以用 JDBC 通過(guò) Intranet 將所有職員連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫(kù)中(即使這些職員所用的計(jì)算機(jī)有 Windows、 Macintosh 和UNIX 等各種不同的操作系統(tǒng))。隨著越來(lái)越多的程序員開(kāi)始使用Java 編程語(yǔ)言,對(duì)從 Java 中便捷地訪問(wèn)數(shù)據(jù)庫(kù)的要求也在日益增加6。 企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫(kù),并能便捷地存取信息,即使這些信息是儲(chǔ)存在不同數(shù)據(jù)庫(kù)管理系統(tǒng)上。新程序的開(kāi)發(fā)期很短。安裝和版本控制將大為簡(jiǎn)化。程序員可只編寫(xiě)一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序。對(duì)于商務(wù)上的銷售信息服務(wù), Java 和JDBC 可為外部客戶提供獲取信息更新的更好方法。簡(jiǎn)單地說(shuō),JDBC 可做三件事:與數(shù)據(jù)庫(kù)建立連接、發(fā)送 SQL 語(yǔ)句并處理結(jié)果。下列代碼段給出了以上三步的基本示例: Connection con = DriverManager.getConnection("jdbc:odbc:wombat","login", "password"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table1"); while (rs.next() int x = rs.getInt("a"); String s = rs.getString("b"); float f = rs.getFloat("c"); 上述代碼對(duì)基于JDBC的數(shù)據(jù)庫(kù)訪問(wèn)做了經(jīng)典的總結(jié)。4.6 系統(tǒng)數(shù)據(jù)庫(kù)連接JDBC技術(shù)是Java DataBase Connectivity的縮寫(xiě),它是SUN公司提供的一種支持基本SQL功能的通用的應(yīng)用程序接口(Application Programming Interface)。它由一組用Java語(yǔ)言編寫(xiě)的類和接口組成7。通過(guò)這些類和接口,程序開(kāi)發(fā)人員可以在Java語(yǔ)言中方便地建立與數(shù)據(jù)庫(kù)的鏈接,通過(guò)執(zhí)行相應(yīng)SQL語(yǔ)句,完成對(duì)不同數(shù)據(jù)庫(kù)的訪問(wèn)。因此,開(kāi)發(fā)人員使用JDBC API可以不必編寫(xiě)一個(gè)應(yīng)用程序來(lái)訪問(wèn)Sybase數(shù)據(jù)庫(kù),又另外編寫(xiě)一個(gè)應(yīng)用程序去訪問(wèn)Oracle數(shù)據(jù)庫(kù),再寫(xiě)一個(gè)應(yīng)用程序訪問(wèn)Microsoft的SQL Server。不但如此,使用Java語(yǔ)言編寫(xiě)的應(yīng)用程序可以在任何支持Java的平臺(tái)上運(yùn)行,不必在不同的平臺(tái)上開(kāi)發(fā)不同的應(yīng)用程序7。JDBC是一種通用低層的應(yīng)用程序編程接口,它在不同的數(shù)據(jù)庫(kù)功能模塊的層次上提供一個(gè)統(tǒng)一的用戶界面。說(shuō)JDBC是一處低級(jí)的API,是指它直接調(diào)用SQL命令,它比其他的一些數(shù)據(jù)庫(kù)連接API要容易使用些,但它有同樣可以作為更高級(jí)的,用戶辦面更友好的API或開(kāi)發(fā)工具基礎(chǔ)。很多可視化的Java開(kāi)發(fā)工具,如Visual Age For Java、Visual Caf、J+等都提供了基于JDBC的更面向用戶的類和包,直接將關(guān)系數(shù)據(jù)庫(kù)的表或視圖映射為Java類,程序員通過(guò)可視化工具直接對(duì)Java對(duì)象進(jìn)行操作,而真正需要的SQL調(diào)用則根據(jù)程序員發(fā)出的對(duì)對(duì)象的各種屬性、方法的操作來(lái)自動(dòng)產(chǎn)生。另一種使用JDBC API 的方式為,用戶程序可以提供一個(gè)界面(如菜單等)讓用戶選擇對(duì)數(shù)據(jù)庫(kù)進(jìn)行的操作,選中一個(gè)任務(wù)后,提示用戶輸入一些必要的信息,然后根據(jù)用戶的輸入產(chǎn)生相應(yīng)的SQL命令以及Java程序。通過(guò)這處方式,用戶可以完成對(duì)數(shù)據(jù)庫(kù)的操作,即使他并不了解SQL語(yǔ)法以及JDBC編程8。數(shù)據(jù)庫(kù)訪問(wèn)的三層結(jié)構(gòu)如圖5.1所示,瀏覽器端程序要訪問(wèn)數(shù)據(jù)庫(kù),首先通過(guò)中間件,然后由中間件對(duì)數(shù)據(jù)庫(kù)操作權(quán)限進(jìn)行認(rèn)證,認(rèn)證通過(guò)才能對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。圖4-1 使用中間件的數(shù)據(jù)庫(kù)訪問(wèn)三層結(jié)構(gòu)用戶對(duì)數(shù)據(jù)庫(kù)的存取權(quán)限認(rèn)證是中間件中完成,對(duì)數(shù)據(jù)庫(kù)的查詢、插入、更新和刪除操作等都封裝在中間件中,該中間件位于服務(wù)器端,中間件對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作后,再將處理結(jié)果通過(guò)Web服務(wù)器返回到瀏覽器端用戶。這樣,在用戶端輸入的用戶名和密碼,可以通過(guò)加密算法進(jìn)行加密后在網(wǎng)絡(luò)上傳輸,在中間件中進(jìn)行解密認(rèn)證,然后再進(jìn)行數(shù)據(jù)庫(kù)的存取操作,數(shù)據(jù)庫(kù)存取權(quán)限的用戶名和密碼出現(xiàn)在位于服務(wù)器端的中間件中,這樣就更加安全。本系統(tǒng)采用的正是這樣的三層結(jié)構(gòu)的數(shù)據(jù)庫(kù)訪問(wèn)模式。在三層模型中,命令將被發(fā)送到服務(wù)的”中間層”,而”中間層”將SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)處理SQL語(yǔ)句并將結(jié)果返回”中間層”,然后”中間層”將它們返回用戶。其模型如圖4-2所示。圖4-2 JDBC的三層模型因?yàn)椤敝虚g層”可以進(jìn)行對(duì)訪問(wèn)的控制并協(xié)同數(shù)據(jù)庫(kù)的更新,并且可以使用一個(gè)易用的高層API,這個(gè)API可以由“中間層”進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成低層的調(diào)用。所以在許多種情況下,三層模型可以提供更好的性能,本系統(tǒng)中所采用的就是此種模型。JDBC是JAVA應(yīng)用程序與數(shù)據(jù)庫(kù)的溝通橋梁。它提供了三項(xiàng)服務(wù)功能:一、與數(shù)據(jù)庫(kù)建立連接。二、將SQL語(yǔ)句傳遞給數(shù)據(jù)庫(kù)。當(dāng)JDBC要與數(shù)據(jù)庫(kù)建立連接前,首先,它必須先取得連接此數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng)程序,Class.forName()即是在執(zhí)行此項(xiàng)工作。建立數(shù)據(jù)庫(kù)連接的第一步驟就是將JDBC驅(qū)動(dòng)程序的類載入至JVM(Java VirtualL Machine)中,本系統(tǒng)中利用java.lang.Class類內(nèi)的forName()靜態(tài)函數(shù)依據(jù)指定的類名稱,將JDBC驅(qū)動(dòng)程序載入進(jìn)來(lái)。完成載入驅(qū)動(dòng)程序的步驟后,必須使用java.sal.DriverManager類所提供的getConnection()靜態(tài)函數(shù),取得與數(shù)據(jù)庫(kù)間的連接對(duì)象9。此連接對(duì)象的類類型為java.sal.Connection,必須通過(guò)它才能將SQL指令傳遞給數(shù)據(jù)庫(kù),而執(zhí)行結(jié)果也需要通過(guò)連接對(duì)象來(lái)取得。當(dāng)取得連接對(duì)象后,還必須取得Statement對(duì)象才能對(duì)數(shù)據(jù)庫(kù)執(zhí)行SQL指令。Statement主要實(shí)現(xiàn)兩個(gè)功能:執(zhí)行SQL語(yǔ)句以及取得執(zhí)行結(jié)果。在java.sql.Statement的sql對(duì)象中執(zhí)行查詢或修改命令的函數(shù)后傳回的是一個(gè)ResultSet 對(duì)象,這個(gè)對(duì)象提供了一個(gè)存取SQL執(zhí)行結(jié)果的管道,以便通過(guò)它將表格數(shù)據(jù)從數(shù)據(jù)庫(kù)中取出。每個(gè)Statement對(duì)象只能產(chǎn)生一個(gè)ResultSet 對(duì)象10。數(shù)據(jù)庫(kù)連接如圖4-3所示:圖4-3 數(shù)據(jù)庫(kù)的連接處理數(shù)據(jù)庫(kù)的連接處理具體實(shí)現(xiàn)如下:第一步,建立JDBCODBC橋sun.jdbc.odbc.JdbcOdbcDriver;第二步,橋建立不成功時(shí)的錯(cuò)誤處理catch(ClassNotFoundException event)第三步,建立與數(shù)據(jù)庫(kù)的連接,并發(fā)送SQL查詢語(yǔ)句,將結(jié)果保存到rs對(duì)象中Con=建立JDBCODBC橋Sql=SQL查詢語(yǔ)句最后,執(zhí)行查詢Rs=返回結(jié)果SQL出錯(cuò)處理catch(SQLException e1)。4. 7系統(tǒng)數(shù)據(jù)表客人信息表主要包括客戶ID、客戶姓名、性別、證件號(hào)、聯(lián)系電話,其中用戶ID為主鍵。 表4-1客人信息表字段名數(shù)據(jù)類型空/非空約束條件其他說(shuō)明clientIdintnot nullIDENTITY(1,1) PRIMARY KEY客戶IDnamevarchar(20)not null客戶姓名sexvarchar(2)not null性別identityCardvarchar(30)not null證件號(hào)phonevarchar(20)not null系電聯(lián)話 登錄信息表主要包用戶編號(hào)、用戶名、密碼和權(quán)限,用戶編號(hào)為主鍵。 表4-2登錄信息表字段名數(shù)據(jù)類型空/非空約束條件其他說(shuō)明employeeIdintnot nullIDENTITY(1,1) PRIMARY KEY用戶編號(hào)userNamevarchar(20)not null用戶名passwordvarchar(20)not null密碼perintnot null權(quán)限房間類型表包括類型編號(hào)、類型名、房間價(jià)格、類型編號(hào)為主鍵。 表4-3房間類型表字段名數(shù)據(jù)類型空/非空約束條件其他說(shuō)明typeIdintnot nullIDENTITY(1,1) PRIMARY KEY類型編號(hào)typeNamevarchar(20)not null類型名priceintnot null價(jià)格房間信息表包括房間ID、房間號(hào)、房間類型ID、房間狀態(tài)、其中房間ID為主鍵。表4-4房間信息表字段名數(shù)據(jù)類型空/非空約束條件其他說(shuō)明roomIdintnot nullIDENTITY(1,1) PRIMARY KEY房間IDroomNumintnot null房間號(hào)typeIdintnot nullforeign key REFERENCES tbtype(typeId)房間類型IDstatusvarhar(10)not null房間狀態(tài) 客房住戶登記信息表主要包括登記ID、房間號(hào)、客戶ID、預(yù)定入住日期、退房日期、等信息。登記ID為主鍵。 表4-5客戶住房登記信息表字段名數(shù)據(jù)類型空/非空約束條件其他說(shuō)明checkIdintnot nullIDENTITY(1,1) PRIMARY KEY登記IDroomNumintnot nullforeign key REFERENCES tbroom(roomNum)房間號(hào)clientIdintnot nullforeign key REFERENCES tbclient(clentId)客戶IDstartDatedatenot null預(yù)訂入住日期lastDatedatenot null退房日期spevarchar(50)描述4.8 B/S模式與C/S模式的比較分析C/S模式主要由客戶應(yīng)用程序(Client)、服務(wù)器管理程序(Server)和中間件(middleware)三個(gè)部件組成。客戶應(yīng)用程序是系統(tǒng)中用戶與數(shù)據(jù)進(jìn)行交互的部件。服務(wù)器程序負(fù)責(zé)有效地管理系統(tǒng)資源,如管理一個(gè)信息數(shù)據(jù)庫(kù),其主要工作是當(dāng)多個(gè)客戶并發(fā)地請(qǐng)求服務(wù)器上的相同資源時(shí),對(duì)這些資源進(jìn)行最優(yōu)化管理。中間件負(fù)責(zé)聯(lián)結(jié)客戶應(yīng)用程序與服務(wù)器管理程序,協(xié)同完成一個(gè)作業(yè),以滿足用戶查詢管理數(shù)據(jù)的要求。 B/S模式是一種以Web技術(shù)為基礎(chǔ)的新型的MIS系統(tǒng)平臺(tái)模式。把傳統(tǒng)C/S模式中的服務(wù)器部分分解為一個(gè)數(shù)據(jù)服務(wù)器與一個(gè)或多個(gè)應(yīng)用服務(wù)器(Web服務(wù)器),從而構(gòu)成一個(gè)三層結(jié)構(gòu)的客戶服務(wù)器體系11。 第一層客戶機(jī)是用戶與整個(gè)系統(tǒng)的接口。客戶的應(yīng)用程序精簡(jiǎn)到一個(gè)通用的瀏覽器軟件,如NetscapeNavigator,微軟公司的IE等。瀏覽器將HTML代碼轉(zhuǎn)化成圖文并茂的網(wǎng)頁(yè)。網(wǎng)頁(yè)還具備一定的交互功能,允許用戶在網(wǎng)頁(yè)提供的申請(qǐng)表上輸入信息提交給后臺(tái),并提出處理請(qǐng)求。這個(gè)后臺(tái)就是第二層的Web服務(wù)器。 第二層Web服務(wù)器將啟動(dòng)相應(yīng)的進(jìn)程來(lái)響應(yīng)這一請(qǐng)求,并動(dòng)態(tài)生成一串HTML代碼,其中嵌入處理的結(jié)果,返回給客戶機(jī)的瀏覽器。如果客戶機(jī)提交的請(qǐng)求包括數(shù)據(jù)的存取,Web服務(wù)器還需與數(shù)據(jù)庫(kù)服務(wù)器協(xié)同完成這一處理工作。 第三層數(shù)據(jù)庫(kù)服務(wù)器的任務(wù)類似于C/S模式,負(fù)責(zé)協(xié)調(diào)不同的Web服務(wù)器發(fā)出的SQ請(qǐng)求,管理數(shù)據(jù)庫(kù)。 B/S模式的優(yōu)勢(shì)比較明顯。首先它簡(jiǎn)化了客戶端。它無(wú)需象C/S模式那樣在不同的客戶機(jī)上安裝不同的客戶應(yīng)用程序,而只需安裝通用的瀏覽器軟件。這樣不但可以節(jié)省客戶機(jī)的硬盤(pán)空間與內(nèi)存,而且使安裝過(guò)程更加簡(jiǎn)便、網(wǎng)絡(luò)結(jié)構(gòu)更加靈活。假設(shè)一個(gè)企業(yè)的決策層要開(kāi)一個(gè)討論庫(kù)存問(wèn)題的會(huì)議,他們只需從會(huì)議室的計(jì)算機(jī)上直接通過(guò)瀏覽器查詢數(shù)據(jù),然后顯示給大家看就可以了。甚至與會(huì)者還可以把筆記本電腦聯(lián)上會(huì)議室的網(wǎng)絡(luò)插口,自己來(lái)查詢相關(guān)的數(shù)據(jù)。其次,它簡(jiǎn)化了系統(tǒng)的開(kāi)發(fā)和維護(hù)。系統(tǒng)的開(kāi)發(fā)者無(wú)須再為不同級(jí)別的用戶設(shè)計(jì)開(kāi)發(fā)不同的客戶應(yīng)用程序了,只需把所有的功能都實(shí)現(xiàn)在Web服務(wù)器上,并就不同的功能為各個(gè)組別的用戶設(shè)置權(quán)限就可以了。各個(gè)用戶通過(guò)HTTP請(qǐng)求在權(quán)限范圍內(nèi)調(diào)用Web服務(wù)器上不同處理程序,從而完成對(duì)數(shù)據(jù)的查詢或修改?,F(xiàn)代企業(yè)面臨著日新月異的競(jìng)爭(zhēng)環(huán)境,對(duì)企業(yè)內(nèi)部運(yùn)作機(jī)制的更新與調(diào)整也變得逐漸頻繁。相對(duì)于C/S,B/S的維護(hù)具有更大的靈活性。當(dāng)形勢(shì)變化時(shí),它無(wú)須再為每一個(gè)現(xiàn)有的客戶應(yīng)用程序升級(jí),而只需對(duì)Web服務(wù)器上的服務(wù)處理程序進(jìn)行修訂。這樣不但可以提高公司的運(yùn)作效率,還省去了維護(hù)時(shí)協(xié)調(diào)工作的不少麻煩。如果一個(gè)公司有上千臺(tái)客戶機(jī),并且分布在不同的地點(diǎn),那么便于維護(hù)將會(huì)顯得更加重要。 最后,B/S特別適用于網(wǎng)上信息發(fā)布,使得傳統(tǒng)的MIS的功能有所擴(kuò)展。這是C/S所無(wú)法實(shí)現(xiàn)的。而這種新增的網(wǎng)上信息發(fā)布功能恰是現(xiàn)代企業(yè)所需的。這使得企業(yè)的大部分書(shū)面文件可以被電子文件取代,從而提高了企業(yè)的工作效率,使企業(yè)行政手續(xù)簡(jiǎn)化,節(jié)省人力物力。 鑒于B/S相對(duì)于C/S的先進(jìn)性,B/S逐漸成為一種流行的MIS系統(tǒng)平臺(tái)。各軟件公司紛紛推出自己的Internet方案,基于Web的財(cái)務(wù)系統(tǒng)、基于Web的ERP。一些企業(yè)已經(jīng)領(lǐng)先一步開(kāi)始使用它,并且收到了一定的成效12。 B/S模式的新穎與流行,和在某些方面相對(duì)于C/S的巨大改進(jìn),使B/S成了MIS系統(tǒng)平臺(tái)的首選。第5章 系統(tǒng)分析5.1 系統(tǒng)功能分析(1) 系統(tǒng)界面采用Web方式,界面應(yīng)簡(jiǎn)潔明了,用戶可方便瀏覽和查找客房信息。該系統(tǒng)的用戶有兩種類型:一是管理員,二是服務(wù)員,兩者應(yīng)具有不同的權(quán)限。(2) 系統(tǒng)需對(duì)用戶登錄進(jìn)行管理。使用各功能模塊時(shí),系統(tǒng)應(yīng)驗(yàn)證用戶身份的有效性,否則要求用戶登錄。另外,允許用戶對(duì)自己的密碼進(jìn)行修改。(3) 系統(tǒng)應(yīng)提供客房的分類管理功能,可分類制訂價(jià)格、是否配備空調(diào)等客房類型,對(duì)不同標(biāo)準(zhǔn)的客房進(jìn)行有效管理。系統(tǒng)可實(shí)現(xiàn)對(duì)客房信息的添加、刪除以及修改。 (4) 在進(jìn)行訂房管理時(shí),系統(tǒng)可以根據(jù)客房當(dāng)前的狀態(tài)自動(dòng)提示可用服務(wù)訂房。(5) 系統(tǒng)在各功能模塊的實(shí)現(xiàn)當(dāng)中,提供多級(jí)分類檢索和組合搜索。(6) 系統(tǒng)的客戶端在Windows平臺(tái)下運(yùn)行,服務(wù)器端可在Windows平臺(tái)或UNIX平臺(tái)下運(yùn)行。系統(tǒng)還需要有較好的安全性和可擴(kuò)展性。5.2 系統(tǒng)功能模塊系統(tǒng)功能模塊展示了酒店客房預(yù)訂系統(tǒng)的布局,使該系統(tǒng)的功能一目了然。酒店客房預(yù)訂系統(tǒng)主要分為兩個(gè)模塊,分別為管理員模塊和用戶模塊。管理員模塊主要實(shí)現(xiàn)客房管理、客房類別管理、會(huì)員管理、信息查詢的功能。而用戶功能模塊實(shí)現(xiàn)了客房搜索、客房預(yù)訂、并且可以查看預(yù)訂記錄酒店客房預(yù)定系統(tǒng)客房預(yù)定客房搜索信息查詢會(huì)員管理客房類別管理客房管理查看預(yù)定記錄用戶管理員剩余房間查詢訂房信息查詢預(yù)定信息查詢圖5-1 功能模塊圖5.3 處理流程設(shè)計(jì)5.3.1 數(shù)據(jù)增加流程添加信息時(shí),編號(hào)字段由系統(tǒng)自動(dòng)生成,且不能修改,其他信息由用戶輸入,之后對(duì)數(shù)據(jù)進(jìn)行合法判斷,合法則寫(xiě)入保存至數(shù)據(jù)庫(kù),不合法則重新輸入數(shù)據(jù)。數(shù)據(jù)增加流程圖:開(kāi)始自動(dòng)生成編號(hào)輸入數(shù)據(jù)是否合法寫(xiě)入數(shù)據(jù)庫(kù)結(jié)束圖5-2 數(shù)據(jù)增加流程圖5.3.2 數(shù)據(jù)修改流程在修改信息時(shí),先選中一條待修改的記錄,然后直接輸入數(shù)據(jù),判斷合法性,合法則保存至數(shù)據(jù)庫(kù),不合法重新輸入。數(shù)據(jù)修改流程圖如圖5-3所示。開(kāi)始選擇需要修改記錄輸入數(shù)據(jù)是否合法寫(xiě)入數(shù)據(jù)庫(kù)結(jié)束圖5-3 數(shù)據(jù)修改流程圖5.3.3 數(shù)據(jù)刪除流程當(dāng)用戶選定一條記錄時(shí),單擊刪除按鈕,會(huì)提示用戶是否確定刪除,然后刪除數(shù)據(jù)庫(kù)相關(guān)內(nèi)容。數(shù)據(jù)刪除流程圖如圖5-4所示。開(kāi)始選擇需要?jiǎng)h除記錄是否刪除更新數(shù)據(jù)庫(kù)圖5-4 數(shù)據(jù)修改流程圖第6章 系統(tǒng)設(shè)計(jì)6.1 前臺(tái)模塊設(shè)計(jì)6.1.1 首頁(yè)用戶可以通過(guò)此界面觀看酒店信息圖6-1 酒店預(yù)定系統(tǒng)的首頁(yè)主界面主要鏈接和關(guān)鍵代碼如下:<!-鏈接到首頁(yè)-> href="Index.jsp">首頁(yè)</a> </li> <li> <!-發(fā)送ShowHotelInfo.action這個(gè)請(qǐng)求,調(diào)用相應(yīng)類的相應(yīng)方法查詢連鎖式酒店信息,并將結(jié)果顯示在ShowHotelInfo.jsp關(guān)聯(lián)的界面上-> <a href="ShowHotelInfo.action?star=<%="1"%>">用戶注冊(cè)</a> </li> <li> <!-發(fā)送ShowHotelInfo.action這個(gè)請(qǐng)求,調(diào)用相應(yīng)類的相應(yīng)方法查詢經(jīng)濟(jì)型酒店信息,并將結(jié)果顯示在ShowHotelInfo.jsp關(guān)聯(lián)的界面上-><a href="ShowHotelInfo.action?star=<%="2"%>">用戶中心</a> </li> <li> <!-發(fā)送ShowHotelInfo.action這個(gè)請(qǐng)求,調(diào)用相應(yīng)類的相應(yīng)方法查詢高檔型酒店信息,并將結(jié)果顯示在ShowHotelInfo.jsp關(guān)聯(lián)的界面上-><a href="ShowHotelInfo.action?star=<%="3"%>">客房搜索</a> </li> <li>發(fā)送room_info.action這個(gè)請(qǐng)求調(diào)用AdminRoomAction這個(gè)類中的selectAllRoom方法查出所有房間信息,返回結(jié)果并顯示在ShowRoomInfo.jsp關(guān)聯(lián)的界面上通過(guò)以下代碼來(lái)判斷用戶是否登陸:<% if(null = userId | userId.equals("")6.1.2 用戶注冊(cè)用戶可以通過(guò)此界面進(jìn)行注冊(cè),用戶可以輸入用戶名、密碼、姓名、年齡、住址、郵件等一系列個(gè)人信息。圖6-2 用戶注冊(cè)界面用戶注冊(cè)關(guān)鍵代碼:public String insertUser() throws Exception HttpServletRequest request = ServletActionContext.getRequest(); HttpServletResponse response = ServletActionContext.getResponse(); 實(shí)例化一個(gè)UserDAO類實(shí)例:IUserDAO userdao = new UserDAO()取到所有用戶的信息:List<UserVO> list = userdao.findAllUser(); request.getSession().setAttribute("userList", list); 遍歷每一個(gè)用戶信息驗(yàn)證用戶是否已存在:ListIterator<UserVO> it = list.listIterator(); while (it.hasNext(); UserVOuservo2=it.next(); if(usrVo.getUserId().equals(uservo2.getUserId() request.setAttribute("user_exist", "用戶名已存在"); request.getRequestDispatcher("UserRegister.jsp").forward(request, response); return "" 將該用戶寫(xiě)入數(shù)據(jù)庫(kù):boolean isSuccess = userdao.insertUser(userVo); if (isSuccess) request.getSession().setAttribute("uid", userVo.getUserId(); return SUCCESS; else return INPUT; 6.1.3 用戶登錄用戶登錄成功后能夠訂房和退房。圖6-3 用戶登錄界面登陸關(guān)鍵驗(yàn)證代碼:public String login() throws Exception HttpServletRequest request = ServletActionContext.getRequest();取出用戶輸入的用戶名和密碼:String userId = request.getParameter("userId"); String password = request.getParameter("password"); UserDAO userdao = new UserDAO(); 驗(yàn)證用戶輸入的用戶名和密碼是否和數(shù)據(jù)庫(kù)所存的用戶名和密碼一致:boolean isSuccess = userdao.login(userId, password); if (isSuccess) request.getSession().setAttribute("user", userId); return SUCCESS; else request.getSession().setAttribute("user", ""); return INPUT; 6.1.4 客房搜索通過(guò)此功能能夠查看房間信息,用戶可以通過(guò)此界面進(jìn)行三種方式搜索:分別為按客房名稱搜索、按推薦指數(shù)搜索、按客房類別搜索。圖6-4 客房搜素界面客房搜索實(shí)現(xiàn)過(guò)程如下:public List<RoomVO> findAllRoom(String sql, PageBean pagebean) 定義一集合用來(lái)存放房間信息:ArrayList<RoomVO> list = new ArrayList<RoomVO>(); Connection conn = null; PreparedStatement pstm = null; ResultSet rs = null; 獲取到數(shù)據(jù)庫(kù)的連接:try pstm = conn.prepareStatement(sql); rs conn = DBConnection.getConnection(); for (int i = pagebean.getStartNum(); i <= pagebean.getEndNum(); i+) rs.absolute(i); 新建一個(gè)RoomVO 對(duì)象用來(lái)存放一個(gè)房間的信息:RoomVO roomVo = new RoomVO();roomVo.setRoomId(rs.getString("room_Id"); roomVo.setStatus(rs.getString("room_Status");roomVo.setRoomName(rs.getString("room_Name"); roomVo.setAvailable(rs.getString("room_Available"); roomVo.setPrice(rs.getFloat("room_Price");roomVo.setDiscountPrice(rs.getFloat("room_DiscoutPrice"); roomVo.setHotelId(rs.getString("room_hotelId"); 將房間對(duì)象加入到集合list中:list.add(roomVo); catch (Exception e) e.printStackTrace(); finally try catch (Exception e) e.printStackTrace(); return list; 6.1.5 客房預(yù)訂用戶通過(guò)此界面進(jìn)行客房預(yù)訂。進(jìn)行搜索之后,用戶就會(huì)進(jìn)入客房預(yù)訂界面,在確認(rèn)預(yù)訂天數(shù)后就會(huì)顯示預(yù)訂成功。圖6-5 客房預(yù)定界面客房預(yù)訂實(shí)現(xiàn)過(guò)程如下:從數(shù)據(jù)庫(kù)中查詢登錄用戶的訂單:public List<ReserveVO> findReserveById(String id)定義一集合用來(lái)存放該訂單信息:List<ReserveVO> list = new ArrayList<ReserveVO>();Connection conn = null;PreparedStatement pstm = null; String sql = "select *from T_Reserve where reserve_UserId=" + id + ""獲取到數(shù)據(jù)庫(kù)的連接:try conn = DBConnection.getConnection(); pstm = conn.prepareStatement(sql); ResultSet rs = pstm.executeQuery();ReserveVO reservevo = null; 格式化日期:SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); while(rs.next() 創(chuàng)建一個(gè)ReserveVO對(duì)象存放信息:reservevo = new ReserveVO(); reservevo.setReserveId(rs.getString("reserve_Id"); eservevo.setRoomId(rs.getString("reserve_RoomId"); reservevo.setUserId(rs.getString("reserve_UserId"); reservevo.setPrice(rs.getFloat("reserve_Price"); reservevo.setTotal(rs.getFloat("reserve_Total"); Date startTime =rs.getDate("reserve_StartTime"); Date endTime=rs.getDate("reserve_OverTime"); reservevo.setStartTime(sdf.format(startTime); reservevo.setOverTime(sdf.format(endTime); reserveVo.setStartTime(rs.getString("reserve_StartTime");reserveVo.setOverTime(rs.getString("reserve_OverTime"); reservevo.setStatus(rs.getString("reserve_Status"); 將訂單對(duì)象加入到集合list中:list.add(reservevo); catch (Exception e) e.printStackTrace(); finally DBConnection.closeConnection(conn, pstm); return list; 6.2 后臺(tái)模塊設(shè)計(jì)6.2.1 管理員登錄管理員可以通過(guò)此界面進(jìn)入管理員界面。管理員輸入用戶名,密碼就可以登錄后臺(tái)管理。圖6-6管理員界面實(shí)現(xiàn)管理員登錄功能的關(guān)鍵代碼為:public String login() throws Exception HttpServletRequest request = ServletActionContext.getRequest();取出用戶輸入的用戶名和密碼:String userId = request.getParameter("userId"); String password = request.getParameter("password"); UserDAO userdao = new UserDAO(); 驗(yàn)證用戶輸入的用戶名和密碼是否和數(shù)據(jù)庫(kù)所存的用戶名和密碼一致:boolean isSuccess = userdao.login(userId, password); if (isSuccess) request.getSession().setAttribute("user", userId); return SUCCESS;

注意事項(xiàng)

本文(酒店客房預(yù)定系統(tǒng)畢業(yè)設(shè)計(jì)論文)為本站會(huì)員(1666****666)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!