計(jì)算機(jī)畢業(yè)設(shè)計(jì) 網(wǎng)上車票查詢預(yù)訂系統(tǒng)_第1頁
計(jì)算機(jī)畢業(yè)設(shè)計(jì) 網(wǎng)上車票查詢預(yù)訂系統(tǒng)_第2頁
計(jì)算機(jī)畢業(yè)設(shè)計(jì) 網(wǎng)上車票查詢預(yù)訂系統(tǒng)_第3頁
計(jì)算機(jī)畢業(yè)設(shè)計(jì) 網(wǎng)上車票查詢預(yù)訂系統(tǒng)_第4頁
計(jì)算機(jī)畢業(yè)設(shè)計(jì) 網(wǎng)上車票查詢預(yù)訂系統(tǒng)_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

學(xué)校代碼:10128學(xué)校代碼:10128學(xué)號(hào):200810205004本科畢業(yè)設(shè)計(jì)說明書本科畢業(yè)設(shè)計(jì)說明書題目:網(wǎng)上車票查詢預(yù)訂系統(tǒng)的題目:網(wǎng)上車票查詢預(yù)訂系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名:朱見濤學(xué)院:信息工程學(xué)院系別:計(jì)算機(jī)系專業(yè):軟件工程班級(jí):軟件08-1指導(dǎo)教師:趙永紅講師二〇一二年六月摘要鐵路作為中國(guó)最重要的交通工具之一,在市場(chǎng)經(jīng)濟(jì)浪潮中,面臨著嚴(yán)峻的考驗(yàn)。電子商務(wù)的出現(xiàn),正好帶給了鐵路客運(yùn)服務(wù)一個(gè)發(fā)展契機(jī),推出新型的訂票方式-網(wǎng)上訂票,既是技術(shù)上的創(chuàng)新,又將完善鐵路服務(wù),在一定程度上解決買票難這一大難題,增強(qiáng)鐵路競(jìng)爭(zhēng)力,為鐵路爭(zhēng)取到更多的客流。網(wǎng)上車票查詢與預(yù)訂系統(tǒng)是基于我大學(xué)所學(xué)如軟件工程、JAVA語言程序設(shè)計(jì)、SQLServer數(shù)據(jù)庫等學(xué)科的綜合應(yīng)用。在程序設(shè)計(jì)之前的需求分析、可行性分析、項(xiàng)目開發(fā)計(jì)劃、概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)的這些工作都是來源于軟件工程所學(xué)到的專業(yè)知識(shí),從而得以在實(shí)踐中應(yīng)用。在開發(fā)設(shè)計(jì)階段,由于本系統(tǒng)開發(fā)是基于JAVA語言開發(fā)技術(shù),所以系統(tǒng)的核心部分就是以JAVA語言為基礎(chǔ)開發(fā)本系統(tǒng)的源代碼工程,工程包括:對(duì)象類包、Servlet類包、數(shù)據(jù)庫包和JDBC連接數(shù)據(jù)庫包。本系統(tǒng)開發(fā)測(cè)試時(shí)所用數(shù)據(jù)庫為MySQL5.5版本,使用NavicatforMySQL圖形用戶界面操作,利用所學(xué)SQLServer數(shù)據(jù)庫技術(shù)知識(shí)完成數(shù)據(jù)庫的建立、表的建立和數(shù)據(jù)庫表關(guān)聯(lián)操作。本系統(tǒng)網(wǎng)頁頁面使用Dreamweaver8設(shè)計(jì)實(shí)現(xiàn),簡(jiǎn)潔大方。網(wǎng)上車票查詢與預(yù)訂系統(tǒng)基本完成所需的功能,各個(gè)功能模塊之間有的關(guān)聯(lián),有的相互獨(dú)立,在功能模塊劃分時(shí)運(yùn)用所學(xué)知識(shí)完成功能模塊圖等?;赪eb的訂票系統(tǒng)是通過網(wǎng)絡(luò)查詢信息,進(jìn)行火車票的預(yù)訂的電子商務(wù)系統(tǒng)。訂票在購票交易過程中扮演著十分重要的角色,設(shè)計(jì)和實(shí)現(xiàn)一個(gè)完整的基于Web的訂票系統(tǒng)能夠?yàn)槁每吞峁┮粋€(gè)快捷、便利的購票渠道,對(duì)促進(jìn)交通旅游票務(wù)事業(yè)的發(fā)展具有十分重要的意義。關(guān)鍵詞:網(wǎng)上車票查詢預(yù)訂系統(tǒng);JAVA;Dreamweaver;MySQL;JDBCAbstractRailwayasoneofthemostimportantmeansoftransportinChina,themarketeconomy,facesaseveretest.Emergenceofe-commerce,justtotherailwaypassengerserviceadevelopmentopportunity,launchedanewbooking--bookingonline,technicalinnovation,andwillimproverailservices,ticketstosomeextentresolvedifficultproblems,enhancethecompetitivenessofrailwaysandattractmorepassengertraffictotherailway.Onlineticketenquiriesandreservationsystemisbasedonmycollegestudiessuchassoftwareengineering,JAVAlanguageprogrammingandSQLServerdatabaseintegratedapplicationsofnetworktechnologyandotherdisciplines.Beforetheprogram'sneedsanalysis,feasibilitystudy,projectdevelopmentplan,designanddetaileddesignworkwouldbelearnedfromsoftwareengineeringexpertise,whichcanbeappliedinpractice.Inthedesigndevelopmentphase,becausethedevelopmentofthissystemisbasedontheJAVAlanguagedevelopmenttechnology,sothecorepartofthesystemisbasedontheJAVAlanguagesourcecodeprojectdevelopedthissystem,include:objectclass,Servletclasspackage,thepackagedatabaseandJDBCconnectiontothedatabasepackages.ThisdatabaseisusedbythesystemwhendevelopingatestversionMySQL5.5,usingNavicatforMySQLgraphicaluserinterface,usetheSQLServerdatabasetechnicalknowledgeofestablishmentofcompletetheestablishmentofadatabase,table,anddatabasetableoperation.ThesystemdesignandrealizationofWebpagesusingDreamweaver8,simpleandgenerous,tocompletetheforegroundandthebackground.On-lineticketquerybasicfunctionalityrequiredforcompletionandreservationsystem,somecorrelationbetweenfunctionalmodules,allindependentofeachother,inthefunctionmodulepartitionusingwhatyouhavelearnedtocompletefunctionmodulesfigure.Web-basedbookingsystemisanetworkofinformation,e-commercesystemfortrainticketreservation.Bookingtickettransactionsplaysaveryimportantroleintheprocess,designingandimplementingacompleteWeb-basedbookingsystemisabletoprovideafast,convenientbookingchannels,topromotedevelopmentoftourismtrafficticketisofgreatsignificance.Keywords:onlineticketquerysystem;JAVA;Dreamweaver;MySQL;JDBC目錄引言 1第一章相關(guān)技術(shù)簡(jiǎn)介 11.1JAVA技術(shù)簡(jiǎn)介 11.2MySQL簡(jiǎn)介 11.3Dreamweaver簡(jiǎn)介 11.4Myeclipse簡(jiǎn)介 1第二章系統(tǒng)分析 12.1需求分析 12.1.1分析目的 12.1.2項(xiàng)目背景 12.2任務(wù)概述 12.3系統(tǒng)工作流程 12.4功能分析 12.5系統(tǒng)處理流程 12.6數(shù)據(jù)分析 12.6.1數(shù)據(jù)庫設(shè)計(jì) 12.6.2數(shù)據(jù)庫介紹 1第三章系統(tǒng)設(shè)計(jì) 13.1功能劃分 13.2層次模塊圖 13.3功能描述 13.3功能分配 1第四章系統(tǒng)實(shí)現(xiàn) 14.1運(yùn)行及實(shí)現(xiàn) 1登錄注冊(cè)模塊 1前臺(tái)首頁模塊 1車票預(yù)訂模塊 1車次查詢模塊 1修改資料模塊 1用戶管理模塊 1站點(diǎn)管理模塊 1車次管理模塊 1訂單管理模塊 1消息管理模塊 14.2核心代碼 1結(jié)論 1參考文獻(xiàn) 1謝辭 1圖表清單TOC\h\z\t"圖表,1"\c"圖表"圖2-1網(wǎng)上車票查詢預(yù)訂系統(tǒng)網(wǎng)站工作流程圖 6圖2-2普通用戶用例圖 7圖2-3管理員用例圖 7圖2-4網(wǎng)上車票查詢預(yù)訂系統(tǒng)前臺(tái)流程圖 8圖2-5網(wǎng)上車票查詢預(yù)訂系統(tǒng)后臺(tái)流程圖 9圖3-1網(wǎng)上車票查詢預(yù)訂系統(tǒng)前臺(tái)總體結(jié)構(gòu)圖 13圖3-2網(wǎng)上車票查詢預(yù)訂系統(tǒng)后臺(tái)總體結(jié)構(gòu)圖 14圖3-5車票預(yù)訂模塊結(jié)構(gòu)圖 16圖3-6車次查詢模塊結(jié)構(gòu)圖 17圖3-7用戶注冊(cè)登錄結(jié)構(gòu)圖 17圖3-8修改資料模塊結(jié)構(gòu)圖 18圖3-9用戶管理模塊結(jié)構(gòu)圖 18圖3-10訂單管理模塊結(jié)構(gòu)圖 19圖3-11訂單管理模塊結(jié)構(gòu)圖 20圖3-12訂單管理模塊結(jié)構(gòu)圖 20圖3-13消息管理模塊結(jié)構(gòu)圖 21圖4-1系統(tǒng)登錄首頁login.jsp 22圖4-2沒有填寫用戶名或密碼報(bào)錯(cuò)提示框 22圖4-6前臺(tái)首頁index.html 24圖4-7車票預(yù)訂界面order.jsp 25圖4-8車票預(yù)訂成功界面ordersuccess.jsp 26圖4-9車次查詢界面checicx.html 26圖4-10車次查詢成功界面checicxsuccess.html 27圖4-12管理員登錄后臺(tái)界面Mindex.html 28圖4-13用戶管理界面Myonghu.jsp 28圖4-14添加用戶界面Mtianyonghu.jsp 29圖4-15刪除用戶界面Mshanyonghu.jsp 29圖4-16站點(diǎn)管理界面Mzhandian.jsp 30圖4-17車次管理界面Mcheci.jsp 30圖4-18訂單管理界面Mdingdan.jsp 31圖4-19刪除訂單界面Mshandingdan.jsp 31圖4-20消息管理界面Mxiaoxi.jsp 32表2-1ticket數(shù)據(jù)庫 9表2-2用戶信息表custom 10表2-3orderpace表 11表2-4train表 11表2-5point表 11表2-7message表 12引言隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)訂票開始慢慢地滲透到人們的生活中,只需一臺(tái)電腦,查詢、預(yù)訂都在虛擬的空間里進(jìn)行,讓訂票成為了一件輕松的事情。相對(duì)于傳統(tǒng)的購票方式,網(wǎng)上訂票的優(yōu)勢(shì)不言而喻。網(wǎng)上訂票查詢方便,不受時(shí)間和空間的限制,傳統(tǒng)買票方式一般是去售票點(diǎn)排隊(duì)購票,或者提前打個(gè)電話預(yù)訂,特別是到了春運(yùn)這個(gè)特殊的時(shí)候就很麻煩,車站里長(zhǎng)長(zhǎng)的購票隊(duì)伍尤為壯觀,不站上幾個(gè)小時(shí)很難買到票;而采用電話訂票的方式,特別是節(jié)假日時(shí)期,很難打通訂票電話。網(wǎng)絡(luò)訂票與傳統(tǒng)的售票方式最大的不同之處就在于不需要現(xiàn)場(chǎng)去排隊(duì),只要鼠標(biāo)輕輕一點(diǎn),足不出戶就能知道你所要前往的線路是否還有剩余車票,不至于排了半天隊(duì),還是沒買到票。網(wǎng)上車票查詢預(yù)訂系統(tǒng)是基于B/S結(jié)構(gòu)的服務(wù)系統(tǒng),它的開發(fā)主要采用JAVA編程技術(shù),JDBC連接數(shù)據(jù)庫技術(shù),網(wǎng)頁使用所學(xué)Dreamweaver有關(guān)知識(shí)制作完成,結(jié)合后臺(tái)數(shù)據(jù)庫MySQL綜合應(yīng)用完成本系統(tǒng)。使用Visio畫圖工具實(shí)現(xiàn)該系統(tǒng)的功能結(jié)構(gòu)圖。通過以上技術(shù)相結(jié)合,較好的完成了網(wǎng)上車票查詢預(yù)訂系統(tǒng)的建設(shè)。網(wǎng)上車票查詢預(yù)訂系統(tǒng)可以發(fā)布最新的車次信息、站點(diǎn)信息,可以實(shí)現(xiàn)在線車票預(yù)訂、查看車次的詳細(xì)信息和新用戶注冊(cè)。用戶可以通過注冊(cè),登錄本系統(tǒng)進(jìn)行車票信息的查詢及預(yù)訂操作。網(wǎng)上車票查詢預(yù)訂系統(tǒng)基本解決了日常所需的常見問題,但在功能方面還有待完善,如數(shù)據(jù)庫的保護(hù)與備份等。第一章相關(guān)技術(shù)簡(jiǎn)介1.1JAVA技術(shù)簡(jiǎn)介Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,是由SunMicrosystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺(tái)(即JavaSE,JavaEE,JavaME)的總稱。Java技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢(shì)和廣闊前景。Java編程語言的風(fēng)格十分接近C、C++語言。Java是一個(gè)純的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它繼承了C++語言面向?qū)ο蠹夹g(shù)的核心,Java舍棄了C++語言中容易引起錯(cuò)誤的指針(以引用取代)、運(yùn)算符重載(operatoroverloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對(duì)象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂。在JavaSE1.5版本中,Java又引入了泛型編程(GenericProgramming)、類型安全的枚舉、不定長(zhǎng)參數(shù)和自動(dòng)裝/拆箱等語言特性。Java不同于一般的編譯執(zhí)行計(jì)算機(jī)語言和解釋執(zhí)行計(jì)算機(jī)語言。它首先將源代碼編譯成二進(jìn)制字節(jié)碼(bytecode),然后依賴各種不同平臺(tái)上的虛擬機(jī)來解釋執(zhí)行字節(jié)碼,從而實(shí)現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺(tái)特性。不過,每次的編譯執(zhí)行需要消耗一定的時(shí)間,這同時(shí)也在一定程度上降低了Java程序的運(yùn)行效率。但在發(fā)布后,Java的執(zhí)行速度有了大幅提升。與傳統(tǒng)程序不同,Sun公司在推出Java之際就將其作為一種開放的技術(shù)。全球數(shù)以萬計(jì)的Java開發(fā)公司被要求所設(shè)計(jì)的Java軟件必須相互兼容?!癑ava語言靠群體的力量而非公司的力量”是Sun公司的口號(hào)之一,并獲得了廣大軟件開發(fā)商的認(rèn)同。這與微軟公司所倡導(dǎo)的注重精英和封閉式的模式完全不同。Sun公司對(duì)Java編程語言的解釋是:Java編程語言是個(gè)簡(jiǎn)單、面向?qū)ο?、分布式、解釋性、健壯、安全與系統(tǒng)無關(guān)、可移植、高性能、多線程和動(dòng)態(tài)的語言。Java平臺(tái)是基于Java語言的平臺(tái)。這樣的平臺(tái)目前非常流行,因此微軟公司推出了與之競(jìng)爭(zhēng)的.NET平臺(tái)以及模仿Java的C#語言。1.2MySQL簡(jiǎn)介MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。在2008年1月16號(hào)被Sun公司收購。而2009年,Sun又被Oracle收購。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉庫內(nèi)。這樣就增加了速度并提高了靈活性。MySQL的SQL“結(jié)構(gòu)化查詢語言”。SQL是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL軟件采用了GPL(GNU通用公共許可證)。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。由于MySQL是開放源代碼的,因此任何人都可以在GeneralPublicLicense的許可下下載并根據(jù)個(gè)性化的需要對(duì)其進(jìn)行修改。MySQL因?yàn)槠渌俣?、可靠性和適應(yīng)性而備受關(guān)注。大多數(shù)人都認(rèn)為在不需要事務(wù)化處理的情況下,MySQL是管理內(nèi)容最好的選擇。1.3Dreamweaver簡(jiǎn)介MacromediaDreamweaver是一款專業(yè)的HTML編輯器,用于對(duì)Web站點(diǎn)、Web頁和Web應(yīng)用程序進(jìn)行設(shè)計(jì)、編碼和開發(fā)。無論手工編寫HTML代碼還是在可視化編輯環(huán)境中工作,Dreamweaver都會(huì)提供有用的工具,集網(wǎng)頁制作和管理網(wǎng)站于一身。利用Dreamweaver中的可視化編輯功能,可以快速地創(chuàng)建頁面而無需編寫任何代碼??梢圆榭此姓军c(diǎn)元素或資源并將它們從易于使用的面板直接拖到文檔中??梢栽贛acromediaFireworks中創(chuàng)建和編輯圖像,然后將它們直接導(dǎo)入Dreamweaver,或者直接在Dreamweaver中添加MacromediaFlash對(duì)象,從而優(yōu)化開發(fā)工作流程。Dreamweaver還包括多種與編碼相關(guān)的工具和功能,其中包括代碼視圖中的代碼編輯工具(如代碼加色和標(biāo)簽完成);有關(guān)HTML、CSS、JavaScript、CFML、ASP和JSP的參考資料以及一個(gè)JavaScript調(diào)試器。Dreamweaver的可自由導(dǎo)入導(dǎo)出HTML技術(shù)可導(dǎo)入手工編碼的HTML文檔而不會(huì)重新設(shè)置代碼的格式,可以隨后用首選的格式設(shè)置樣式來重新設(shè)置代碼的格式。Dreamweaver現(xiàn)在包含并擴(kuò)展了MacromediaUltraDev中的所有功能,以幫助使用ASP、ASP.NET、ColdFusion標(biāo)記語言(CFML)、JSP和PHP等服務(wù)器語言來生成由動(dòng)態(tài)數(shù)據(jù)庫支持的Web應(yīng)用程序。Dreamweaver可以完全自定義。可以創(chuàng)建自己的對(duì)象和命令,修改鍵盤快捷方式,甚至編寫JavaScript代碼,用新的行為、屬性檢查器和站點(diǎn)報(bào)告來擴(kuò)展Dreamweaver的功能。在開發(fā)Web應(yīng)用程序時(shí),則必須根據(jù)需要設(shè)置服務(wù)器和數(shù)據(jù)庫。然后再設(shè)計(jì)該站點(diǎn)的外觀。當(dāng)外觀設(shè)計(jì)完成后,將生成該站點(diǎn)并編寫頁代碼,以添加內(nèi)容和交互控件;然后將頁面鏈接在一起,并對(duì)該站點(diǎn)進(jìn)行功能測(cè)試,以驗(yàn)證它是否符合定義的目標(biāo),還可以在站點(diǎn)中包含動(dòng)態(tài)頁。1.4Myeclipse簡(jiǎn)介MyEclipse,是一個(gè)十分優(yōu)秀的用于開發(fā)Java,J2EE的Eclipse插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開源產(chǎn)品的支持十分不錯(cuò)。MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipseEnterpriseWorkbench,簡(jiǎn)稱MyEclipse)是對(duì)EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類:(1)JavaEE模型(2)WEB開發(fā)工具(3)EJB開發(fā)工具(4)應(yīng)用程序服務(wù)器的連接器(5)JavaEE項(xiàng)目部署服務(wù)(6)數(shù)據(jù)庫服務(wù)(7)MyEclipse整合幫助對(duì)于以上每一種功能上的類別,在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實(shí)現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們?cè)诓挥绊懫渌K的情況下,對(duì)任一模塊進(jìn)行單獨(dú)的擴(kuò)展和升級(jí)。簡(jiǎn)單而言,MyEclipse是Eclipse的插件,也是一款功能強(qiáng)大的JavaEE集成開發(fā)環(huán)境,支持代碼編寫、配置、測(cè)試以及除錯(cuò),MyEclipse6.0以前版本需先安裝Eclipse。MyEclipse6.0以后版本安裝時(shí)不需安裝Eclipse。第二章系統(tǒng)分析2.1需求分析2.1.1分析目的本項(xiàng)目來源于實(shí)際應(yīng)用,傳統(tǒng)的購票方式暴露出了許多弊端:購買車票需要排隊(duì),浪費(fèi)大量時(shí)間,但卻不一定能買到車票。面對(duì)現(xiàn)在越來越多的網(wǎng)絡(luò)用戶,因此,開發(fā)一個(gè)網(wǎng)上車票查詢與預(yù)訂系統(tǒng)十分重要,該系統(tǒng)可以查詢車次,預(yù)訂車票,給用戶提供方便快捷的方式去購買車票,同時(shí)也緩解了車站售票窗口處排長(zhǎng)隊(duì)擁擠的狀況,也提高了車票銷售的效率。2.1.2項(xiàng)目背景基于B/S結(jié)構(gòu)的網(wǎng)上車票查詢預(yù)訂系統(tǒng)——趙永紅老師提出,由朱見濤同學(xué)開發(fā)。此系統(tǒng)開發(fā)主要采用JAVA、SQLServer等技術(shù),將它們綜合應(yīng)用來編寫代碼;另外在開發(fā)系統(tǒng)過程中還用到了Myeclipse、Dreamweaver、MySQL等輔助性開發(fā)軟件。系統(tǒng)主要實(shí)現(xiàn)了用戶注冊(cè)、登錄與用戶信息管理、車票的預(yù)訂,個(gè)人訂單管理、站點(diǎn)信息管理、車次信息管理和具體某車次的查詢等功能,并且它在WIN2000、WINXP、WIN2003系統(tǒng)中都能很好的運(yùn)行,在具有很好的兼容性。2.2任務(wù)概述1.設(shè)計(jì)目標(biāo)網(wǎng)上車票查詢預(yù)訂系統(tǒng)的設(shè)計(jì),不僅滿足廣大用戶的需求,重要的是也緩解了鐵路售票的巨大壓力,網(wǎng)上訂票查詢方便,不受時(shí)間和空間的限制。通過在網(wǎng)站的注冊(cè)后,可以進(jìn)行車票預(yù)訂、車次查詢等操作;管理員通過身份驗(yàn)證后進(jìn)入系統(tǒng)后臺(tái),可以進(jìn)行用戶等信息的增加、刪除與修改等操作。2.運(yùn)行環(huán)境操作系統(tǒng):MicrosoftWindowsxp/2000/2003及以上系統(tǒng)軟件環(huán)境:Tomcat6.0數(shù)據(jù)庫:MySQL5.52.3系統(tǒng)工作流程網(wǎng)上車票查詢預(yù)訂系統(tǒng)的主要作用是在前臺(tái)可以新用戶注冊(cè)、登錄、車票預(yù)訂、車次查詢等功能,在后臺(tái)主要可以進(jìn)行用戶管理、訂單管理、站點(diǎn)管理和車次管理等功能網(wǎng)上車票查詢預(yù)訂系統(tǒng)工作流程圖如圖2-1所示。圖2-1網(wǎng)上車票查詢預(yù)訂系統(tǒng)網(wǎng)站工作流程圖2.4功能分析網(wǎng)上車票查詢預(yù)訂系統(tǒng)網(wǎng)站的用戶為:系統(tǒng)管理員,需要提前預(yù)定車票的用戶,查詢車次詳細(xì)信息的用戶,在這里使用用例圖描述相關(guān)用戶的功能。用例圖是一個(gè)敘述型的文檔,用來描述參與者使用系統(tǒng)完成某個(gè)事件時(shí)的事情發(fā)生順序。以下描述了普通用戶的用例圖如圖2-2所示,和管理員的用例圖如圖2-3所示。圖2-2普通用戶用例圖圖2-3管理員用例圖2.5系統(tǒng)處理流程網(wǎng)上車票查詢預(yù)訂系統(tǒng)流程圖主要說明數(shù)據(jù)的處理過程,使用戶能夠一目了然的了解操作程序。網(wǎng)上車票查詢預(yù)訂系統(tǒng)前臺(tái)流程圖如圖2-4所示。圖2-4網(wǎng)上車票查詢預(yù)訂系統(tǒng)前臺(tái)流程圖網(wǎng)上車票查詢預(yù)訂系統(tǒng)后臺(tái)流程圖如圖2-5所示。圖2-5網(wǎng)上車票查詢預(yù)訂系統(tǒng)后臺(tái)流程圖2.6數(shù)據(jù)分析2.6.1數(shù)據(jù)庫設(shè)計(jì)網(wǎng)上車票預(yù)訂查詢系統(tǒng)網(wǎng)站數(shù)據(jù)庫包括系統(tǒng)用戶信息表、訂單信息表、站點(diǎn)信息表、列車信息表、消息表和票價(jià)信息表等共6張表,通過6張表的使用將網(wǎng)站的信息進(jìn)行管理,如表2-1所示。表2-1ticket數(shù)據(jù)庫數(shù)據(jù)庫表名稱功能描述Custom系統(tǒng)用戶信息表:記錄注冊(cè)本系統(tǒng)的所有用戶,包括管理員和普通用戶信息Orderpace訂單信息表:記錄普通用戶登錄本系統(tǒng)預(yù)訂車票產(chǎn)生的訂單信息Train列車信息表:記錄本系統(tǒng)所覆蓋鐵路線路的所有列車車次信息Point站點(diǎn)信息表:記錄本系統(tǒng)所覆蓋鐵路線路的所有站點(diǎn)信息Message消息表:記錄普通用戶登錄本系統(tǒng)發(fā)表轉(zhuǎn)讓車票等信息的信息內(nèi)容Price票價(jià)信息表:記錄每趟列車的不同車票類型的票價(jià)信息2.6.2數(shù)據(jù)庫介紹custom(系統(tǒng)用戶信息表)描述了用戶信息,如用戶的用戶名和密碼等,其中用戶級(jí)別這個(gè)字段用戶是不可以更改的,每一個(gè)通過本系統(tǒng)“新用戶注冊(cè)”功能注冊(cè)的用戶賬戶都默認(rèn)是普通用戶級(jí)別(即在數(shù)據(jù)庫中顯示為“1”級(jí)),而管理員賬戶級(jí)別在數(shù)據(jù)庫中顯示為“2”級(jí),如表2-2所示。表2-2用戶信息表custom字段字段類型說明備注customidInt(20)用戶編號(hào)PrimaryKeycustomnameVchar(60)用戶名稱NotNullcustompswVchar(60)用戶密碼NotNullcustommailVchar(60)用戶電子信箱AllowNullphoneVchar(60)用戶聯(lián)系電話AllowNulllevelInt(10)用戶級(jí)別NotNull訂單信息表orderpace,主要描述了車票預(yù)訂訂單的基本信息。該表中設(shè)有兩個(gè)外鍵:trainid和priceid。trainid作為外鍵關(guān)聯(lián)train表的主鍵trainid,用戶在預(yù)訂界面選擇出發(fā)站和到達(dá)站之后點(diǎn)擊預(yù)訂,后臺(tái)從數(shù)據(jù)庫中查得該次列車的列車編號(hào)、列車名稱、出發(fā)時(shí)間和到站時(shí)間,顯示給用戶,讓用戶看到詳細(xì)訂單信息;priceid作為外鍵關(guān)聯(lián)price表的主鍵priceid,用戶在預(yù)訂界面選擇出發(fā)站、到達(dá)站和所預(yù)訂車票的類型后,后臺(tái)從數(shù)據(jù)庫中查得該車次列車的對(duì)應(yīng)車票類型的票價(jià),將數(shù)據(jù)返回界面,顯示給用戶,讓用戶了解詳細(xì)的訂單信息,如表2-3所示。表2-3orderpace表字段名字段類型說明備注orderidInt(20)訂單編號(hào)PrimaryKeycustomnameVchar(60)顧客姓名AllowNulltrainedInt(20)列車編號(hào)ForeignKeypriceidInt(20)價(jià)格編號(hào)ForeignKey列車信息表train,主要描述了有關(guān)列車的相關(guān)信息,其主鍵trainid與orderpace表的外鍵trainid關(guān)聯(lián),如表2-4所示。表2-4train表字段名字段類型說明備注trainedInt(20)列車編號(hào)PrimaryKeytrainnameVchar(60)列車名稱NotNulltrainstartVchar(60)列車始發(fā)站NotNulltrainendVchar(60)列車終點(diǎn)站NotNullstarttimeVchar(60)發(fā)車時(shí)間NotNullendtimeVchar(60)到站時(shí)間NotNull站點(diǎn)信息表point,主要描述了本系統(tǒng)所有車次覆蓋站點(diǎn)的相關(guān)信息,如表2-5所示。表2-5point表字段名字段類型說明備注pointedInt(20)站點(diǎn)編號(hào)PrimaryKetPointnameVchar(60)站點(diǎn)名稱NotNull價(jià)格信息表price,主要描述了各趟列車不同類型的票價(jià)信息,其主鍵priceid與表orderpace的外鍵priceid關(guān)聯(lián),如表2-6所示。表2-6price表字段名字段類型說明備注priceidInt(20)價(jià)格編號(hào)PrimaryKettypeVchar(80)車票類型NotNulltrainidInt(20)列車編號(hào)NotNullPriceInt(60)價(jià)格NotNull消息表message,主要描述了用戶發(fā)布轉(zhuǎn)讓車票消息、求購車票消息等內(nèi)容,該表中設(shè)有一個(gè)外鍵customid,其關(guān)聯(lián)custom表的主鍵customid,消息發(fā)布界面要通過關(guān)聯(lián)的外鍵customid從custom表中讀出當(dāng)前登錄用戶的信息,如用戶姓名和聯(lián)系電話,如表2-7所示。表2-7message表字段名字段類型說明備注midInt(20)消息編號(hào)PrimaryKetmtitleVarchar(200)消息標(biāo)題NotNullmdetailVarchar(2000)消息內(nèi)容 NotNullcustomidInt(20)用戶編號(hào)ForeignKey第三章系統(tǒng)設(shè)計(jì)3.1功能劃分網(wǎng)上車票查詢預(yù)訂系統(tǒng)在前臺(tái)中擁有新用戶注冊(cè)、用戶登錄、車票預(yù)訂、車次查詢和用戶資料修改等功能;在后臺(tái)擁有對(duì)用戶信息、車次信息、站點(diǎn)信息、訂單信息和消息的管理。3.2層次模塊圖網(wǎng)上車票查詢預(yù)訂系統(tǒng)總體結(jié)構(gòu)圖主要介紹了網(wǎng)站的功能模塊劃分,詳細(xì)描述每一個(gè)模塊的子功能,用戶可以很快的了解網(wǎng)站的模塊功能。下面描述了網(wǎng)上車票查詢預(yù)訂系統(tǒng)前臺(tái)結(jié)構(gòu)圖如圖3-1所示,后臺(tái)結(jié)構(gòu)圖如圖3-2所示。圖3-1網(wǎng)上車票查詢預(yù)訂系統(tǒng)前臺(tái)總體結(jié)構(gòu)圖圖3-2網(wǎng)上車票查詢預(yù)訂系統(tǒng)后臺(tái)總體結(jié)構(gòu)圖3.3功能描述時(shí)序圖用來顯示對(duì)象之間的關(guān)系,并強(qiáng)調(diào)對(duì)象之間消息的時(shí)間順序,同時(shí)顯示對(duì)象之間的交互。以下分別描述了管理員時(shí)序圖如圖3-3所示,普通用戶時(shí)序圖如圖3-4所示。圖3-3管理員時(shí)序圖圖3-4普通用戶時(shí)序圖3.3功能分配1.車票預(yù)訂模塊車票預(yù)訂模塊屬于前臺(tái)模塊,包括車票預(yù)訂界面。車票預(yù)訂主要是為登錄本系統(tǒng)的普通用戶在車票預(yù)訂界面進(jìn)行車票的預(yù)訂操作,需要用戶填寫用戶姓名和選擇出發(fā)站和到點(diǎn)站,然后提交相應(yīng)的預(yù)訂信息。下面是車票預(yù)訂模塊結(jié)構(gòu)圖,如圖3-5所示。圖3-5車票預(yù)訂模塊結(jié)構(gòu)圖2.車次查詢模塊車次查詢模塊屬于前臺(tái)模塊,包括車次查詢界面。車次查詢主要是為了本系統(tǒng)的普通用戶提供一個(gè)查詢和獲得信息的平臺(tái),例如用戶想要查詢一趟列車始發(fā)站和終點(diǎn)站,又例新增列車線路,用戶可通過查看車次號(hào)對(duì)應(yīng)表找到所要獲得列車信息的車次號(hào),輸入車次號(hào)查詢新增列車的到站信息等。下面是車次查詢模塊結(jié)構(gòu)圖,如圖3-6所示。圖3-6車次查詢模塊結(jié)構(gòu)圖3.用戶注冊(cè)登錄模塊用戶注冊(cè)登錄模塊屬于前臺(tái)模塊,包括登錄界面、注冊(cè)界面。登錄窗口主要用來為已經(jīng)注冊(cè)的用戶提供登錄操作,登錄成功之后進(jìn)入系統(tǒng)的歡迎界面,即系統(tǒng)的首頁。新用戶注冊(cè)窗口主要用來為想要使用該系統(tǒng)的還未注冊(cè)的用戶,在這里可以進(jìn)行相關(guān)內(nèi)容填寫注冊(cè)成為普通用戶,然后登錄本系統(tǒng)進(jìn)行查詢、預(yù)訂等操作。下面是用戶注冊(cè)登錄模塊結(jié)構(gòu)圖,如圖3-7所示。圖3-7用戶注冊(cè)登錄結(jié)構(gòu)圖4.修改資料模塊修改資料模塊屬于前臺(tái)模塊,可以讓當(dāng)前登錄用戶修改其注冊(cè)信息。用戶在點(diǎn)擊“修改資料”后,可顯示當(dāng)前用戶資料信息供用戶執(zhí)行修改操作。下面是修改資料模塊結(jié)構(gòu)圖,如圖3-8所示。圖3-8修改資料模塊結(jié)構(gòu)圖5.用戶管理模塊用戶管理模塊屬于后臺(tái)模塊,包括用戶管理界面。用戶管理是由管理員身份登錄本系統(tǒng)后,在后臺(tái)系統(tǒng)界面中點(diǎn)擊進(jìn)入的,可顯示本系統(tǒng)所注冊(cè)使用的所有用戶的信息,如用戶的用戶名、密碼、電子信箱和電話,并且可以進(jìn)行添加和刪除用戶的操作。下面是用戶管理模塊結(jié)構(gòu)圖,如圖3-9所示。圖3-9用戶管理模塊結(jié)構(gòu)圖6.訂單管理模塊訂單管理模塊屬于后臺(tái)管理模塊,包括訂單管理界面。訂單管理模塊是由管理員身份登錄本系統(tǒng)后,在后臺(tái)系統(tǒng)界面中點(diǎn)擊進(jìn)入的,可顯示本系統(tǒng)數(shù)據(jù)庫訂單信息表orderpace中所有用戶下的訂單信息,如顧客姓名、出發(fā)站、到達(dá)站等,并且可進(jìn)行添加、修改和刪除訂單的操作,其中刪除操作包括刪除過期作廢的訂單、強(qiáng)制取消的訂單和已完成的訂單。下面是訂單管理模塊結(jié)構(gòu)圖,如圖3-10所示。圖3-10訂單管理模塊結(jié)構(gòu)圖7.站點(diǎn)管理模塊站點(diǎn)管理模塊屬于后臺(tái)管理模塊,包括站點(diǎn)管理界面。站點(diǎn)管理模塊是由管理員身份登錄本系統(tǒng)后,在后臺(tái)系統(tǒng)界面中點(diǎn)擊進(jìn)入的,可顯示本系統(tǒng)數(shù)據(jù)庫站點(diǎn)信息表point中所有站點(diǎn)的信息,如站點(diǎn)編號(hào)、站點(diǎn)名稱,并且可進(jìn)行添加、修改和刪除站點(diǎn)的操作,其中刪除操作包括刪除線路取締的站點(diǎn)和無列車經(jīng)過的站點(diǎn);修改操作包括變換線路的站點(diǎn)或更換名稱的站點(diǎn)。下面是站點(diǎn)管理模塊結(jié)構(gòu)圖,如圖3-11所示。圖3-11訂單管理模塊結(jié)構(gòu)圖8.車次管理模塊車次管理模塊屬于后臺(tái)管理模塊,包括車次管理界面。車次管理模塊是由管理員身份登錄本系統(tǒng)后,在后臺(tái)系統(tǒng)界面中點(diǎn)擊進(jìn)入的,可顯示本系統(tǒng)數(shù)據(jù)庫車次信息表train中所有列車的信息,如車次號(hào)、車次名稱、始發(fā)站和終點(diǎn)站等,并且可進(jìn)行添加、修改和刪除車次的操作,其中添加操作是為新增列車車次時(shí)能夠及時(shí)更新列車信息時(shí)準(zhǔn)備的,修改和刪除操作也是為了及時(shí)更新列車信息數(shù)據(jù)庫,以便更好地給用戶提供及時(shí)的列車車次信息。下面是車次管理模塊結(jié)構(gòu)圖,如圖3-12所示。圖3-12訂單管理模塊結(jié)構(gòu)圖9.消息管理模塊消息模塊屬于后臺(tái)管理模塊,包括消息管理界面。消息管理模塊是由管理員身份登錄本系統(tǒng)后,在后臺(tái)系統(tǒng)界面中點(diǎn)擊進(jìn)入的,可顯示本系統(tǒng)數(shù)據(jù)庫消息信息表message中所有消息的信息,如消息號(hào)、消息主題、消息內(nèi)容和客戶編號(hào)等,并且可進(jìn)行刪除消息的操作,其中刪除操作也是為了管理信息表中各條信息,以便及時(shí)刪除已過期的信息。下面是消息管理模塊結(jié)構(gòu)圖,如圖3-13所示。圖3-13消息管理模塊結(jié)構(gòu)圖第四章系統(tǒng)實(shí)現(xiàn)4.1運(yùn)行及實(shí)現(xiàn)4.1.1登錄注冊(cè)模塊在登錄注冊(cè)模塊中已經(jīng)注冊(cè)的用戶可以進(jìn)行登錄,沒有進(jìn)行注冊(cè)的可以進(jìn)行新用戶注冊(cè)操作。登錄界面如圖4-1所示。圖4-1login.jsp沒有填寫用戶名或密碼時(shí)窗口報(bào)錯(cuò),如圖4-2所示。圖4-2沒有填寫用戶名或密碼報(bào)錯(cuò)提示框用戶名或密碼不正確時(shí)進(jìn)入登錄失敗頁面,如圖4-3所示。圖4-3用戶名或密碼錯(cuò)誤時(shí)登錄失敗界面error.jsp通過點(diǎn)擊新用戶注冊(cè)可以進(jìn)入注冊(cè)界面,如圖4-4所示。圖4-4新用戶注冊(cè)界面register.html注冊(cè)成功則進(jìn)入注冊(cè)信息顯示頁面,如圖4-5所示。圖4-5新用戶注冊(cè)成功界面registersuccess.html4.1.2前臺(tái)首頁模塊登錄成功的首頁信息有簡(jiǎn)單的歡迎語和功能導(dǎo)航欄,簡(jiǎn)潔大方,給用戶舒適的感覺,能夠使用戶輕松愉快的運(yùn)用本系統(tǒng)的功能完成網(wǎng)上車票預(yù)訂與查詢操作。下面是前臺(tái)首頁的界面,如圖4-6所示。圖4-6前臺(tái)首頁index.html4.1.3車票預(yù)訂模塊車票預(yù)訂模塊主要是實(shí)現(xiàn)用戶在線完成車票的預(yù)訂。下面是前臺(tái)首頁的界面,如圖4-7所示。圖4-7車票預(yù)訂界面order.jsp預(yù)訂成功后會(huì)顯示預(yù)訂信息,如圖4-8所示。圖4-8車票預(yù)訂成功界面ordersuccess.jsp4.1.4車次查詢模塊車次查詢模塊是給用戶提供在線查詢列車信息和獲得車次信息的平臺(tái),使用戶能及時(shí)獲得最新的列車信息。下面是車次查詢的界面,如圖4-9所示。圖4-9車次查詢界面checicx.html輸入正確的車次號(hào)點(diǎn)擊提交后系統(tǒng)會(huì)顯示所查詢的車次的詳細(xì)信息,如圖4-10所示。圖4-10車次查詢成功界面checicxsuccess.html4.1.5修改資料模塊修改資料模塊使用戶能夠及時(shí)修改當(dāng)前登錄用戶信息,如修改用戶名、密碼、郵箱和聯(lián)系電話等。下面是修改資料的界面,如圖4-11所示。圖4-11修改資料界面gaiyonghu.jsp4.1.5用戶管理模塊用戶管理模塊是管理員登錄系統(tǒng)后臺(tái)進(jìn)入的模塊,可對(duì)本系統(tǒng)所有用戶進(jìn)行管理。下面是管理員登錄系統(tǒng)后臺(tái)界面,如圖4-12所示。圖4-12管理員登錄后臺(tái)界面Mindex.html管理員登錄系統(tǒng)后臺(tái)后點(diǎn)擊進(jìn)入用戶模塊界面,如圖4-13所示。圖4-13用戶管理界面Myonghu.jsp可進(jìn)行添加用戶和刪除用戶操作,如圖4-14和圖4-15所示。圖4-14添加用戶界面Mtianyonghu.jsp圖4-15刪除用戶界面Mshanyonghu.jsp4.1.6站點(diǎn)管理模塊站點(diǎn)管理模塊是管理員登錄系統(tǒng)后臺(tái)進(jìn)入的模塊,可對(duì)本系統(tǒng)數(shù)據(jù)庫表中的站點(diǎn)信息進(jìn)行管理。下面是站點(diǎn)管理界面,如圖4-16所示。圖4-16站點(diǎn)管理界面Mzhandian.jsp4.1.7車次管理模塊車次管理模塊是管理員登錄系統(tǒng)后臺(tái)點(diǎn)擊進(jìn)入的模塊,可對(duì)數(shù)據(jù)庫表中列車信息進(jìn)行顯示和修改等操作。下面是車次管理界面,如圖4-17所示。圖4-17車次管理界面Mcheci.jsp4.1.8訂單管理模塊 訂單管理模塊是管理員登錄系統(tǒng)后臺(tái)點(diǎn)擊進(jìn)入的模塊,可對(duì)數(shù)據(jù)庫表中訂單信息進(jìn)行刪除操作。下面是訂單管理的界面,如圖4-18所示。圖4-18訂單管理界面Mdingdan.jsp管理員可以對(duì)訂單信息進(jìn)行刪除操作,如圖4-19所示。圖4-19刪除訂單界面Mshandingdan.jsp4.1.9消息管理模塊消息管理模塊是管理員登錄系統(tǒng)后臺(tái)點(diǎn)擊進(jìn)入的模塊,可對(duì)數(shù)據(jù)庫表中消息進(jìn)行刪除操作。下面是消息管理的界面,如圖4-20所示。圖4-20消息管理界面Mxiaoxi.jsp4.2核心代碼1.ticket工程下util包中連接sql數(shù)據(jù)庫的JDBCUtil類。packageutil;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassJDBCUtil{ privatestaticConnectionconn; publicstaticConnectiongetConnection(){ try{ Class.forName("com.mysql.jdbc.Driver"); }catch(Exceptione){ } try{ conn=DriverManager.getConnection( "jdbc:mysql://localhost/ticket?useUnicode=true&characterEncoding=utf8","root","123"); }catch(SQLExceptione){ e.printStackTrace(); }finally{ } returnconn; }}2.ticket工程下Vo包中定義的屬性類。例如用戶屬性類。packageVo;publicclassCustomVo{ privateintcustomid; privateStringcustomname; privateStringcustompsw; privateStringcustommail; publicintgetLevel(){ returnlevel; } publicvoidsetLevel(intlevel){ this.level=level; } privateintlevel; privateStringphone; publicintgetCustomid(){ returncustomid; } publicvoidsetCustomid(intcustomid){ this.customid=customid; } publicStringgetCustomname(){ returncustomname; } publicvoidsetCustomname(Stringcustomname){ this.customname=customname; } publicStringgetCustompsw(){ returncustompsw; } publicvoidsetCustompsw(Stringcustompsw){ this.custompsw=custompsw; } publicStringgetCustommail(){ returncustommail; } publicvoidsetCustommail(Stringcustommail){ this.custommail=custommail; } publicStringgetPhone(){ returnphone; } publicvoidsetPhone(Stringphone){ this.phone=phone; }}3.ticket工程下servlet包中AddOrderServlet類、DeleteOrderServlet類、ListOrderServlet類、LoginServlet類、RegisterServlet類等。例如AddOrderServlet類packageservlet;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importVo.OrderVo;importdao.OrderDaoImpl;publicclassAddOrderServletextendsHttpServlet{ publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ Stringtrainstart=request.getParameter("select"); Stringtrainend=request.getParameter("select2"); Stringcustomname=request.getParameter("customname"); OrderVoc=newOrderVo(); OrderDaoImpluidi=newOrderDaoImpl(); c.setCustomname(customname); c.setTrainstart(trainstart); c.setTrainend(trainend); inti=uidi.insertOrderInfo(trainstart,trainend,customname); request.setAttribute("valuess",c); if(i!=-1){ request.getRequestDispatcher("ordersuccess.jsp").forward(request,response); }else{ request.getRequestDispatcher("ordererror.jsp").forward(request,response); } }}4.ticket工程下dao包中CustomDaoImpl類、OrderDaoImpl類、PointDaoImpl類和TrainDaoImpl類。例如CustomDaoImpl類packagedao;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importVo.CustomVo;importutil.JDBCUtil;publicclassCustomDaoImpl{ Connectionconn=JDBCUtil.getConnection(); Statementstmt; ResultSetrs; publicCustomVoqueryCustomInfo(Stringcustomname){ //TODOAuto-generatedmethodstub Stringsql="select*fromcustomwherecustomname='"+customname+"'"; try{ CustomVouiv=newCustomVo(); stmt=conn.createStatement(); rs=stmt.executeQuery(sql); if(rs.next()){ uiv.setCustomname(rs.getString("customname")); uiv.setCustompsw(rs.getString("custompsw")); uiv.setLevel(rs.getInt("level")); } stmt.close(); rs.close(); conn.close(); returnuiv; }catch(SQLExceptione){ e.printStackTrace(); } returnnull; } publicintinsertCustomInfo(Stringcustomname,Stringcustompsw,Stringcustommail,intlevel,Stringphone){ Stringsql="insertintocustom(customname,custompsw,custommail,level,phone)values('" +customname +"','" +custompsw +"','" +custommail +"','" +1 +"','" +phone+"')"; inti=-3; try{ stmt=conn.createStatement(); i=stmt.executeUpdate(sql); if(i==-1){ } }catch(SQLExceptione){ e.printStackTrace(); }finally{ try{ stmt.close(); conn.close(); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } returni; } publicList<CustomVo>findAll()throwsSQLException{ List<CustomVo>list=newArrayList<CustomVo>(); Stringsql="select*fromcustom"; PreparedStatementpst=conn.prepareStatement(sql); ResultSetrs=pst.executeQuery(); while(rs.next()){ CustomVop=newCustomVo(); p.setCustomid(rs.getInt("customid")); p.setCustomname(rs.getString("customname")); p.setCustommail(rs.getString("custommail")); p.setPhone(rs.getString("phone")); p.setLevel(rs.getInt("level")); list.add(p); } conn.close(); returnlist; } publicCustomVodeleteById(intcustomid)throwsSQLException{ Stringsql="deletefromcustomwherecustomid=?"; Connectionconn=JDBCUtil.getConnection(); PreparedStatementpst=conn.prepareStatement(sql); pst.setInt(1,customid); intaffectRows=pst.executeUpdate(); if(affectRows!=1) thrownewRuntimeException("customid為"+customid+"的記錄不存在,無法刪除"); conn.close(); returnnull; }}4.3設(shè)計(jì)過程中存在的問題及解決方法網(wǎng)上查詢預(yù)訂系統(tǒng)在設(shè)計(jì)過程中遇到了些許問題,有數(shù)據(jù)庫表關(guān)聯(lián)操作不熟悉、顯示數(shù)據(jù)庫表操作不熟悉。數(shù)據(jù)庫表關(guān)聯(lián)操作的問題在于起初對(duì)從其外鍵關(guān)聯(lián)的數(shù)據(jù)庫中讀取字段信息的操作不熟悉,導(dǎo)致最初的6張表都是相互獨(dú)立的,并且有很多重復(fù)的字段,不足以滿足系統(tǒng)所達(dá)到的功能要求,通過老師和同學(xué)的幫助最終解決了該問題,例如現(xiàn)在用戶預(yù)訂車票時(shí),選擇出發(fā)站、到達(dá)站和車票類型之后,點(diǎn)擊“預(yù)訂車票”,系統(tǒng)后臺(tái)會(huì)取得出發(fā)站、到達(dá)站和車票類型的值,從train表中由出發(fā)站和到達(dá)站查找返回trainid、trainname、starttime和endtime,然后利用trainid和車票類型再從price表

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論