論文-電影票在線預(yù)訂系統(tǒng)_第1頁(yè)
論文-電影票在線預(yù)訂系統(tǒng)_第2頁(yè)
論文-電影票在線預(yù)訂系統(tǒng)_第3頁(yè)
論文-電影票在線預(yù)訂系統(tǒng)_第4頁(yè)
論文-電影票在線預(yù)訂系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

XX大學(xué)XX學(xué)院電影票在線預(yù)訂系統(tǒng)所在學(xué)院班級(jí)姓名學(xué)號(hào)指導(dǎo)教師起止時(shí)間XXXX年XX月XX日摘要國(guó)民經(jīng)濟(jì)快速發(fā)展,人們對(duì)生活的要求越來(lái)越高,娛樂(lè)方式越來(lái)越多樣化,對(duì)服務(wù)的快捷、便利性要求也越來(lái)越高,從而他們對(duì)電影院行業(yè)的建設(shè)與管理提出了更高的要求。由于電影數(shù)量與電影種類不斷增加,電影事業(yè)不斷發(fā)展,中心影城的管理難度也越來(lái)越大。然而傳統(tǒng)的售票方式存在著很多方面的不足,比如實(shí)時(shí)差、交易時(shí)間過(guò)長(zhǎng)、運(yùn)營(yíng)成本高、信息不共享等。為適應(yīng)和推動(dòng)電影行業(yè)的發(fā)展,各電影院公司和部門(mén)開(kāi)始廣泛采用計(jì)算機(jī)管理系統(tǒng),推出網(wǎng)上電影票售票服務(wù),大大減輕了訂票、售票、檢票、調(diào)度、票款管理等部門(mén)工作人員的勞動(dòng)強(qiáng)度,提高了各部門(mén)的工作效率,而且能夠在很大程度上減少顧客排隊(duì)購(gòu)票的時(shí)間和由此而帶給顧客的疲勞,為廣大顧客提供了更加快捷、優(yōu)質(zhì)、有序的服務(wù),提高了中心影城的服務(wù)水平,也逐步樹(shù)立了企業(yè)形象。本畢業(yè)設(shè)計(jì)的內(nèi)容是一個(gè)基于web技術(shù)的電影票在線預(yù)訂系統(tǒng)的設(shè)計(jì)并與實(shí)現(xiàn),因而系統(tǒng)主要開(kāi)發(fā)基礎(chǔ)是j2EE,主要結(jié)合使用了spring+struts2+hibernate等多種框架,用myeclipse作為開(kāi)發(fā)工具,數(shù)據(jù)庫(kù)為MYSQL,界面美化工具是Macromedia公司的Dreamweaver,使用JAVA語(yǔ)言開(kāi)發(fā),開(kāi)發(fā)技術(shù)頁(yè)面采取JSP動(dòng)態(tài)頁(yè)面。該系統(tǒng)界面簡(jiǎn)單、操作方便,容易維護(hù)。關(guān)鍵詞:電影票在線預(yù)訂系統(tǒng),JAVA,S.S.H(Struts,Hibernate,Spring),JSP

ABSTRACTTherapiddevelopmentofthenationaleconomy,people'slifeoftheincreasinglyhighdemand,entertainmentmoreandmorediverse,servicefast,convenientrequirementsarealsogettinghigherandhigher,whichputforwardhigherrequirementstothecinemaindustryconstructionandmanagement.Becausethemovieandmoviecategoryincreasescontinuously,thefilmindustrycontinuestodevelop,thecentercitymanagementhasbecomeincreasinglydifficult.However,thetraditionalticketingsystemexistmanyproblems,suchastime,thetransactiontimeistoolong,highoperatingcost,informationisnotshared.Inordertoadaptandpromotethedevelopmentofthefilmindustry,thecompanyandtheDepartmentofcinemabeganextensiveuseofcomputermanagementsystem,theintroductionofonlinemovieticketservice,greatlyreducingthelaborintensity,ticketbooking,ticketfare,scheduling,managementdepartmentstaff,improvetheworkefficiencyofeachdepartment,andcanlargelyreducethecustomerqueuingpurchasetimeandthustobringcustomersthefatigue,toprovideamoreefficient,high-quality,orderedserviceforthevastnumberofcustomers,improvethelevelofServiceCenterStudios,andgraduallyestablishacorporateimage.Thecontentsofthisgraduationprojectistodesignandimplementawebbasedonbookingmovieticketsofwebtechnology,thissystemmainlyusesj2EEasthebasisofdevelopment,themainuseofthecombineduseofstruts2+spring+hibernateandotherframeworks,MyEclipseasadevelopmenttool,MYSQLasdatabase,withMacromedia'sDreamweaverastheinterfacelandscapingtools,theuseofJAVAlanguagedevelopment,takethedevelopmenttechnologyofJSPdynamicwebpage.Thesystemhasasimpleinterface,easyoperation,easymaintenance.Keywords:Themovieticketsbookingsite,Struts,Hibernate,Spring,JAVA,JSP

目錄摘要 IABSTRACT II1緒論 11緒論 12系統(tǒng)開(kāi)發(fā)的環(huán)境及技術(shù) 22.1系統(tǒng)開(kāi)發(fā)環(huán)境 22.1.1MyEclipse 22.1.2數(shù)據(jù)庫(kù) 22.1.3Tomcat 32.2系統(tǒng)開(kāi)發(fā)的思想與技術(shù) 32.2.1MVC模式與JSP技術(shù)以及系統(tǒng)的基本框架 32.2.2S.S.H框架的優(yōu)點(diǎn) 43系統(tǒng)總體設(shè)計(jì) 63.1總體的功能模塊 63.2系統(tǒng)管理員的功能模塊 73.3用戶功能模塊 83.4統(tǒng)業(yè)務(wù)的描述 93.5程序的流程圖 94系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 124.1系統(tǒng)和數(shù)據(jù)庫(kù)配置 124.2概念模型的設(shè)計(jì) 124.3數(shù)據(jù)庫(kù)邏輯的模型 124.4數(shù)據(jù)庫(kù)表的結(jié)構(gòu) 134.5平臺(tái)數(shù)據(jù)表設(shè)計(jì) 145系統(tǒng)功能實(shí)現(xiàn) 195.1程序的類圖 195.1.1訂單Order類圖 195.1.2放映廳Fangyingting類圖 205.1.3影訊Yingxun類圖 215.1.4用戶User類圖 225.1.5座位Zuowei類圖 235.2程序的時(shí)序圖 255.2.1訂單模塊的時(shí)序圖 255.2.2放映廳模塊的時(shí)序圖 265.2.3影訊模塊的時(shí)序圖 275.2.4用戶模塊的時(shí)序圖 285.3系統(tǒng)功能實(shí)現(xiàn)的主要框架 285.3.1SSH框架 285.3.2hibernate配置文件 285.3.3struts配置文件 305.3.4spring配置文件 315.4系統(tǒng)功能實(shí)現(xiàn)的主要模塊 325.4.1登陸頁(yè)面 325.4.2用戶注冊(cè)頁(yè)面 335.4.3網(wǎng)站主頁(yè)面 356系統(tǒng)的調(diào)試與測(cè)試 376.1測(cè)試的目的 376.2測(cè)試的任務(wù) 376.3軟件測(cè)試環(huán)境 376.4環(huán)境的配置 386.4.1創(chuàng)建并安裝項(xiàng)目 386.4.2添加項(xiàng)目輸出 396.4.3運(yùn)行項(xiàng)目 41結(jié)束語(yǔ) 42致謝 43參考文獻(xiàn) 441緒論1緒論目前,國(guó)內(nèi)的各級(jí)電影院的規(guī)模和數(shù)量都在擴(kuò)大,國(guó)外的很多電影院也紛紛著陸中國(guó),這些電影院之間的競(jìng)爭(zhēng)可謂越來(lái)越激烈。電影院配備一個(gè)可靠、完全、高效、靈活的客戶訂票系統(tǒng)對(duì)于加強(qiáng)對(duì)顧客服務(wù)質(zhì)量,提高對(duì)顧客服務(wù)水平,提高工作效率,維護(hù)公眾形象必將發(fā)揮非常重要的積極作用。對(duì)與影院來(lái)講,訂票系統(tǒng)既能減少營(yíng)業(yè)費(fèi)用,擴(kuò)大服務(wù)范圍,擴(kuò)大影院影響,又對(duì)加強(qiáng)穩(wěn)定電影院最重要的顧客有著非常重要的積極作用;處在來(lái)觀影的顧客的角度,電影院提供的這樣的服務(wù)提供了非常多的方便,享受影院提供的服務(wù)并且不受空間時(shí)間地限制。為了工作效率的提高,憑借數(shù)字化的計(jì)算機(jī)技術(shù)處理信息,網(wǎng)絡(luò)資源能夠合理的利用,用戶對(duì)于電影票價(jià)及放映時(shí)間的了解可以快速的反映出來(lái),而且可以應(yīng)對(duì)用戶的不同需求,電影城的管理人員可以通過(guò)會(huì)員管理功能,第一時(shí)間提供迅速,準(zhǔn)確,精細(xì)的服務(wù)。人力、物力資源因而大大的節(jié)省了,不但為影城創(chuàng)造了非常好的經(jīng)濟(jì)效益,同時(shí)也提供了一個(gè)快捷方便的購(gòu)票平臺(tái)為廣大顧客。經(jīng)濟(jì)的快速發(fā)展,使人們生活水平越來(lái)越高,對(duì)互聯(lián)網(wǎng)服務(wù)的使用也越來(lái)越多。因而對(duì)電影行業(yè)的管理與建設(shè)有了更高的要求。為適應(yīng)和推動(dòng)電影行業(yè)的快速發(fā)展,計(jì)算機(jī)管理系統(tǒng)已經(jīng)開(kāi)始廣泛采用于各電影院公司和部門(mén),增加了電影的網(wǎng)上預(yù)定服務(wù),電影院工作人員訂票、售票、檢票、調(diào)度、票款的勞動(dòng)強(qiáng)度大大減輕了,各部門(mén)的工作效率提高了,并且顧客的排隊(duì)購(gòu)票的時(shí)間和因此給顧客帶來(lái)的疲勞能在很大程度上減少,為廣大顧客提供了更加有序、快捷、優(yōu)質(zhì)的服務(wù),中心影城的服務(wù)水平提高了,企業(yè)形象也逐步樹(shù)立了起來(lái)。然而傳統(tǒng)的售票方式很多方面存在著不足,比如信息部共享、實(shí)時(shí)差、交易時(shí)間過(guò)長(zhǎng)、運(yùn)營(yíng)成本高等等。依據(jù)這種現(xiàn)實(shí)需求,設(shè)計(jì)并制作一個(gè)影院在線預(yù)定系統(tǒng)便成為了一件非常有意義的工作。相對(duì)于傳統(tǒng)管理模式影院在線預(yù)定網(wǎng)站對(duì)影院進(jìn)行管理有不可比擬的優(yōu)點(diǎn),它憑借其應(yīng)用簡(jiǎn)便、信息更新速度快、信息存儲(chǔ)量大、安全性高等特點(diǎn)為影城的管理帶來(lái)了非常大的方便,起到了越來(lái)越重要的作用。因而,越來(lái)越多的影院全都想進(jìn)行網(wǎng)上售票交易利用動(dòng)態(tài)電子商務(wù)的各種優(yōu)越性,以至于影院工作人員大量繁瑣的售票工作減少了,避免了人們趕到電影院卻發(fā)現(xiàn)票已告罄的情形,排隊(duì)買(mǎi)票的時(shí)間也縮短了。

2系統(tǒng)的開(kāi)發(fā)環(huán)境及技術(shù)簡(jiǎn)介2.1系統(tǒng)開(kāi)發(fā)環(huán)境2.1.1MyEclipse在本平臺(tái)的開(kāi)發(fā)中所用到的開(kāi)發(fā)工具就是MyEclipse——知名的java項(xiàng)目開(kāi)發(fā)工具。MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipseEnterpriseWorkbench,簡(jiǎn)稱MyEclipse)是對(duì)EclipseIDE的一種擴(kuò)展,利用MyEclipse,我們可以在數(shù)據(jù)庫(kù)和J2EE的開(kāi)發(fā)、發(fā)布,以及極大地提高系統(tǒng)的工作效率在應(yīng)用程序服務(wù)器的整合當(dāng)中。MyEclipse是一個(gè)功能非常豐富的J2EE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布的功能,完整支持HTML,Struts,JSP,CSS,JavaScript,SQL,Hibernate。結(jié)構(gòu)上,MyEclipse的特點(diǎn)可以被分為7類:EJB開(kāi)發(fā)工具,J2EE模型,WEB開(kāi)發(fā)工具,應(yīng)用程序服務(wù)器的連接器,MyEclipse整合幫助,J2EE項(xiàng)目部署服務(wù),數(shù)據(jù)庫(kù)服務(wù)。對(duì)于以上每種不同功能上的類別,相應(yīng)的功能部件在Eclipse中都有,并通過(guò)一些的插件從而實(shí)現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們?cè)谄渌K不受影響的情況下,單獨(dú)的擴(kuò)展和升級(jí)任一模塊。簡(jiǎn)而言之,MyEclipse是Eclipse的插件,同樣是一款功能非常強(qiáng)大的J2EE集成開(kāi)發(fā)環(huán)境,支持各種代碼的編寫(xiě)、配置、測(cè)試與除錯(cuò)。2.1.2數(shù)據(jù)庫(kù)簡(jiǎn)介數(shù)據(jù)庫(kù)使用的是MySQL開(kāi)源數(shù)據(jù)庫(kù)。MySQL的特性:使用C和C++編寫(xiě),并使用了多種編譯器進(jìn)行測(cè)試,保證源代碼的可移植性。支持AIX、FreeBSD、HP-UX、MacOS、OpenBSD、OS/2Wrap、Solaris、Windows等多種操作系統(tǒng)。為多種編程語(yǔ)言提供API。這些編程語(yǔ)言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。支持多線程充分利用CPU資源。優(yōu)化的SQL查詢算法,有效地提高查詢速度。既能夠作為一個(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個(gè)庫(kù)而嵌入到其他的軟件中提供多語(yǔ)言支持,常見(jiàn)的編碼如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫(kù)連接途徑。提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫(kù)操作的管理工具??梢蕴幚?yè)碛猩锨f(wàn)條記錄的大型數(shù)據(jù)庫(kù)。MySQL的應(yīng)用:與其他的大型數(shù)據(jù)庫(kù)例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQLCluster的功能和效率都相對(duì)比較差)等,但是這絲毫也沒(méi)有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來(lái)說(shuō),MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開(kāi)放源碼軟件,因此可以大大降低總體成本。2.1.3TomcatTomcat很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開(kāi)發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。Tomcat是一個(gè)輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache服務(wù)器,可利用它響應(yīng)對(duì)HTML頁(yè)面的訪問(wèn)請(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頁(yè)面服務(wù),而Tomcat實(shí)際上運(yùn)行JSP頁(yè)面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。2.2系統(tǒng)開(kāi)發(fā)的思想與技術(shù)2.2.1JSP技術(shù)與MVC模式以及系統(tǒng)的基本框架本系統(tǒng)采用jsp技術(shù),基于MVC模式開(kāi)發(fā),使用SSH框架(struts2、spring、hibernate)來(lái)增加系統(tǒng)的開(kāi)發(fā)速度。所謂的MVC模式是"Model-View-Controller"的縮寫(xiě),中文翻譯為"模式-視圖-控制器"。程序就是用struts2和hibernate這兩個(gè)框架來(lái)實(shí)現(xiàn)模型層和控制器這兩層,jsp實(shí)現(xiàn)視圖這一層。一般來(lái)說(shuō)程序就是在數(shù)據(jù)庫(kù)和頁(yè)面之間起橋梁作用的,jsp頁(yè)面請(qǐng)求先到action,再到dao,再回到action,回到j(luò)sp頁(yè)面,action主要處理來(lái)自頁(yè)面的請(qǐng)求,dao主要是和數(shù)據(jù)庫(kù)的交互,struts2主要用在action,處理來(lái)自頁(yè)面的請(qǐng)求,處理完請(qǐng)求后跳轉(zhuǎn)回頁(yè)面。Hibernate主要用在dao,包括對(duì)數(shù)據(jù)庫(kù)的增、刪、改、查的操作,spring控制程序的流程。2.2.2S.S.H框架的優(yōu)點(diǎn)S.S.H框架是J2EE應(yīng)用中struts2+spring+hibernate三大免費(fèi)開(kāi)源框架的結(jié)合使用,它可以看成工具,也是中間件。他是用來(lái)提高我們的開(kāi)發(fā)效率,提高我們軟件產(chǎn)品的可維護(hù)性、可擴(kuò)展性乃至敏捷性的。他們里面有很多優(yōu)秀的設(shè)計(jì)理念及模式應(yīng)用。比如,struts屬于MVC框架,關(guān)鍵是要了解MVC的概念及大致原理;而hibernate屬于ORM系統(tǒng),屬于持久層的解決方案,同樣需要對(duì)ORM的概念及原理有一個(gè)總體的了解。而spring屬于應(yīng)用程序框架,其核心是IOC容器以及AOP,Spring中還集成了很多適用東西,比如對(duì)JDBC的封裝、自己的MVC、對(duì)動(dòng)態(tài)語(yǔ)言的簡(jiǎn)潔訪問(wèn)等,它由以下3個(gè)框架構(gòu)成:1.Struts2框架Struts2是Apache組織的一個(gè)開(kāi)放源碼項(xiàng)目。Struts2是一個(gè)比較好的MVC框架,提供了對(duì)開(kāi)發(fā)MVC系統(tǒng)的底層支持,它采用的主要技術(shù)是Servlet,JSP和Customtaglibrary。其基本構(gòu)成如圖2.1所示。 圖2.1Struts框架工作流程2.Spring框架Spring的核心是個(gè)輕量級(jí)(Lightweight)的容器(Container),它是實(shí)現(xiàn)IoC(InversionofControl)容器、非侵入性(Nointrusive)的框架,并提供AOP(Aspect-orientedprogramming)概念的實(shí)現(xiàn)方式,提供對(duì)持久層(Persistence)、事務(wù)(Transaction)的支持,提供MVCWeb框架的實(shí)現(xiàn),并對(duì)一些常用的企業(yè)服務(wù)API(ApplicationInterface)提供一致的模型封裝,是一個(gè)全方位的應(yīng)用程序框架(Applicationframework),除此之外,對(duì)于現(xiàn)存的各種框架(Struts、JSF、Hibernate等),Spring也提供了與它們相整合的方案。Spring框架由以下7個(gè)部分組成圖2.2Spring框架構(gòu)成3.Hibernate框架Hibernate是一個(gè)開(kāi)放源碼的ORM持久層框架。作為優(yōu)秀的持久層框架實(shí)現(xiàn),Hibernate框架提供了強(qiáng)大、高性能的對(duì)象到關(guān)系型數(shù)據(jù)庫(kù)的持久化服務(wù),開(kāi)發(fā)人員可以使用面向?qū)ο蟮脑O(shè)計(jì)進(jìn)行持久層開(kāi)發(fā)。簡(jiǎn)單的說(shuō),Hibernate只是一個(gè)將持久化類與數(shù)據(jù)庫(kù)表相映射的工具,每個(gè)持久化類實(shí)例均對(duì)應(yīng)于數(shù)據(jù)庫(kù)表中的一個(gè)數(shù)據(jù)行而已。用戶只需直接使用面向?qū)ο蟮姆椒ú僮鞔顺志没悓?shí)例,即可完成對(duì)數(shù)據(jù)庫(kù)表數(shù)據(jù)的插入、刪除、修改、讀取等操作。圖2.3Hibernate框架

3系統(tǒng)總體設(shè)計(jì)3.1總體功能模塊本程序主要分系統(tǒng)管理員,用戶兩個(gè)權(quán)限??偣δ軋D如圖3-1所示。圖3-1.系統(tǒng)功能需求分析3.2系統(tǒng)管理員功能模塊系統(tǒng)管理員的主要功能常規(guī)管理(包括放映廳管理,影訊管理)、經(jīng)營(yíng)管理(包括售票管理,訂單管理)、注冊(cè)用戶管理。系統(tǒng)管理員功能圖如下所示:圖3-2.系統(tǒng)管理員功能圖3.3用戶的功能模塊用戶的主要功能有注冊(cè)登錄功能、瀏覽影訊、購(gòu)票選座位管理、我的訂單管理。用戶的功能圖如圖3-3所示圖3-3.用戶的功能圖3.4統(tǒng)業(yè)務(wù)描述本程序主要分系統(tǒng)管理員,用戶兩個(gè)權(quán)限。系統(tǒng)管理員的主要功能常規(guī)管理(包括放映廳管理,影訊管理)、經(jīng)營(yíng)管理(包括售票管理,訂單管理)、注冊(cè)用戶管理;用戶的主要功能有注冊(cè)登錄功能、瀏覽影訊、購(gòu)票選座位管理、我的訂單管理。用例圖如下:圖3-43.5程序流程圖訂票流程圖用戶登錄流程圖用戶注冊(cè)流程圖4系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1系統(tǒng)和數(shù)據(jù)庫(kù)的配置系統(tǒng)按通用的B/S(瀏覽器、服務(wù)器)模式進(jìn)行設(shè)計(jì)(如圖4-1)數(shù)據(jù)庫(kù)在一個(gè)信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的好壞將直接對(duì)應(yīng)用系統(tǒng)的效率,以及實(shí)現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)存儲(chǔ)的效率,保證數(shù)據(jù)的完整和一致。4.2概念模型設(shè)計(jì)概念模型設(shè)計(jì)的典型方法是用E-R圖方法,即用實(shí)體-聯(lián)系模型表示。E-R方法是用E-R圖來(lái)描述顯示世界,E-R圖包含三個(gè)基本成分:實(shí)體、聯(lián)系、屬性。它直觀易懂,能夠比較準(zhǔn)確地反映現(xiàn)實(shí)世界的信息聯(lián)系,從概念上表示一個(gè)數(shù)據(jù)庫(kù)的信息組織情況。本系統(tǒng)E-R圖如下4.3數(shù)據(jù)庫(kù)邏輯模型訂單表(主鍵、下單時(shí)間、價(jià)格、訂單號(hào)、電話、真實(shí)姓名、狀態(tài)、關(guān)聯(lián)的用戶ID、關(guān)聯(lián)的座位ID)放映廳表(主鍵是否刪除標(biāo)志、行、列、放映廳名字、座位數(shù))影訊表(主鍵、添加時(shí)間、導(dǎo)演、是否刪除標(biāo)志放映時(shí)間、發(fā)行公司、劇情、片名、票價(jià)、時(shí)長(zhǎng)、圖片、語(yǔ)言、主演、關(guān)聯(lián)的放映廳ID、剩余票數(shù))用戶表(主鍵、添加時(shí)間、鎖定狀態(tài)、聯(lián)系電話、密碼、用戶權(quán)限、真實(shí)姓名、用戶名)座位表(主鍵、是否刪除標(biāo)志、排、座、座位信息、關(guān)聯(lián)的影訊ID))4.4數(shù)據(jù)庫(kù)表結(jié)構(gòu)訂單表名稱類型空備注idint(11)no主鍵createtimedatetimeyes下單時(shí)間jiazongvarchar(255)yes價(jià)格orderedvarchar(255)yes訂單號(hào)phonevarchar(255)yes電話truenamevarchar(255)yes真實(shí)姓名zhuangtaivarchar(255)yes狀態(tài)useridint(11)yes關(guān)聯(lián)的用戶IDzuoweiidint(11)yes關(guān)聯(lián)座位ID放映廳表名稱類型空備注idint(11)no主鍵deletestatusint(11)no是否刪除標(biāo)志hangint(11)no行l(wèi)ieint(11)no列namevarchar(255)yes放映廳名字zuoweishuint(11)no座位數(shù)影訊表名稱類型空備注idint(11)no主鍵createtimedatetimeyes添加時(shí)間daoyanvarchar(255)yes導(dǎo)演deletestatusint(11)no是否刪除標(biāo)志fangyingshijianvarchar(255)yes放映時(shí)間gongsivarchar(255)yes發(fā)行公司juqingvarchar(255)yes劇情pianmingvarchar(255)yes片名piaojiavarchar(255)yes票價(jià)shichangvarchar(255)yes時(shí)長(zhǎng)tupianvarchar(255)yes圖片yuyanvarchar(255)yes語(yǔ)言zhuyanvarchar(255)yes主演fangyingtiangidint(11)yes關(guān)聯(lián)的放映廳IDshengyuint(11)no剩余票數(shù)4、用戶表名稱類型空備注idint(11)no主鍵createtimedatetimeyes添加時(shí)間deletestatusint(11)no鎖定狀態(tài)lianxifangshivarchar(255)yes聯(lián)系電話passwordvarchar(255)yes密碼roleint(11)no用戶權(quán)限truenamevarchar(255)yes真實(shí)姓名usernamevarchar(255)yes用戶名座位表名稱類型空備注idint(11)no主鍵deletestatusint(11)no是否刪除標(biāo)志paiint(11)no排zhuangtaivarchar(255)yes狀態(tài)zuoint(11)no座zuoweivarchar(255)yes座位信息yingxunidint(11)yes關(guān)聯(lián)的影訊ID4.5平臺(tái)數(shù)據(jù)表的設(shè)計(jì)根據(jù)平臺(tái)的需求分析和功能模塊的劃分,因此系統(tǒng)的定義數(shù)據(jù)庫(kù)主要包含5張表:訂單表t_order,放映廳表t_fangyingting,影訊表t_yingxun,用戶表t_user,座位表t_zuowei。訂單表t_order建表的sql語(yǔ)句為:CREATETABLE`t_order`(`id`int(11)NOTNULLauto_increment,`createtime`datetimedefaultNULL,`jiazong`varchar(255)defaultNULL,`orderid`varchar(255)defaultNULL,`phone`varchar(255)defaultNULL,`truename`varchar(255)defaultNULL,`zhuangtai`varchar(255)defaultNULL,`userid`int(11)defaultNULL,`zuoweiid`int(11)defaultNULL,PRIMARYKEY(`id`),KEY`FK9EFDD3A3774E5A41`(`zuoweiid`),KEY`FK9EFDD3A32EDD2249`(`userid`),CONSTRAINT`FK9EFDD3A32EDD2249`FOREIGNKEY(`userid`)REFERENCES`t_user`(`id`),CONSTRAINT`FK9EFDD3A3774E5A41`FOREIGNKEY(`zuoweiid`)REFERENCES`t_zuowei`(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;放映廳表t_fangyingting建表的sql語(yǔ)句為:CREATETABLE`t_fangyingting`(`id`int(11)NOTNULLauto_increment,`deletestatus`int(11)NOTNULL,`hang`int(11)NOTNULL,`lie`int(11)NOTNULL,`name`varchar(255)defaultNULL,`zuoweishu`int(11)NOTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;影訊表t_yingxun建表的sql語(yǔ)句為:CREATETABLE`t_yingxun`(`id`int(11)NOTNULLauto_increment,`createtime`datetimedefaultNULL,`daoyan`varchar(255)defaultNULL,`deletestatus`int(11)NOTNULL,`fangyingshijian`varchar(255)defaultNULL,`gongsi`varchar(255)defaultNULL,`juqing`varchar(255)defaultNULL,`pianming`varchar(255)defaultNULL,`piaojia`varchar(255)defaultNULL,`shengyu`int(11)NOTNULL,`shichang`varchar(255)defaultNULL,`tupian`varchar(255)defaultNULL,`yuyan`varchar(255)defaultNULL,`zhuyan`varchar(255)defaultNULL,`fangyingtingid`int(11)defaultNULL,PRIMARYKEY(`id`),KEY`FKD90822BDF92CB089`(`fangyingtingid`),CONSTRAINT`FKD90822BDF92CB089`FOREIGNKEY(`fangyingtingid`)REFERENCES`t_fangyingting`(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;用戶表t_user建表的sql語(yǔ)句為:CREATETABLE`t_user`(`id`int(11)NOTNULLauto_increment,`createtime`datetimedefaultNULL,`deletestatus`int(11)NOTNULL,`lianxifangshi`varchar(255)defaultNULL,`password`varchar(255)defaultNULL,`role`int(11)NOTNULL,`truename`varchar(255)defaultNULL,`username`varchar(255)defaultNULL,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;座位表t_zuowei建表的sql語(yǔ)句為:CREATETABLE`t_zuowei`(`id`int(11)NOTNULLauto_increment,`deletestatus`int(11)NOTNULL,`pai`int(11)NOTNULL,`zhuangtai`varchar(255)defaultNULL,`zuo`int(11)NOTNULL,`zuowei`varchar(255)defaultNULL,`yingxunid`int(11)defaultNULL,PRIMARYKEY(`id`),KEY`FK53B1789267126F13`(`yingxunid`),CONSTRAINT`FK53B1789267126F13`FOREIGNKEY(`yingxunid`)REFERENCES`t_yingxun`(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;5系統(tǒng)功能實(shí)現(xiàn)5.1程序的類圖5.1.1訂單Order類圖對(duì)應(yīng)的程序代碼:publicclassOrder{ @Id @GeneratedValue privateintid;//主鍵 privateStringorderid;//訂單號(hào) @ManyToOne @JoinColumn(name="zuoweiid") privateZuoweizuowei;//座位 @ManyToOne @JoinColumn(name="userid") privateUseruser; privateStringtruename;//姓名 privateStringphone;//電話 privateStringjiazong;//價(jià)格 privateDatecreatetime;//下單時(shí)間 privateStringzhuangtai;//訂單狀態(tài)5.1.2放映廳Fangyingting類圖對(duì)應(yīng)的程序代碼:publicclassFangyingting{ @Id @GeneratedValue privateintid; privateintdeletestatus;//是否刪除的狀態(tài),0表示未刪除,1表示刪除 privateStringname;//放映廳名字 privateintzuoweishu;//座位數(shù) privateinthang;//行 privateintlie;//列 5.1.3影訊Yingxun類圖對(duì)應(yīng)的程序代碼:publicclassYingxun{ @Id @GeneratedValue privateintid; privateintdeletestatus;//是否刪除的狀態(tài),0表示未刪除,1表示刪除 privateStringpianming;//片名 privateStringpiaojia;//票價(jià) privateStringshichang;//時(shí)長(zhǎng) privateStringgongsi;//公司 privateStringyuyan;//語(yǔ)言 privateStringdaoyan;//導(dǎo)演 privateStringzhuyan;//主演 privateStringjuqing;//劇情 privateStringtupian;//圖片 privateStringfangyingshijian;//放映時(shí)間 @ManyToOne @JoinColumn(name="fangyingtingid") privateFangyingtingfangyingting; privateDatecreatetime; privateintshengyu;//剩余票數(shù)5.1.4用戶User類圖對(duì)應(yīng)的代碼:publicclassUser{ @Id @GeneratedValue privateintid; privateintdeletestatus;//是否刪除的狀態(tài),0表示未刪除,1表示刪除 privateStringusername; privateStringpassword; privateDatecreatetime; privateintrole;//1表示管理員,0表示用戶 privateStringtruename; privateStringlianxifangshi;//聯(lián)系方式5.1.5座位Zuowei類圖對(duì)應(yīng)的代碼:publicclassZuowei{ @Id @GeneratedValue privateintid; @ManyToOne @JoinColumn(name="yingxunid") privateYingxunyingxun; privateStringzuowei;//座位信息 privateStringzhuangtai;//訂購(gòu)狀態(tài)空座已訂座 privateintdeletestatus;//是否刪除的狀態(tài),0表示未刪除,1表示刪除 privateintpai;//排 privateintzuo;//座5.2程序的時(shí)序圖5.2.1訂單模塊時(shí)序圖5.2.2放映廳模塊時(shí)序圖5.2.3影訊模塊時(shí)序圖5.2.4用戶模塊時(shí)序圖5.3系統(tǒng)功能實(shí)現(xiàn)的主要框架5.3.1SSH框架SSH框架就是struts2,spring,hibernate的簡(jiǎn)稱,運(yùn)用3個(gè)框架的集成協(xié)作使用,可以有效的提高代碼編寫(xiě)的效率,從而有效的降低程序開(kāi)發(fā)的周期。5.3.2hibernate配置文件<hibernate-configuration> <session-factory> <!--Databaseconnectionsettings--> <propertyname="proxool.pool_alias">DBPool</property> <propertyname="proxool.xml">proxool.xml</property> <propertyname="vider_class"> org.hibernate.connection.ProxoolConnectionProvider </property> <!--EchoallexecutedSQLtostdout--> <propertyname="show_sql">true</property><propertyname="format_sql">true</property> <propertyname="dialect">org.hibernate.dialect.MySQLDialect</property> <!--EnableHibernate'sautomaticsessioncontextmanagement--><propertyname="current_session_context_class">thread</property> <propertyname="hibernate.hbm2ddl.auto">update</property> <mappingclass="dianying.model.User"/> <mappingclass="dianying.model.Yingxun"/> <mappingclass="dianying.model.Fangyingting"/> <mappingclass="dianying.model.Zuowei"/> <mappingclass="dianying.model.Order"/> </session-factory></hibernate-configuration>這是Hibernate的配置文件,在該文件中<propertyname="proxool.xml">proxool.xml</property>首先加載了連接池的一個(gè)配置,就是加載了數(shù)據(jù)庫(kù)的連接信息,<propertyname="show_sql">true</property><propertyname="format_sql">true</property>表示控制臺(tái)打印SQL語(yǔ)句,并格式化SQL語(yǔ)句<propertyname="dialect">org.hibernate.dialect.MySQLDialect</property>表示當(dāng)前數(shù)據(jù)庫(kù)的語(yǔ)言是MYSQL<mappingclass="dianying.model.User"/> <mappingclass="dianying.model.Yingxun"/> <mappingclass="dianying.model.Fangyingting"/> <mappingclass="dianying.model.Zuowei"/> <mappingclass="dianying.model.Order"/>都表示當(dāng)前數(shù)據(jù)庫(kù)建立起來(lái)的表和試題類之間的映射關(guān)系,比如<mappingclass="dianying.model.User"/>表示User類和t_user表之間的建立起來(lái)的對(duì)應(yīng)關(guān)系,其他也都類似5.3.3struts配置文件<struts> <constantname="struts.objectFactory"value="spring"/> <constantname="struts.i18n.encoding"value="UTF-8"/> <packagename="index"namespace="/"extends="struts-default"> <actionname="index"method="index"class="indexAction"> <resultname="success">index.jsp</result> </action> <actionname="method"class="manageAction"> <resulttype="dispatcher">${url}</result> <resultname="redirect"type="redirect">${url}</result> </action> <actionname="indexmethod"class="indexAction"> <resulttype="dispatcher">${url}</result> <resultname="redirect"type="redirect">${url}</result> </action></package> </struts>這是struts的配置文件,該文件的作用主要起到來(lái)自JSP的請(qǐng)求的跳轉(zhuǎn)分配的作用.該struts配置文件是個(gè)總的配置文件。5.3.4spring配置文件Spring在本項(xiàng)目中主要用到了IOC的功能,就是把對(duì)象實(shí)例化<beanid="userDao"class="dianying.dao.impl.UserDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="yingxunDao"class="dianying.dao.impl.YingxunDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="fangyingtingDao"class="dianying.dao.impl.FangyingtingDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="zuoweiDao"class="dianying.dao.impl.ZuoweiDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="orderDao"class="dianying.dao.impl.OrderDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean>本段代碼是把DAO實(shí)例化的代碼,通過(guò)spring的IOC模式<beanid="manageAction"class="dianying.action.ManageAction"scope="prototype"> <propertyname="userDao"><refbean="userDao"/></property> <propertyname="yingxunDao"><refbean="yingxunDao"/></property> <propertyname="fangyingtingDao"><refbean="fangyingtingDao"/></property> <propertyname="zuoweiDao"><refbean="zuoweiDao"/></property> <propertyname="orderDao"><refbean="orderDao"/></property> </bean> <beanid="indexAction"class="dianying.action.IndexAction"> <propertyname="yingxunDao"><refbean="yingxunDao"/></property> <propertyname="userDao"><refbean="userDao"/></property> <propertyname="zuoweiDao"><refbean="zuoweiDao"/></property> <propertyname="orderDao"><refbean="orderDao"/></property> </bean> 本段代碼是把ManageAction,和IndexAction實(shí)例化的代碼,原理也是spring的IOC模式。5.4系統(tǒng)功能實(shí)現(xiàn)的主要模塊5.4.1登陸頁(yè)面登陸代碼://用戶登錄操作 publicvoidlogin()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); Userbean=userDao.selectBean("wheredeletestatus=0andusername='" +username+"'andpassword='"+password+"'"); if(bean!=null){ HttpSessionsession=request.getSession(); session.setAttribute("user",bean); response.setCharacterEncoding("gbk");response.setContentType("text/html;charset=gbk"); PrintWriterwriter=response.getWriter(); writer .print("<scriptlanguage='javascript'>alert('登錄成功!');window.location.href='index';</script>"); }else{ response.setCharacterEncoding("gbk");response.setContentType("text/html;charset=gbk"); PrintWriterwriter=response.getWriter(); writer .print("<scriptlanguage='javascript'>alert('用戶名或者密碼錯(cuò)誤!登錄失敗');window.location.href='index';</script>"); } }本段代碼是程序的登陸代碼,首先從獲取從頁(yè)面輸入的用戶名和密碼還有用戶的登陸角色,然后調(diào)用userDao.selectBean方法,從數(shù)據(jù)庫(kù)里取出該條記錄進(jìn)行判斷,如果該條記錄存在,則說(shuō)明用戶登陸成功,同時(shí)把用戶信息存在session里面方便調(diào)用,如果記錄為空,則跳轉(zhuǎn)到登陸頁(yè)面,同時(shí)提醒用戶錯(cuò)誤信息。5.4.2用戶注冊(cè)注冊(cè)代碼://用戶注冊(cè)操作 publicvoidregister()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); Stringphone=request.getParameter("phone"); Stringtruename=request.getParameter("truename"); Userbean=userDao.selectBean("wheredeletestatus=0andusername='" +username+"'"); if(bean==null){ bean=newUser(); bean.setCreatetime(newDate()); bean.setLianxifangshi(phone); bean.setPassword(password); bean.setTruename(truename); bean.setUsername(username); userDao.insertBean(bean); response.setCharacterEncoding("gbk");response.setContentType("text/html;charset=gbk"); PrintWriterwriter=response.getWriter(); writer .print("<scriptlanguage='javascript'>alert('注冊(cè)成功');window.location.href='index';</script>"); }else{ response.setCharacterEncoding("gbk");response.setContentType("text/html;charset=gbk"); PrintWriterwriter=response.getWriter(); writer .print("<scriptlanguage='javascript'>alert('用戶名已經(jīng)存在,注冊(cè)失?。?);window.location.href='register.jsp';</script>"); } }本段代碼是程序的注冊(cè)代碼,首先從獲取從頁(yè)面獲取注冊(cè)的信息,同時(shí)新建一個(gè)User對(duì)象,把從頁(yè)面獲取的信息都寫(xiě)在USER對(duì)象里面。同時(shí)在插入到數(shù)據(jù)庫(kù)之前先調(diào)用userDao.selectBean("whereusername='"+username+"'anduserlock=0");方法,驗(yàn)證下該用戶名在數(shù)據(jù)庫(kù)中是否存在,如果不存在,則調(diào)用userDao.insertBean(bean);方法,把該條記錄寫(xiě)入數(shù)據(jù)庫(kù),如果該條記錄存在,則返回到注冊(cè)頁(yè)面,同時(shí)提醒用戶該用戶已經(jīng)注冊(cè),請(qǐng)不要重復(fù)注冊(cè)。5.4.3網(wǎng)站主頁(yè)面代碼://網(wǎng)站首頁(yè) publicStringindex(){ HttpServletRequestrequest=ServletActionContext.getRequest(); Util.init(request); Stringpianming=request.getParameter("pianming"); StringBuffersb=newStringBuffer(); sb.append("where"); if(pianming!=null&&!"".equals(pianming)){ sb.append("pianminglike'%"+pianming+"%'"); sb.append("and"); request.setAttribute("pianming",pianming); } Stringt1=Util.getTime(); sb.append("fangyingshijian>'"+t1+"'anddeletestatus=0orderbyiddesc"); //sb.append("deletestatus=0orderbyiddesc"); Stringwhere=sb.toString(); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } inttotal=yingxunDao.selectBeanCount(where.replaceAll("orderbyiddesc","")); List<Yingxun>list=yingxunDao

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論