




已閱讀5頁(yè),還剩41頁(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)介
畢業(yè)設(shè)計(jì)(論文)題目公交查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)院別軟件工程學(xué)院專業(yè)網(wǎng)絡(luò)技術(shù)班級(jí)網(wǎng)絡(luò)11日期2014/2/20畢業(yè)設(shè)計(jì)(論文)任務(wù)書軟件工程學(xué)院2014屆網(wǎng)絡(luò)專業(yè)畢業(yè)設(shè)計(jì)(論文)任務(wù)書畢業(yè)設(shè)計(jì)(論文)題目公交查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)校內(nèi)(外)指導(dǎo)教師職稱工作單位及部門聯(lián)系方式副教授網(wǎng)絡(luò)教研室一、題目說(shuō)明(目的和意義)公交查詢系統(tǒng)主要用于對(duì)公共乘車線路的查詢和選擇,為人們的出行提供方便,無(wú)論是財(cái)力還是人力都有很大的節(jié)省,更重要的是大大節(jié)約了人們的行車時(shí)間,有效減少了人們因乘車而遲到、誤點(diǎn)的問(wèn)題。面對(duì)如今城市化的飛速發(fā)展,公交線路的不斷密集,一個(gè)有效的公交查詢系統(tǒng)對(duì)人們的出行起著重要的作用。系統(tǒng)主要使用ECLIPSE開(kāi)發(fā)環(huán)境,后臺(tái)采用SQLSERVER2005數(shù)據(jù)庫(kù)為開(kāi)發(fā)平臺(tái)來(lái)實(shí)現(xiàn),主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前臺(tái)應(yīng)用程序的開(kāi)發(fā)兩個(gè)方面,主要實(shí)現(xiàn)站點(diǎn)查詢、站站查詢、線路查詢和用戶留言等功能。二、設(shè)計(jì)(論文)要求(環(huán)境、內(nèi)容)【設(shè)計(jì)內(nèi)容】前臺(tái)客戶端(1)公交線路查詢模塊(2)公交站點(diǎn)查詢模塊(3)公交換乘查詢模塊(4)系統(tǒng)信息/使用說(shuō)明模塊(5)留言版模塊(6)相關(guān)查詢鏈接模塊后臺(tái)管理端(1)快速通道模塊系統(tǒng)信息、添加管理員、添加公交線路、系統(tǒng)幫助(2)公交信息管理模塊添加公交線路、公交線路列表、修改安全密碼、修改信息資料(3)留言版管理模塊留言列表【設(shè)計(jì)步驟】1對(duì)公交查詢系統(tǒng)進(jìn)行操作可行性、經(jīng)濟(jì)可行性及功能可行性的研究。2對(duì)系統(tǒng)進(jìn)行需求性分析、系統(tǒng)功能分析、系統(tǒng)功能模塊設(shè)計(jì)。3系統(tǒng)概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)。4數(shù)據(jù)庫(kù)設(shè)計(jì)。5測(cè)試、調(diào)試系統(tǒng)并運(yùn)行。實(shí)現(xiàn)系統(tǒng)的各個(gè)功能。6管理員對(duì)系統(tǒng)進(jìn)行添加、刪除、修改等操作;用戶注冊(cè)、登錄系統(tǒng)查詢所需要的信息。【注意事項(xiàng)】1畢業(yè)設(shè)計(jì)的時(shí)間安排根據(jù)時(shí)間表,最后一周,檢查程序、交畢業(yè)設(shè)計(jì)論文;交畢業(yè)設(shè)計(jì)系統(tǒng)POWERPOINT電子顯示文稿;畢業(yè)設(shè)計(jì)論文要求有封面(封面上寫明班級(jí)、姓名、指導(dǎo)教師、時(shí)間等),并裝訂成冊(cè)。2指導(dǎo)老師打分方案畢業(yè)設(shè)計(jì)成績(jī)考勤30論文40技術(shù)實(shí)現(xiàn)30。3每周考勤一次,有特殊情況需向指導(dǎo)教師或班主任老師請(qǐng)假。4具體論文上交時(shí)間,論文答辯時(shí)間以系辦通知為準(zhǔn)。三、進(jìn)度表日期內(nèi)容第15周第16周第17周第18周第19周第20周課題調(diào)研、文獻(xiàn)檢索根據(jù)需求分析,提出總體設(shè)計(jì)方案依據(jù)選定的總體設(shè)計(jì)方案,構(gòu)建詳細(xì)設(shè)計(jì)方案細(xì)化詳細(xì)設(shè)計(jì)方案,編寫各模塊代碼對(duì)軟件進(jìn)行測(cè)試,修改定型整理各階段的設(shè)計(jì)記錄文檔,撰寫畢業(yè)論文完成日期2014年1月12日答辯日期2014年2月底四、主要參考文獻(xiàn)、資料、設(shè)備和實(shí)習(xí)地點(diǎn)及翻譯工作量設(shè)備網(wǎng)絡(luò)、網(wǎng)絡(luò)實(shí)驗(yàn)室所有網(wǎng)絡(luò)資源,包括網(wǎng)絡(luò)設(shè)備、工作站、網(wǎng)絡(luò)軟件等。實(shí)習(xí)地點(diǎn)網(wǎng)絡(luò)、網(wǎng)絡(luò)實(shí)驗(yàn)室,和學(xué)生自己考察的外部地點(diǎn)相結(jié)合。翻譯工作量對(duì)論文標(biāo)題、關(guān)鍵字、摘要進(jìn)行英文翻譯。參考文獻(xiàn)1計(jì)算機(jī)網(wǎng)絡(luò)(4版)M謝希仁,電子工業(yè)出版社,北京,2004年7月2JSP網(wǎng)絡(luò)編程技術(shù)與實(shí)踐李建剛秦興橋鄭雨貝清華大學(xué)出版社3揭秘J2EE項(xiàng)目開(kāi)發(fā)的70個(gè)問(wèn)題孟劼蘇威人民郵電大學(xué)出版社4數(shù)據(jù)庫(kù)系統(tǒng)概論(第三版)薩師煊王姍高等教育出版社注本任務(wù)書要求一式兩份,一份系部留存,一份報(bào)教務(wù)處實(shí)踐教學(xué)科。摘要隨著INTERNET的快速發(fā)展,互聯(lián)網(wǎng)已成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,顯然它已成為社會(huì)生活的一部分。但我國(guó)的城市公交信息查詢卻還處于比較落后的水平上,廣大的市民獲取路線信息方式也比較少,最常用的方式只局限在詢問(wèn)和交通地圖上。而城市公交查詢系統(tǒng)就是使人們能夠在因特網(wǎng)上方便、簡(jiǎn)單的查詢出各條路線,了解自己所經(jīng)過(guò)的每個(gè)站點(diǎn)等信息,以便能更好的制定自己的行動(dòng)計(jì)劃而設(shè)計(jì)的。它主要實(shí)現(xiàn)的模塊是公交信息的查詢模塊,其中包括的功能有線路查詢、站點(diǎn)查詢、站站查詢、車站查詢;而系統(tǒng)管理模塊主要實(shí)現(xiàn)的是對(duì)各個(gè)數(shù)據(jù)表進(jìn)行添加、編輯、刪除等功能操作。城市公交查詢系統(tǒng)開(kāi)發(fā)技術(shù)采用的是基于JAVA的B/S架構(gòu),它選用HIBERNATE,SPRING,STRUTS為主要的編程框架,后臺(tái)選用了JAVA編程語(yǔ)言。用JAVA編程的最大好處在于跨越平臺(tái),可以應(yīng)用于WINDOWS和LINUX操作系統(tǒng)。數(shù)據(jù)庫(kù)選用的是MYSQL,而應(yīng)用程序通過(guò)HIBERNATE與MYSQL數(shù)據(jù)庫(kù)建立鏈接,并且運(yùn)用SQL語(yǔ)言實(shí)現(xiàn)對(duì)其數(shù)據(jù)庫(kù)進(jìn)行操作。在此系統(tǒng)中,大量采用了存儲(chǔ)過(guò)程和查詢語(yǔ)句來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,同時(shí)也涉及到查詢的算法。關(guān)鍵詞互聯(lián)網(wǎng);JAVA;SSH;面向?qū)ο笤O(shè)計(jì)方法ABSTRACTWITHTHERAPIDDEVELOPMENTOFINTERNET,THEINTERNETHASBECOMEANIMPORTANTCHANNELOFPEOPLEACQUIRING,PUBLISHINGANDTRANSMITTINGINFORMATIONANDOBVIOUSLYBECOMEONEPARTOFSOCIALLIFEBUTCHINASTECHNOLOGYOFURBANPUBLICTRANSPORTINFORMATIONINQUIRYISSTILLINARELATIVELYBACKWARDLEVELTHENUMEROUSCITIZENSHAVEALITTLEACCESSTOACQUIRETHEINFORMATIONABOUTBUSLINESTHEMOSTCOMMONWAYSARECONFINEDTOTRAFFICMAPSORTHEREFERENCETOSTRANGERANDTHEURBANPUBLICTRANSPORTSYSTEMISDESIGNEDFORPEOPLETOINQUIREOFALLLINESINTHEINTERNETCONVENIENTLYANDSIMPLYANDGETTOKNOWEVERYSITETHATTHEYPASSEDAWAYINORDERTOMAKETHEIRPLANSMOREEFFICIENTLYTHEMAINMODULEOFTHISSYSTEMISTHEBUSINFORMATIONQUERYMODULEITSFUNCTIONSINCLUDELINEINQUIRY,SITEINQUIRY,STATIONTOSTATIONINQUIRYANDSTATIONINQUIRYTHESYSTEMMANAGEMENTMODULEMAINLYREALIZESTHEFUNCTIONALOPERATIONONADDING,EDITING,DELETINGOFALLDATATABLESANDRESPONSESTOTHEMESSAGECORRESPONDINGLYTHEDEVELOPMENTTECHNOLOGYOFTHECITYBUSINQUIRYSYSTEMADOPTB/SFRAMEWORKBASEDONJAVAITSFRONTENDPARTUSESJSPASTHEMAJORFRAMEWORKTHEJSPFILECONTAINSHTMLTEXTANDCONTROLSWHICHMAKEUPOFUSERINTERFACETHEBACKENDCHOOSESJAVAASITSPROGRAMMINGLANGUAGETHEGREATESTBENEFITOFCHOOSINGJAVATOPROGRAMMINGISTHEEASYTOCROSSANYPLATFORMDATABASEUSESTHESQLSERVER2000,ANDTHEAPPLICATIONACCESSESTHEDATABASEBYHIBERNATEANDUSESSQLLANGUAGETOOPERATETHEDATABASETHESTOREDPROCEDUREISUSEDALOTTOOPERATETHEDATABASEINTHESYSTEMKEYWORDSINTERNETJAVASSHOBJECTORIENTEDDESIGNMETHODS目錄摘要IABSTRACTII1緒論111城市公交查詢系統(tǒng)的前景112城市公交查詢系統(tǒng)的作用12公交查詢系統(tǒng)開(kāi)發(fā)方案321表現(xiàn)層技術(shù)JSP322MVC框架的使用323SPRING框架424HIBERNATE的作用425MYSQL43城市公交車查詢系統(tǒng)總體設(shè)計(jì)531需求分析532總體設(shè)計(jì)5321系統(tǒng)功能描述5322系統(tǒng)功能模塊劃分5323系統(tǒng)流程設(shè)計(jì)6324系統(tǒng)ER圖94數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)與實(shí)現(xiàn)1141數(shù)據(jù)庫(kù)的需求分析1142數(shù)據(jù)庫(kù)表的創(chuàng)建115系統(tǒng)的詳細(xì)設(shè)計(jì)1351數(shù)據(jù)庫(kù)1352HIBERNATE持久層13521設(shè)計(jì)持久化對(duì)象(PO)13522創(chuàng)建持久化類13523映射持久化類1353DAO層的實(shí)現(xiàn)15531DAO組件的定義16532DAO組件的實(shí)現(xiàn)18533部署DAO層2554實(shí)現(xiàn)SERVICE層3055實(shí)現(xiàn)WEB層30551登陸模塊30552管理模塊34553查詢模塊356結(jié)論3761工作總結(jié)3762工作展望37致謝38參考文獻(xiàn)391緒論當(dāng)今是一個(gè)以網(wǎng)絡(luò)為中心的信息化世界,計(jì)算機(jī)已成為廣大市民不可缺少的工具。由于我國(guó)城市化進(jìn)程的推進(jìn),目前城市不斷地在向郊區(qū)延伸,邊緣不斷擴(kuò)大,和郊區(qū)的邊界甚至開(kāi)始變得模糊化,城市公交路線不斷地增多,加之眾多公交路線時(shí)常調(diào)整,目前眾多市民,特別是一些大中型城市的市民,對(duì)各條公交路線的信息不清楚或掌握得不準(zhǔn)確。并且當(dāng)今各大城市的家庭轎車相繼增多,使城市交通出現(xiàn)擁堵現(xiàn)象。而公共交通與其它交通方式相比具有人均占用道路少、能源消耗低、運(yùn)輸成本低、污染相對(duì)較小、客運(yùn)量大,運(yùn)送效率高等優(yōu)點(diǎn),它是解決大、中城市交通擁堵等交通問(wèn)題,所以各大城市都在積極地發(fā)展公共交通的運(yùn)用。本畢業(yè)設(shè)計(jì)主要的目的就是實(shí)現(xiàn)公交查詢以及信息發(fā)布。本設(shè)計(jì)的預(yù)期成果是此系統(tǒng)能夠使用戶簡(jiǎn)單的查詢出他們自己想要的車次經(jīng)過(guò)哪些站點(diǎn),在哪一站可以轉(zhuǎn)乘,然后繼續(xù)換乘哪路車;也可以預(yù)先知道可以通過(guò)哪些車次可以到達(dá)目的地。11城市公交查詢系統(tǒng)的前景近十幾年來(lái),我國(guó)汽車工業(yè)蓬勃發(fā)展,特別是家用轎車的增長(zhǎng)。發(fā)展中國(guó)家用轎車市場(chǎng),其規(guī)模與速度必須與城市基礎(chǔ)建設(shè)同步,如果一味追求發(fā)展速度,勢(shì)必將造成很多大城市嚴(yán)重的交通堵塞問(wèn)題,而且還將給社會(huì)帶來(lái)一系列不良后果,如加大社會(huì)經(jīng)濟(jì)成本,增加能源消耗,惡化城市空氣,增加交通事故等等。因此,在發(fā)展我國(guó)的汽車工業(yè)的同時(shí)要注意到城市公共交通存在的意義和作用,加大國(guó)家在公共交通方面的投入,全面規(guī)劃、統(tǒng)籌安排、合理配置、科學(xué)管理,使城市道路流暢、方便、安全、有效、可靠。然而,隨著公共交通的快速發(fā)展,會(huì)逐漸地出現(xiàn)越來(lái)越多的公共汽車和不同的公交路線,這樣會(huì)使人們對(duì)各條公交路線的信息掌握的不是很清楚。而城市公交查詢系統(tǒng)主要任務(wù)就在于對(duì)各條路線的信息查詢,和對(duì)整個(gè)公交線路信息進(jìn)行相關(guān)的管理。使用公交查詢系統(tǒng)人們就可以找出一條最適合于自己的線路,減少不必要的坐車時(shí)間。所以城市公交查詢系統(tǒng)的前景非常樂(lè)觀。基于城市公交查詢系統(tǒng)與傳統(tǒng)的城市公交查詢系統(tǒng)有相似又有區(qū)別。相似之處在于系統(tǒng)的核心都是B/S架構(gòu)。B/S架構(gòu)是不需要專門的操作環(huán)境,在任何地方,只要能上網(wǎng),就能夠操作系統(tǒng)。不同之處在于實(shí)現(xiàn)的語(yǔ)言不同,傳統(tǒng)的一般用的語(yǔ)言是ASP它的腳本語(yǔ)言,是不面向?qū)ο蟮?,而基于本設(shè)計(jì)的城市公交查詢系統(tǒng)用的語(yǔ)言是JAVA,是面向?qū)ο蟮?,面向?qū)ο蟮木幊陶Z(yǔ)言最大的特色就是可以編寫自己所需的數(shù)據(jù)類型。同時(shí)JAVA語(yǔ)言編寫的系統(tǒng)可以跨平臺(tái),在任何操作環(huán)境下都可以運(yùn)行。對(duì)于傳統(tǒng)的城市公交查詢系統(tǒng)他易于管理,重用性比較高。12城市公交查詢系統(tǒng)的作用首先有條理地、清晰地呈現(xiàn)出城市各條線路信息。不管城市擴(kuò)展得有多大,城市公交路線增加的有多少,人們都可以通過(guò)城市公交查詢系統(tǒng)來(lái)獲得各條公交路線的詳細(xì)信息。其次節(jié)省時(shí)間。在日益激烈地競(jìng)爭(zhēng)環(huán)境中,時(shí)間可以說(shuō)是人們最大的資本。城市公交查詢系統(tǒng)可以為廣大的市民指出一條最適合于他們自己的公交線路,減少不必要的多做車的情況,從而節(jié)省出更多的寶貴時(shí)間計(jì)劃他們自己的事。最后消除城郊市民和外來(lái)人的不安。初到一個(gè)陌生的環(huán)境,特別是一個(gè)大城市中,許多人都會(huì)感到局促不安。城市公交查詢系統(tǒng)可以使人們了解這個(gè)城市的一些基本情況,也可以使人們能夠準(zhǔn)確地到達(dá)他們自己想要去的地方,減少不必要的坐錯(cuò)車的情況。2公交查詢系統(tǒng)開(kāi)發(fā)方案時(shí)至今日,JAVAEE平臺(tái)在企業(yè)開(kāi)發(fā)中目前占據(jù)這絕對(duì)的優(yōu)勢(shì),JAVAEE應(yīng)用以其性能穩(wěn)定、良好的開(kāi)放性及嚴(yán)格的安全性,同時(shí)能夠跨越操作平臺(tái),不受系統(tǒng)平臺(tái)的限制,這成為大多商家和企業(yè)WEB開(kāi)發(fā)的首選。2006年,SUN提出JAVAEE的概念,與之同步出現(xiàn)了兩個(gè)主要的規(guī)范JSF12和EJB30。但其應(yīng)用不如SSH(STRUTSSPRINGHIBERNATE)組合廣泛,SSH組合是一種輕量級(jí)的JAVAEE平臺(tái),具有高度的實(shí)用性、可擴(kuò)展性和可維護(hù)性。本系統(tǒng)將基于STRUTS21、SPRING25和HIBERNATE32三個(gè)開(kāi)源框架(簡(jiǎn)稱SSH),同時(shí)還使用JSP作為表現(xiàn)層技術(shù)。這樣將三大框架和表現(xiàn)層緊密的結(jié)合起來(lái),使系統(tǒng)的基本功能得到基本的實(shí)現(xiàn)。三大框架(SSH)采用的事分層的思想,并為每個(gè)層次提供一個(gè)整合框架以供支持,從而隔離各層次間的依賴性,便于系統(tǒng)的擴(kuò)充。軟件架構(gòu)從總體分成6個(gè)邏輯層,自頂向下依次是視圖層、控制器層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)對(duì)象層、領(lǐng)域?qū)ο髮雍蛿?shù)據(jù)源層??蚣芙Y(jié)構(gòu)如圖21所示。21表現(xiàn)層技術(shù)JSP此系統(tǒng)使用JSP技術(shù)作為表現(xiàn)層,主要是負(fù)責(zé)收集用戶的所有請(qǐng)求數(shù)據(jù),和業(yè)務(wù)數(shù)據(jù)的表示。JSP是傳統(tǒng)的有效的表現(xiàn)層技術(shù)??梢詫?duì)系統(tǒng)的請(qǐng)求數(shù)據(jù)進(jìn)行動(dòng)態(tài)的表示,此系統(tǒng)的JSP頁(yè)面僅限于表現(xiàn)層,并未結(jié)合JAVA腳本進(jìn)行頁(yè)面功能的強(qiáng)化。結(jié)合STRUTS21的表現(xiàn)層標(biāo)簽,JSP可完成全部的表現(xiàn)層功能數(shù)據(jù)收集、數(shù)據(jù)表示和輸入數(shù)據(jù)校驗(yàn)。22MVC框架的使用本系統(tǒng)使用STRUTS21作為MVC框架。STRUTS21以STRUTS1X和WEBWORK為基礎(chǔ)。本應(yīng)用的所有用戶請(qǐng)求,不以傳統(tǒng)方式直接發(fā)送到表現(xiàn)層JSP頁(yè)面,而是先發(fā)送給STRUTS21的ACTION,并由STRUTS21控制所有請(qǐng)求的處理和轉(zhuǎn)發(fā)。通過(guò)STRUTS21攔截請(qǐng)求的優(yōu)勢(shì)將所有的JSP頁(yè)面放入WEBINF路徑下,從而避免用戶直接訪問(wèn)JSP頁(yè)面,從而提高系統(tǒng)的安全性。用戶界面負(fù)責(zé)業(yè)務(wù)數(shù)據(jù)收集呈現(xiàn)系統(tǒng)狀態(tài)MVC框架控制器負(fù)責(zé)用戶請(qǐng)求和業(yè)務(wù)邏輯組件的交互業(yè)務(wù)邏輯層負(fù)責(zé)實(shí)現(xiàn)系統(tǒng)的業(yè)務(wù)邏輯功能DAO層通過(guò)操作領(lǐng)域?qū)ο髞?lái)操作持久層數(shù)據(jù)領(lǐng)域?qū)ο筇幱贖IBERNATESESSION管理之下,映射到對(duì)應(yīng)數(shù)據(jù)表SPRING容器數(shù)據(jù)持久化服務(wù)負(fù)責(zé)持久化保存應(yīng)用狀態(tài)視圖層(JSP)控制器層(STRUTS)業(yè)務(wù)邏輯層數(shù)據(jù)訪問(wèn)對(duì)象層領(lǐng)域?qū)ο髮訑?shù)據(jù)庫(kù)層(MYSQL)圖21系統(tǒng)框架結(jié)圖23SPRING框架SPRING框架是系統(tǒng)的核心,SPRING提供的IOC容器是業(yè)務(wù)邏輯組件和DAO組件的工廠,它負(fù)責(zé)生產(chǎn)和管理這些實(shí)例。由SPRING依賴注入,各個(gè)組件之間低耦合性的方式組合在一起,各個(gè)組件之間的依賴是通過(guò)SPRING的依賴注入管理。SERVICE組件和DAO組件采用的是面向接口編程的方式,降低了系統(tǒng)重構(gòu)的成本,從而提高了系統(tǒng)的可維護(hù)性、可修改性。本系統(tǒng)所有的DAO組件都繼承HIBERNATEDAOSUPPORT基類,基于SPRING的IOC容器和DAO支持,不需要管理HIBERNATE的SESSIONFACTORY等對(duì)象,直接使用SPRING提供的HIBERNATETEMPLATE即可完成數(shù)據(jù)庫(kù)操作。應(yīng)用事務(wù)采用SPRING的聲明式事務(wù)框架。通過(guò)聲明式事務(wù),事務(wù)策略以硬編碼的方式無(wú)須再將代碼耦合在一起,而是放在配置文件中聲明,使業(yè)務(wù)邏輯組件可以更加專注于業(yè)務(wù)的實(shí)現(xiàn),從而簡(jiǎn)化開(kāi)發(fā)。同時(shí)也降低了不同事務(wù)策略的切換風(fēng)險(xiǎn)。24HIBERNATE的作用HIBERNATE框架的使用,簡(jiǎn)化了數(shù)據(jù)庫(kù)的訪問(wèn),在JDBC層上提供了更好的封裝,使數(shù)據(jù)更具有封裝性,提高了數(shù)據(jù)的安全性。以面向?qū)ο蟮姆绞讲僮鲾?shù)據(jù)庫(kù),更加符合面向?qū)ο蟪绦蛟O(shè)計(jì)的思路。HIBERNATE以靈活的方式操作數(shù)據(jù)庫(kù),無(wú)需再編寫繁瑣的SQL語(yǔ)句,執(zhí)行冗長(zhǎng)的多表查詢,而是通過(guò)對(duì)象與對(duì)象之間的關(guān)聯(lián)來(lái)操作數(shù)據(jù)庫(kù),支持實(shí)現(xiàn)DAO的功能。25MYSQLMYSQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MYSQLAB公司開(kāi)發(fā),目前屬于ORACLE公司。MYSQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。MYSQL所使用的SQL語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MYSQL軟件采用了雙授權(quán)政策(本詞條“授權(quán)政策”),它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型網(wǎng)站的開(kāi)發(fā)都選擇MYSQL作為網(wǎng)站數(shù)據(jù)庫(kù)。由于其社區(qū)版的性能卓越,搭配PHP和APACHE可組成良好的開(kāi)發(fā)環(huán)境。3城市公交車查詢系統(tǒng)總體設(shè)計(jì)31需求分析在此系統(tǒng)中,用戶可以查詢城市中的各條路線或站點(diǎn),了解各條路線或站點(diǎn)的詳細(xì)信息。如果用戶要查詢某一條線路或站點(diǎn),直接就可以用該系統(tǒng)相對(duì)應(yīng)的功能。本系統(tǒng)滿足了以下幾個(gè)要求操作的簡(jiǎn)易性城市公交查詢系統(tǒng)使用起來(lái)簡(jiǎn)單、方便、界面友好,用戶操作起來(lái)得心應(yīng)手。系統(tǒng)功能在該系統(tǒng)中,主要提供了以下幾種功能查詢車站信息、車次信息、站點(diǎn)信息和站站信息功能,信息留言和系統(tǒng)管理功能。如在查詢功能中,用戶輸入要查詢的車次等信息即可得出與它相關(guān)的結(jié)果;在系統(tǒng)管理功能中,管理員可以對(duì)其信息進(jìn)行添加、修改、刪除和查找等操作。32總體設(shè)計(jì)321系統(tǒng)功能描述在用戶進(jìn)入主界面后,就可以通過(guò)路線查詢、站點(diǎn)查詢、站站查詢功能快速的查詢出自己想知道的路線圖,并且系統(tǒng)予以分析具體的到達(dá)方式,以便用戶精準(zhǔn)快速的到達(dá)目的地。當(dāng)管理員進(jìn)入系統(tǒng)后,可以對(duì)數(shù)據(jù)庫(kù)中的信息進(jìn)行添加、刪除和修改和查詢等操作。322系統(tǒng)功能模塊劃分在了解了系統(tǒng)的功能需求后,可以把該系統(tǒng)劃分為以下2個(gè)模塊用戶查詢模塊、和系統(tǒng)管理模塊如圖31。公交車查詢系統(tǒng)系統(tǒng)管理平臺(tái)用戶查詢平臺(tái)路線添加功能路線刪除路線信息修改路線查詢功能站點(diǎn)添加功能站點(diǎn)刪除功能站點(diǎn)信息修改該站點(diǎn)查詢功能路線查詢功能站點(diǎn)查詢功能站站查詢功能圖31城市公交查詢系統(tǒng)功能模塊下面對(duì)各個(gè)模塊進(jìn)行描述1、用戶查詢模塊在用戶查詢模塊中,主要是查詢出用戶自己所需要的線路信息,這也是整個(gè)系統(tǒng)最主要的功能模塊。主要包括1查詢路線信息輸入要查詢的路線進(jìn)行搜索,可以查詢出于它相應(yīng)的站點(diǎn)名稱。2查詢站點(diǎn)信息輸入要查詢的站點(diǎn)進(jìn)行搜索,可以查詢出經(jīng)過(guò)此站點(diǎn)的路線。3查詢站站信息輸入要查詢的起始站和終點(diǎn)站進(jìn)行搜索,可以查詢出于它相應(yīng)的乘車路線,同時(shí)系統(tǒng)予以匹配各個(gè)路線的經(jīng)過(guò)站點(diǎn)情況,篩選出最近路線。2、系統(tǒng)管理模塊在系統(tǒng)管理模塊中,主要是對(duì)數(shù)據(jù)庫(kù)中的各個(gè)表進(jìn)行管理。主要包括1管理員登錄。2站點(diǎn)、路線管理可以對(duì)站點(diǎn)、路線基本信息進(jìn)行添加、刪除、查詢和更改等操作。而且它們各自都含有一個(gè)搜索引擎,這樣可以快速的查詢出你想要修改的站點(diǎn)或路線等信息。323系統(tǒng)流程設(shè)計(jì)在城市公交查詢系統(tǒng)中,其核心內(nèi)容就是公交查詢的實(shí)現(xiàn)。在此系統(tǒng)中,即實(shí)現(xiàn)用戶查詢模塊中的各個(gè)功能信息。其中包括路線查詢、站點(diǎn)查詢、站站查詢功能。此系統(tǒng)中,用戶不需要注冊(cè)就可以直接進(jìn)行相關(guān)功能的查詢。1其中站站查詢是此系統(tǒng)中最重要的功能。流程如圖32所示。開(kāi)始查詢輸入起始站名稱輸入結(jié)束站點(diǎn)名稱系統(tǒng)查詢相關(guān)路線提示沒(méi)有相關(guān)路線是否有路線到達(dá)提取路線信息是否退出系統(tǒng)重新查詢圖32站站查詢功能流程圖2)按照站點(diǎn)查詢所經(jīng)過(guò)此站點(diǎn)的路線功能,如圖所示32所示輸入站點(diǎn)名稱查詢是否有經(jīng)過(guò)路線列出所有經(jīng)過(guò)的路線提示沒(méi)有經(jīng)過(guò)次站的路線是否退出系統(tǒng)是否重新查詢否是否繼續(xù)查詢否是是圖33按站點(diǎn)查詢功能流程圖2按照路線查詢功能如圖34所示輸入路線名稱查詢是否有此路線顯示此路線經(jīng)過(guò)站點(diǎn)提示沒(méi)有相關(guān)路線是否是否繼續(xù)查詢退出系統(tǒng)否是是圖34按路線查詢功能流程圖在查詢功能的同時(shí),系統(tǒng)管理員也可以進(jìn)行正常的系統(tǒng)維護(hù),從而適應(yīng)事務(wù)的正常改變,這包括系統(tǒng)對(duì)路線及站點(diǎn)的增加,刪除和更改。3管理員對(duì)站點(diǎn)信息的增加、刪除和修改功能圖35管理員登陸對(duì)站點(diǎn)維護(hù)操作內(nèi)容增加,刪除,修改添加需要增加的站點(diǎn)名輸入所需修改的站點(diǎn)名稱顯示所有站點(diǎn)增加修改刪除添加成功是否繼續(xù)對(duì)站點(diǎn)維護(hù)是修改站點(diǎn)信息修改完畢是否繼續(xù)維護(hù)是選擇需要?jiǎng)h除的站點(diǎn)刪除是否繼續(xù)維護(hù)是結(jié)束圖35站點(diǎn)維護(hù)功能流程圖4管理員對(duì)路線功能進(jìn)行維護(hù)如圖36對(duì)路線維護(hù)操作內(nèi)容增加,刪除,修改輸入添加路線名稱輸入所需修改該的路線名顯示全部路線增加修改刪除添加添加路線吃否存在添加路線經(jīng)過(guò)站點(diǎn)否管理員登陸提示所添加站點(diǎn)已經(jīng)存在重新添加路線添加成功是否繼續(xù)添加路線繼續(xù)添加是否對(duì)路線信息進(jìn)行修改否修改經(jīng)過(guò)站點(diǎn)信息重新添加所經(jīng)過(guò)站點(diǎn)添加成功是否繼續(xù)修維護(hù)繼續(xù)修改是否繼續(xù)修改路線信息否繼續(xù)修改選擇需要?jiǎng)h除的路線刪除刪除成功是否繼續(xù)刪除是否繼續(xù)維護(hù)退出系統(tǒng)否否否退出系統(tǒng)圖36路線維護(hù)流程圖324系統(tǒng)ER圖針對(duì)城市公交查詢系統(tǒng)的需求,設(shè)計(jì)如下面所示的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)(1)管理員基本信息(如圖37)包括管理員ID,管理員名,管理員秘碼。(3)路線基本信息(如圖38)包括路線ID,路線名稱(4)站點(diǎn)基本信息(如圖39)包括站點(diǎn)ID,站點(diǎn)名(5)站點(diǎn)路線信息(如圖310)包括站點(diǎn)路線ID,站點(diǎn)名,路線名,站點(diǎn)在路線中的位置。管理員表管理員ID管理員名管理員密碼圖37管理員基本信息ER圖路線表路線ID路線名稱圖38路線基本信息ER圖站點(diǎn)表站點(diǎn)ID站點(diǎn)名稱圖39站點(diǎn)基本信息ER圖站點(diǎn)路線表站點(diǎn)ID路線ID站點(diǎn)在路線中的位置站點(diǎn)名稱站點(diǎn)路線ID路線名稱圖310站點(diǎn)次序信息ER圖在了解了各實(shí)體之后,下面實(shí)現(xiàn)的是站點(diǎn)表、路線表、站點(diǎn)路線表之間的ER關(guān)系模型圖。站點(diǎn)表與路線表之間的關(guān)系是一對(duì)多的關(guān)系,記作1M,路線表與站點(diǎn)表之間的關(guān)系也是一對(duì)多的關(guān)系,記作1N,如圖311所示。站點(diǎn)路線表路線表站點(diǎn)表MN圖311線表、站點(diǎn)表和站點(diǎn)路線表間的ER圖4數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)與實(shí)現(xiàn)城市公交查詢系統(tǒng)應(yīng)用的是MYSQL數(shù)據(jù)庫(kù)管理系統(tǒng)。此系統(tǒng)使用的數(shù)據(jù)庫(kù)名稱為BQS,下面具體講解數(shù)據(jù)庫(kù)中各數(shù)據(jù)表的創(chuàng)建。41數(shù)據(jù)庫(kù)的需求分析根據(jù)公交車路線查詢系統(tǒng)的需求,對(duì)應(yīng)實(shí)體數(shù)據(jù)庫(kù)表的設(shè)計(jì)及作用如下1、站點(diǎn)表STOP主要存儲(chǔ)站點(diǎn)信息2、路線表ROUTE主要存儲(chǔ)路線信息3、站點(diǎn)路線表STOPROUTE存儲(chǔ)站點(diǎn)信息,路線信息,從而將站點(diǎn)和路線對(duì)應(yīng)4、管理員表ADMIN存儲(chǔ)管理員賬號(hào)及密碼42數(shù)據(jù)庫(kù)表的創(chuàng)建該系統(tǒng)中共需要?jiǎng)?chuàng)建五個(gè)數(shù)據(jù)表管理員表、留言簿表、車次基本信息表、站點(diǎn)基本信息表、站點(diǎn)次序表。(1)管理員表ADMIN此表包括三個(gè)字段一個(gè)是管理員標(biāo)志ADMINID字段,該字段時(shí)ADMIN表的主鍵;另外兩個(gè)分別是管理員名和管理員密碼。其詳細(xì)信息如表41所示。表41ADMIN表列名數(shù)據(jù)類型長(zhǎng)度是否為空說(shuō)明ADMINIDINT4NOTNULL管理員編號(hào)(主鍵)ADNAMEVARCHAR15NOTNULL管理員名ADPWDVARCHAR15NOTNULL管理員密碼(2)站點(diǎn)表STOP此表包括2個(gè)字段其中STOPID字段為表的主鍵,NAME為站點(diǎn)名稱。其詳細(xì)信息如表42所示。表42STOP表列名數(shù)據(jù)類型長(zhǎng)度是否為空說(shuō)明STOPIDINT4NOTNULL站點(diǎn)編號(hào)(主鍵)NAMEVARCHAR50NULL站點(diǎn)名稱(3)路線表ROUTE此表包括2個(gè)字段其中ROUTEID字段為ROUTE表的主鍵,NAME為路線的名稱其詳細(xì)信息如表43所示。表43LINE表列名數(shù)據(jù)類型長(zhǎng)度是否為空說(shuō)明ROUTEIDINT4NOTNULL路線編號(hào)(主鍵)NAMEVARCHAR50NOTNULL路線名(4)站點(diǎn)路線表STOPROUTE此表包括6個(gè)字段其中STOPROUTEID字段為STOPROUTE表的主鍵,另外5個(gè)分別為站點(diǎn)名和路線名;站點(diǎn)ID和路線ID;站點(diǎn)在路線中的位置。其詳細(xì)信息如表44所示。表44STOPROUTE表列名數(shù)據(jù)類型長(zhǎng)度是否為空說(shuō)明STOPROUTE_IDINT4NOTNULL站點(diǎn)路線編號(hào)(主鍵)STOP_NAMEVARCHAR50NOTNULL站點(diǎn)名ROUTE_NAMEVARCHAR50NOTNULL路線名STOP_POSATIONINT4NOTNULL站點(diǎn)在路線中的位置STOP_IDINT4NOTNULL外鍵ROUTE_IDINT4NOTNULL外鍵5系統(tǒng)的詳細(xì)設(shè)計(jì)51數(shù)據(jù)庫(kù)目前應(yīng)用開(kāi)發(fā)中,數(shù)據(jù)庫(kù)系統(tǒng)常見(jiàn)的主要有ORACLE、SQLSERVER、DB2和MYSQL。本系統(tǒng)考慮到技術(shù)的成熟性、技術(shù)應(yīng)用搭配的慣例以及系統(tǒng)的規(guī)模等因素,數(shù)據(jù)庫(kù)系統(tǒng)采用MYSQL數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行數(shù)據(jù)的存儲(chǔ)服務(wù)。具體表結(jié)構(gòu)定義在第四章已給出,這里不再贅述。52HIBERNATE持久層通過(guò)使用HIBERNATE持久層,可以避免使用傳統(tǒng)的JDBC方式操作數(shù)據(jù)庫(kù),通過(guò)利用HIBERNATE提供的O/RMAPPING支持,從而允許使用面向?qū)ο蟮姆绞讲僮麝P(guān)系數(shù)據(jù)庫(kù),保證了整個(gè)軟件開(kāi)發(fā)過(guò)程以面向?qū)ο蟮姆绞竭M(jìn)行,即面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì)、面向?qū)ο缶幊獭?21設(shè)計(jì)持久化對(duì)象(PO)面向?qū)ο蠓治觯侵父鶕?jù)系統(tǒng)需求提取應(yīng)用中的對(duì)象,將這些對(duì)象抽象成類,再抽取出需要持久化保存的類,這些需要持久化保存的類就是持久化對(duì)象(PO)。本系統(tǒng)完全從面向?qū)ο蠓治鲩_(kāi)始,設(shè)計(jì)了如下持久化類1ROUTE類對(duì)應(yīng)系統(tǒng)中的路線信息,包含路線名稱2STOP類對(duì)應(yīng)系統(tǒng)中的站點(diǎn)信息,包含站點(diǎn)名稱3STOPROUTE類對(duì)應(yīng)系統(tǒng)中的站點(diǎn)路線信息,將站點(diǎn)和路線關(guān)聯(lián)起來(lái)可觀世界中的對(duì)象不是孤立存在的,以上3個(gè)PO類也不是孤立存在的,它們之間存在著復(fù)雜的關(guān)聯(lián)關(guān)系。分析關(guān)聯(lián)關(guān)系是面向?qū)ο蠓治龅谋匾襟E,也是HIBERNATE進(jìn)行持久化操作的必經(jīng)之路。以上3個(gè)PO之間的關(guān)聯(lián)關(guān)系如下1ROUTE和STOP之間存在一對(duì)多的關(guān)系,即一條路線對(duì)應(yīng)多個(gè)站點(diǎn)2STOP和ROUTE之間存在一對(duì)多的關(guān)系,即一個(gè)站點(diǎn)對(duì)應(yīng)多個(gè)路線3STOPROUTE和STOP之間存在多對(duì)一的關(guān)系4STOPROUTE和ROUTE之間存在多對(duì)一的關(guān)系522創(chuàng)建持久化類持久化對(duì)象之間的關(guān)聯(lián)關(guān)系以屬性的方式表現(xiàn)出來(lái),這些屬性要以SETTER和GETTER方法的支持,持久化類之間的關(guān)聯(lián)關(guān)系通常對(duì)應(yīng)于數(shù)據(jù)庫(kù)里的主、外鍵約束。除此之外,持久化對(duì)象還有自己的普通屬性,這些普通屬性通常對(duì)應(yīng)數(shù)據(jù)庫(kù)里的字段。523映射持久化類在面向?qū)ο蠓治龅碾A段中,最重要的任務(wù)就是提取類,并分析對(duì)象之間的關(guān)聯(lián)關(guān)系。本系統(tǒng)中,對(duì)象之間的關(guān)聯(lián)關(guān)系主要表現(xiàn)為一對(duì)一的關(guān)系。對(duì)象之間的關(guān)聯(lián)關(guān)系一般通過(guò)對(duì)應(yīng)的XML格式映射文件定義。1ROUTE的映射文件ROUTEHBMXML(映射在文件夾SRC目錄下的一個(gè)XML文件夾中)2STOP的映射文件STOPHBMXML(映射在文件SRC目錄下面的XML文件夾下面)3STOPROUTE映射文件STOPROUTEHBMXML53DAO層的實(shí)現(xiàn)在HIBERNATE持久層之上,可以使用DAO組件再次封裝數(shù)據(jù)庫(kù)操作,這也是JAVAEE應(yīng)用里常用的DAO模式。當(dāng)使用DAO模式時(shí),既體現(xiàn)了業(yè)務(wù)邏輯組件封裝DAO組件的門面模式(設(shè)計(jì)模式),也可以分離業(yè)務(wù)邏輯組件和DAO組件的功能業(yè)務(wù)邏輯組件負(fù)責(zé)業(yè)務(wù)邏輯的變化,而DAO組件負(fù)責(zé)持久化技術(shù)的變化。引入DAO模式后,每個(gè)DAO組件包含了數(shù)據(jù)庫(kù)的訪問(wèn)邏輯;每個(gè)DAO組件可對(duì)一個(gè)數(shù)據(jù)表完成基本的CRUD等操作。DAO模式的實(shí)現(xiàn)至少需要如下3個(gè)部分1DAO工廠類。2DAO接口。3DAO接口的實(shí)現(xiàn)類。DAO模式是一個(gè)更符合軟件工程的開(kāi)發(fā)方式,使用DAO模式有如下理由1DAO模式抽象出數(shù)據(jù)訪問(wèn)方式,業(yè)務(wù)邏輯組件無(wú)須理會(huì)底層的數(shù)據(jù)庫(kù)訪問(wèn)細(xì)節(jié),而只專注于業(yè)務(wù)邏輯的實(shí)現(xiàn),業(yè)務(wù)邏輯組件只負(fù)責(zé)業(yè)務(wù)功能的改變。2DAO將數(shù)據(jù)庫(kù)訪問(wèn)集中在獨(dú)立的一層,所有的數(shù)據(jù)訪問(wèn)都由DAO對(duì)象完成,這層獨(dú)立的DAO分離了數(shù)據(jù)訪問(wèn)的實(shí)現(xiàn)與其他業(yè)務(wù)邏輯,使得系統(tǒng)更具有可維護(hù)性。3DAO還有助于提升系統(tǒng)的可移植性。獨(dú)立的DAO層使得系統(tǒng)能在不同的數(shù)據(jù)庫(kù)之間輕易切換,底層的數(shù)據(jù)庫(kù)實(shí)現(xiàn)對(duì)于業(yè)務(wù)邏輯組件是透明的。數(shù)據(jù)庫(kù)移植時(shí)僅僅影響DAO層,不同數(shù)據(jù)庫(kù)的切換不會(huì)影響業(yè)務(wù)邏輯組件,因此提高了系統(tǒng)的可復(fù)用性。4對(duì)于不同的持久層技術(shù),SPRING的DAO提供了一個(gè)DAO模板,將通用的操作放在模板里完成,而對(duì)于特定的操作,則通過(guò)回調(diào)接口完成。SPRING為HIBERNATE提供的DAO支持類是HIBERNATEDAOSUPPORT531DAO組件的定義DAO組件提供了各個(gè)持久化對(duì)象基本的CRUD操作。而在DAO接口里對(duì)DAO組件包含的各種CRUD方法提供了聲明。使用DAO接口的原因是為了避免業(yè)務(wù)邏輯組件與特定的DAO組件的耦合。由于DAO組件中的方法不是一開(kāi)始就設(shè)計(jì)出來(lái)的,其中的很多方法可能會(huì)隨著業(yè)務(wù)邏輯的需求而增加,但以下幾個(gè)方法一般是通用的1GETSERIALIZABLEID根據(jù)主鍵加載持久化實(shí)例。2SAVEOBJECTENTITY保存持久化實(shí)例。3UPDATEOBJECTENTITY更新持久化實(shí)例。4DELETEOBJECTENTITY刪除持久化實(shí)例。5DELETESERIALIZABLEID根據(jù)主鍵刪除持久化實(shí)例。6FINDALL獲取數(shù)據(jù)表中全部的持久化實(shí)例。以下是本系統(tǒng)中部分DAO接口的源代碼/IROUTEDAO對(duì)應(yīng)文件為IROUTEDAOJAVA/PACKAGECNCOMBQSDAOIMPORTJAVAUTILLISTIMPORTCNCOMBQSENTITYROUTEPUBLICINTERFACEIROUTEDAO/增加一條路線VOIDADDROUTEROUTEROUTE/刪除一條路線VOIDDELETEROUTEROUTEROUTE/修改路線信息VOIDUPDATEROUTEROUTEROUTE/根據(jù)路線名查出路線信息ROUTEFINDBYROUTENAMESTRINGROUTENAME/查出所有路線LISTFINDALL/ISTOPDAO對(duì)應(yīng)文件為ISTOPDAOJAVA/PACKAGECNCOMBQSDAOIMPORTJAVAUTILLISTIMPORTCNCOMBQSENTITYSTOPPUBLICINTERFACEISTOPDAO/增加一個(gè)站點(diǎn)VOIDADDSTOPSTOPSTOP/刪除一個(gè)站點(diǎn)VOIDDELETESTOPSTOPSTOP/修改站點(diǎn)信息VOIDUPDATESTOPSTOPSTOP/根據(jù)站點(diǎn)名查出站點(diǎn)信息STOPFINDBYSTOPNAMESTRINGSTOPNAME/查出所有站點(diǎn)LISTFINDALL/ISTOPROUTEDAO對(duì)應(yīng)文件為ISTOPROUTEDAOJAVA/PACKAGECNCOMBQSDAOIMPORTJAVAUTILLISTIMPORTCNCOMBQSENTITYSTOPROUTEPUBLICINTERFACEISTOPROUTEDAO/增加一條站點(diǎn)信息VOIDADDSTOPROUTESTOPROUTESTOPROUTE/刪除一條站點(diǎn)信息VOIDDELETESTOPROUTESTOPROUTESTOPROUTE/修改一條站點(diǎn)信息VOIDUPDATESTOPROUTESTOPROUTESTOPROUTE/根據(jù)站點(diǎn)名查出站點(diǎn)在路線中的信息LISTFINDBYSTOPNAMESTRINGSTOPNAME/根據(jù)路線路查出站點(diǎn)在路線中的信息LISTFINDBYROUTENAMESTRINGROUTENAME/根據(jù)路線和站點(diǎn)名查出一條路線站點(diǎn)對(duì)應(yīng)信息STOPROUTEFINDBYSTOPANDROUTENAMESTRINGSTOPNAME,STRINGROUTENAME532DAO組件的實(shí)現(xiàn)借助于SPRING的DAO支持,可以很方便地為DAO組件提供實(shí)現(xiàn)類,SPRING為各種常用的持久化技術(shù)都提供了很好的支持,如為JDBC持久化技術(shù)提供了JDBCDAOSUPPORT。SPRING為HIBERNATE提供的DAO基類是HIBERNATEDAOSUPPORT,該類只需要傳入一個(gè)SESSIONFACTORY引用,即可得到一個(gè)HIBERNATETEMPLATE實(shí)例,HIBERNATETEMPLATE的功能非常強(qiáng)大,可以很容易實(shí)現(xiàn)數(shù)據(jù)庫(kù)的大部分操作。3應(yīng)用開(kāi)發(fā)中,DAO的實(shí)現(xiàn)類都要繼承HIBERNATEDAOSUPPORT基類,并實(shí)現(xiàn)相應(yīng)的DAO接口,而業(yè)務(wù)邏輯對(duì)象則面向接口編程,無(wú)須關(guān)心DAO的實(shí)現(xiàn)細(xì)節(jié)。通過(guò)這種方式,就可以讓應(yīng)用程序在不同的持久化技術(shù)之間自由切換。1ROUTEDAO接口的實(shí)現(xiàn)類代碼如下(對(duì)應(yīng)文件名為ROUTEDAOIMPLJAVA)PACKAGECNCOMBQSDAOIMPLIMPORTJAVAUTILLISTIMPORTORGSPRINGFRAMEWORKORMHIBERNATE3HIBERNATETEMPLATEIMPORTCNCOMBQSDAOIROUTEDAOIMPORTCNCOMBQSENTITYROUTEPUBLICCLASSROUTEDAOIMPLIMPLEMENTSIROUTEDAOPRIVATEHIBERNATETEMPLATEHIBERNATETEMPLATEPUBLICHIBERNATETEMPLATEGETHIBERNATETEMPLATERETURNHIBERNATETEMPLATEPUBLICVOIDSETHIBERNATETEMPLATEHIBERNATETEMPLATEHIBERNATETEMPLATETHISHIBERNATETEMPLATEHIBERNATETEMPLATEPUBLICVOIDADDROUTEROUTEROUTEHIBERNATETEMPLATESAVEROUTEPUBLICVOIDDELETEROUTEROUTEROUTEHIBERNATETEMPLATEDELETEROUTEPUBLICLISTFINDALLRETURNHIBERNATETEMPLATEFIND“FROMROUTE“PUBLICROUTEFINDBYROUTENAMESTRINGROUTENAMESTRINGHQL“SELECTROUTEFROMROUTEROUTEWHEREROUTEROUTENAMEROUTENAME“ROUTEROUTENULLROUTEROUTEHIBERNATETEMPLATEFINDBYNAMEDPARAMHQL,NEWSTRING“ROUTENAME“,NEWOBJECTROUTENAMEGET0RETURNROUTEPUBLICVOIDUPDATEROUTEROUTEROUTEHIBERNATETEMPLATEUPDATEROUTE2STOPDAO接口的實(shí)現(xiàn)類代碼如下(對(duì)應(yīng)文件名為STOPDAOIMPLJAVA)PACKAGECNCOMBQSDAOIMPLIMPORTJAVAUTILARRAYLISTIMPORTJAVAUTILLISTIMPORTORGHIBERNATEHIBERNATEIMPORTORGSPRINGFRAMEWORKORMHIBERNATE3HIBERNATETEMPLATEIMPORTCNCOMBQSDAOISTOPDAOIMPORTCNCOMBQSENTITYROUTEIMPORTCNCOMBQSENTITYSTOPPUBLICCLASSSTOPDAOIMPLIMPLEMENTSISTOPDAOPRIVATEHIBERNATETEMPLATEHIBERNATETEMPLATEPUBLICHIBERNATETEMPLATEGETHIBERNATETEMPLATERETURNHIBERNATETEMPLATEPUBLICVOIDSETHIBERNATETEMPLATEHIBERNATETEMPLATEHIBERNATETEMPLATETHISHIBERNATETEMPLATEHIBERNATETEMPLATEPUBLICVOIDADDSTOPSTOPSTOPHIBERNATETEMPLATESAVESTOPPUBLICVOIDDELETESTOPSTOPSTOPHIBERNATETEMPLATEDELETESTOPPUBLICLISTFINDALLRETURNHIBERNATETEMPLATEFIND“FROMSTOP“PUBLICSTOPFINDBYSTOPNAMESTRINGSTOPNAMESTRINGHQL“SELECTSTOPFROMSTOPSTOPWHERESTOPSTOPNAMESTOPNAME“STOPSTOPNULLLISTSTOPLISTNEWARRAYLISTSTOPLISTADDALLHIBERNATETEMPLATEFINDBYNAMEDPARAMHQL,NEWSTRING“STOPNAME“,NEWOBJECTSTOPNAMEIFSTOPLISTSIZE0RETURNNULLELSEFORSTOPSTOP2STOPLISTHIBERNATEINITIALIZESTOP2GETSTOPROUTESRETURNSTOPLISTGET0/STRINGHQL“SELECTSTOPFROMSTOPSTOPWHERESTOPSTOPNAMESTOPNAME“/STOPSTOPNULL/STOPSTOPHIBERNATETEMPLATEFINDBYNAMEDPARAMHQL,NEWSTRING“STOPNAME“,NEWOBJECTSTOPNAMEGET0/RETURNSTOPPUBLICVOIDUPDATESTOPSTOPSTOPHIBERNATETEMPLATEUPDATESTOP3STOPDAO接口的實(shí)現(xiàn)類代碼如下(對(duì)應(yīng)文件名為STOPDAOIMPLJAVA)PACKAGECNCOMBQSDAOIMPLIMPORTJAVAUTILARRAYLISTIMPORTJAVAUTILLISTIMPORTORGHIBERNATEHIBERNATEIMPORTORGSPRINGFRAMEWORKORMHIBERNATE3HIBERNATETEMPLATEIMPORTCNCOMBQSDAOISTOPROUTEDAOIMPORTCNCOMBQSENTITYSTOPROUTEPUBLICCLASSSTOPROUTEDAOIMPLIMPLEMENTSISTOPROUTEDAOPRIVATEHIBERNATETEMPLATEHIBERNATETEMPLATEPUBLICHIBERNATETEMPLATEGETHIBERNATETEMPLATERETURNHIBERNATETEMPLATEPUBLICVOIDSETHIBERNATETEMPLATEHIBERNATETEMPLATEHIBERNATETEMPLATETHISHIBERNATETEMPLATEHIBERNATETEMPLATEPUBLICVOIDADDSTOPROUTESTOPROUTESTOPROUTEHIBERNATETEMPLATESAVESTOPROUTEPUBLICVOIDDELETESTOPROUTESTOPROUTESTOPROUTEHIBERNATETEMPLATEDELETESTOPROUTEPUBLICLISTFINDBYROUTENAMESTRINGROUTENAMELISTSTOPROUTELISTNEWARRAYLISTSTOPROUTELISTHIBERNATETEMPLATEFIND“SELECTSTOPROUTEFROMSTOPROUTESTOPROUTEWHERESTOPROUTEROUTENAME“,ROUTENAMEFORSTOPROUTESTOPROUTESTOPROUTELISTHIBERNATEINITIALIZESTOPROUTEGETSTOPHIBERNATEINITIALIZESTOPROUTEGETROUTERETURNSTOPROUTELISTPUBLICLISTFINDBYSTOPNAMESTRINGSTOPNAMELISTSTOPROUTELISTNEWARRAYLISTSTOPROUTELISTHIBERNATETEMPLATEFIND“SELECTSTOPROUTEFROMSTOPROUTESTOPROUTEWHERESTOPROUTESTOPNAME“,STOPNAMEFORSTOPROUTESTOPROUTESTOPROUTELISTHIBERNATEINITIALIZESTOPROUTEGETSTOPHIBERNATEINITIALIZESTOPROUTEGETROUTERETURNSTOPROUTELISTPUBLICVOIDUPDATESTOPROUTESTOPROUTESTOPROUTEHIBERNATETEMPLATEUPDATESTOPROUTEPUBLICSTOPROUTEFINDBYSTOPANDROUTENAMESTRINGSTOPNAME,STRINGROUTENAMESTOPROUTESTOPROUTENULLSTRINGHQL“SELECTSTOPROUTEFROMSTOPROUTESTOPROUTEWHERESTOPROUTESTOPNAMESTOPNAMEANDSTOPROUTEROUTENAMEROUTENAME“STOPROUTESTOPROUTEHIBERNATETEMPLATEFINDBYNAMEDPARAMHQL,NEWSTRING“STOPNAME“,“ROUTENAME“,NEWOBJECTSTOPNAME,ROUTENAMEGET0RETURNSTOPROUTE533部署DAO層1、DAO組件的運(yùn)行基礎(chǔ)本應(yīng)用系統(tǒng)中的DAO組件以HIBERNATE和SPRING為基礎(chǔ),由SPRING容器負(fù)責(zé)生成并管理DAO組件。SPRING容器負(fù)責(zé)為DAO組
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆山東省泰安肥城市高二下化學(xué)期末檢測(cè)模擬試題含解析
- 供應(yīng)工業(yè)冷庫(kù)管理辦法
- 數(shù)據(jù)湖成本控制-洞察及研究
- 檔案數(shù)據(jù)追溯管理辦法
- 公安舉報(bào)投訴管理辦法
- 貨物裝卸機(jī)械使用安全守則
- 智能化農(nóng)用機(jī)器人及其人機(jī)交互優(yōu)化-洞察及研究
- 醫(yī)療幫扶專家管理辦法
- 信用評(píng)級(jí)機(jī)構(gòu)競(jìng)爭(zhēng)態(tài)勢(shì)與公司債券發(fā)行上市審核探析
- 公安職工餐廳管理辦法
- 2025年中國(guó)LTCC技術(shù)行業(yè)市場(chǎng)現(xiàn)狀、前景分析研究報(bào)告(智研咨詢發(fā)布)
- 租賃住房培訓(xùn)課件下載
- 房管員試題資料
- 2024年蘇州昆山國(guó)創(chuàng)投資集團(tuán)有限公司招聘筆試真題
- 商場(chǎng)吸煙區(qū)管理制度
- 糖尿病足截肢術(shù)后護(hù)理
- 廣東省東莞市2022-2023學(xué)年高二下學(xué)期期末物理試題(含答案)
- 公司第四季度安委會(huì)會(huì)議匯報(bào)材料課件
- 中醫(yī)護(hù)理質(zhì)量與安全管理職責(zé)
- 2025年農(nóng)業(yè)技術(shù)員考試試題及答案
- 【詩(shī)歌鑒賞】2025屆高三下4月名校??荚囶}
評(píng)論
0/150
提交評(píng)論