版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
在線公交查詢平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)摘要為了提高人們的生活質(zhì)量,讓人們的出行更加方便,我決定開發(fā)在線公交查詢平臺(tái)。城市公交在人們的日常生活出行中有著不可代替的作用,它是與民生和社會(huì)發(fā)展有關(guān)的重要的基礎(chǔ)社會(huì)設(shè)施。它可以幫助出行的人們及時(shí)獲取公交車信息,幫助人們順利的出行。這次所開發(fā)的課題是城市在線公交查詢平臺(tái),為了實(shí)現(xiàn)這個(gè)課題,我使用的技術(shù)是Spring+SpringMVC+Mybaties構(gòu)架,用IDEA開發(fā)工具使用Java編程語言來實(shí)現(xiàn)了平臺(tái)的主要功能和前端的界面設(shè)計(jì),數(shù)據(jù)庫采用了MySQL數(shù)據(jù)庫管理數(shù)據(jù).首先要先分析用戶的需求和客觀條件的限,然后設(shè)計(jì)平臺(tái)的各個(gè)功能,最后敲寫代碼實(shí)現(xiàn)功能。關(guān)鍵詞:SpringMVC;Mybaties;公交車查詢;目錄目錄TOC\o"1-3"\h\u10285摘要 I10857插圖清單 IV25663表格清單 V108281引言 176601.1研究背景及意義 1205791.2國內(nèi)外發(fā)展現(xiàn)狀及趨勢(shì) 1135431.2.1國內(nèi)外發(fā)展現(xiàn)狀 1265801.2.2發(fā)展趨勢(shì) 1289422平臺(tái)需求分析 2258682.1可行性分析 2145932.1.1經(jīng)濟(jì)可行性 2206142.1.2技術(shù)可行性 297892.1.3操作可行性 233152.2平臺(tái)需求分析 2110582.2.1業(yè)務(wù)流分析 3316142.2.2數(shù)據(jù)流分析 4253312.2.3數(shù)據(jù)字典 4223282.2.4數(shù)據(jù)庫需求分析 480432.3接口分析 5104921.登錄失敗 5128632.帳號(hào)不存在 5325783平臺(tái)概要設(shè)計(jì) 735283.1平臺(tái)總體設(shè)計(jì)結(jié)構(gòu) 7127303.2數(shù)據(jù)庫表設(shè)計(jì) 817343.2.1ER圖 8303833.2.2數(shù)據(jù)表設(shè)計(jì) 812083.2.3表匯總 91243.3平臺(tái)出錯(cuò)處理設(shè)計(jì) 976884平臺(tái)詳細(xì)設(shè)計(jì) 10193454.1平臺(tái)乘車模塊 1018015、Java部分 1418920結(jié)論與展望 2021816參考文獻(xiàn) 22插圖清單圖2-1在線公交查詢平臺(tái)業(yè)務(wù)流圖 3圖2-2在線公交查詢平臺(tái)數(shù)據(jù)流圖 4圖3-1在線公交查詢平臺(tái)總體結(jié)構(gòu)設(shè)計(jì)功能圖 6圖3-2在線公交查詢平臺(tái)的E-R圖 7圖4-1登錄查詢流程圖 10圖4-2平臺(tái)登錄首頁圖 11圖4-3用戶操作流程圖 13表格清單表2-1用戶數(shù)據(jù)模型表 4表2-2登錄接口表 6表3-1用戶表 9表3-2出錯(cuò)處理設(shè)計(jì)表 101引言1.1研究背景及意義隨著中國的發(fā)展,城市中的公交車數(shù)量也在不斷增加,我們要是來到一個(gè)不熟悉的地方乘坐公交車一開始是一個(gè)很不方便的事情,你不知道哪些公交車通向哪里,給人們帶來了極大的不便。因此,結(jié)合實(shí)際操作,開發(fā)出合適的在線公交查詢平臺(tái)可以使人們的出行變得更加方便,因?yàn)樗梢宰屓藗儾槐赜H自去公交車站臺(tái)查看信息。在線公交查詢平臺(tái)的現(xiàn)狀分析:由于中國人口過多在上班下班高峰期交通擁堵,同時(shí)為了減少污染,提倡乘坐公交車。目前來看,在線公交查詢平臺(tái)至少具有以下功能:站點(diǎn)信息查詢,公交車車號(hào)查詢和站到站之間的路徑查詢,它不僅可以查詢每條線路的起停站,還可以進(jìn)行分析是否進(jìn)行換乘。1.2國內(nèi)外發(fā)展現(xiàn)狀及趨勢(shì)1.2.1國內(nèi)外發(fā)展現(xiàn)狀(1)國內(nèi)發(fā)展現(xiàn)狀隨著中國的發(fā)展,目前公交車基本覆蓋了我國的所有縣級(jí)以上的城市,但部分不發(fā)達(dá)的城市是沒有在線公交查詢平臺(tái)的,主要有兩個(gè)原因,一是政府沒有多余的資金來開發(fā),二是公交線路少。而在大一些的城市中雖然有在線公交查詢平臺(tái),但總是有著一些缺陷。具體來說,國內(nèi)在線公交查詢平臺(tái)市場(chǎng)需求較大,前景廣闊。未來在線公交查詢平臺(tái)市場(chǎng)一定會(huì)發(fā)展的更好。(2)國外發(fā)展現(xiàn)狀美國在20世紀(jì)60年代以后開始研究公共交通調(diào)查平臺(tái),日本和歐洲在20世紀(jì)70年代后期開始研究。2000年,發(fā)達(dá)國家基本實(shí)現(xiàn)了國家運(yùn)輸?shù)闹悄芑芾?。與內(nèi)部開發(fā)相比,外部開發(fā)更加合理。在這些國家公共交通產(chǎn)業(yè)發(fā)展的理由各種各樣。第一類是依賴汽車開發(fā)的城市。美國等發(fā)達(dá)國家雖然汽車擁有率和利用率高,但越來越受到能源不足的影響。在泰國等發(fā)展中國家,人均汽車擁有度與發(fā)達(dá)國家有很大不同,但汽車的擁有和使用沒有限制,遠(yuǎn)遠(yuǎn)超過了道路網(wǎng)和環(huán)境的可訪問性。第二類是汽車和鐵路運(yùn)輸同步發(fā)達(dá)的城市,如英國倫敦、法國巴黎、東京、日本大阪等。人們更加喜歡乘坐公共交通,這能讓他們節(jié)約更多的時(shí)間。第三大城市為了支持新加坡和香港等城市的高密度開發(fā),主要依賴公共交通工具封鎖了車輛的發(fā)展和使用。面對(duì)交通擁堵的嚴(yán)重問題,世界所有國家都在積極探索流量的有效模式。美國采取TOD模式和新的城市主義模式,在運(yùn)輸中發(fā)揮主導(dǎo)作用,協(xié)調(diào)交通與土地利用的關(guān)系,促進(jìn)城市開發(fā)與城市交通的合作。在英國倫敦,公共汽車道的整備、優(yōu)先區(qū)域的整備、停車場(chǎng)的獎(jiǎng)勵(lì)、中部的移動(dòng)和擁擠等對(duì)策,形成了開發(fā)公共交通工具的有效方法。東京積極實(shí)施以鐵路運(yùn)輸為重點(diǎn)的公共交通優(yōu)先開發(fā)戰(zhàn)略,鐵路運(yùn)輸成為大部分東京市民的首選,有效緩解了交通擁堵。1.2.2發(fā)展趨勢(shì)互聯(lián)網(wǎng)普及率超過六成,移動(dòng)互聯(lián)網(wǎng)使用持續(xù)深化。截至2019年6月,我國網(wǎng)民規(guī)模達(dá)8.54億,較2018年底增長(zhǎng)2598萬,互聯(lián)網(wǎng)普及率達(dá)61.2%,較2018年底提升1.6個(gè)百分點(diǎn);我國手機(jī)網(wǎng)民規(guī)模達(dá)8.47億,較2018年底增長(zhǎng)2984萬,網(wǎng)民使用手機(jī)上網(wǎng)的比例達(dá)99.1%,較2018年底提升0.5個(gè)百分點(diǎn)。與五年前相比,移動(dòng)寬帶平均下載速率提升約6倍,手機(jī)上網(wǎng)流量資費(fèi)水平降幅超90%?!疤崴俳蒂M(fèi)”推動(dòng)移動(dòng)互聯(lián)網(wǎng)流量大幅增長(zhǎng),用戶月均使用移動(dòng)流量達(dá)7.2GB,為全球平均水平的1.2倍;移動(dòng)互聯(lián)網(wǎng)接入流量消費(fèi)達(dá)553.9億GB,同比增長(zhǎng)107.3%。隨著中國的高數(shù)量經(jīng)濟(jì)發(fā)展逐漸轉(zhuǎn)變?yōu)楦哔|(zhì)量發(fā)展,人們也越來越注重生活的品質(zhì),為了減少對(duì)環(huán)境的污染,以及公共交通的方便,未來在線公交查詢平臺(tái)一定會(huì)發(fā)展的更加好,同時(shí)現(xiàn)在智能化的普及越來越高。未來在線公交查詢平臺(tái)一定會(huì)愈加趨向于智能化,這樣不但可以在線公交查詢平臺(tái)的操作更加簡(jiǎn)單,還可以使在線公交查詢平臺(tái)的查詢更加高效。2平臺(tái)需求分析2.1可行性分析我們?yōu)槭裁匆尚行苑治?。主要的目的是?duì)軟件進(jìn)行全方位,多角度的評(píng)估,以判斷軟件開發(fā)的所用的技術(shù)能否支持軟件功能的成功實(shí)現(xiàn)和軟件開發(fā)所需的金錢能否在軟件成功開發(fā)之后收回。通過分析結(jié)果,再來判斷是否開發(fā)軟件。2.1.1經(jīng)濟(jì)可行性經(jīng)濟(jì)可行性,是為了驗(yàn)證項(xiàng)目是否能帶回足夠的收益,或者我們是否有足夠的金錢把項(xiàng)目開發(fā)完成。成本上看來,開發(fā)及平臺(tái)所需的就是一臺(tái)電腦,安裝一些應(yīng)用軟件,只有敲寫代碼會(huì)占用大量時(shí)間。從收益來看:本項(xiàng)目并沒有任何物質(zhì)上的收益,主要是用來驗(yàn)證自己的能力。2.1.2技術(shù)可行性本平臺(tái)主要是開發(fā)網(wǎng)上在線公交查詢平臺(tái),在數(shù)據(jù)庫中輸入公交車信息、站臺(tái)信息,用戶通過需求查詢信息。另一方面,本平臺(tái)使用的開發(fā)工具使用的為IDEA,開發(fā)框架采用的是Spring+SpringMVC+Mybaties,數(shù)據(jù)庫使用的是開源的MySQL,技術(shù)較為簡(jiǎn)單。在大學(xué)期間系統(tǒng)學(xué)過網(wǎng)頁設(shè)計(jì)和網(wǎng)站搭建知識(shí),具備一定的網(wǎng)頁設(shè)計(jì)和網(wǎng)站搭建能力。故本系統(tǒng)技術(shù)層面可行性也具有通過在學(xué)校學(xué)習(xí)的知識(shí)來完成這次考驗(yàn)。2.1.3操作可行性面對(duì)第一次操作本平臺(tái)的用戶。我特意設(shè)計(jì)了一份用戶手冊(cè)可以幫助用戶了解它的功能。所以,在操作上是可行的。2.2平臺(tái)需求分析需求分析實(shí)現(xiàn)的目標(biāo):是將軟件用戶對(duì)于軟件的一系列意圖、想法轉(zhuǎn)變?yōu)檐浖_發(fā)人員所需要的有關(guān)軟件的技術(shù)規(guī)格,但實(shí)際上這具有相當(dāng)大的難度。需求分析的步驟:需求獲取、需求建模和細(xì)化、需求文檔和需求驗(yàn)證。1、需求獲?。ㄐ枨箢悇e、需求獲取的方式)項(xiàng)目經(jīng)過前期的確認(rèn)以后,在需求分析階段獲取的需求,與項(xiàng)目前期獲取的需求有所不同。需求類別:用戶需求、功能需求、非功能需求2、需求建模并細(xì)化(1)結(jié)構(gòu)化方法分析建模:結(jié)構(gòu)化思想下,系統(tǒng)體現(xiàn)為“程序”+"數(shù)據(jù)",目標(biāo)系統(tǒng)的系統(tǒng)分析邏輯模型由數(shù)據(jù)流圖和數(shù)據(jù)字典來描述。(2)面向?qū)ο蠓椒ǚ治鼋#好嫦驅(qū)ο蠓椒ㄏ?,目?biāo)系統(tǒng)的系統(tǒng)分析邏輯由用例模型(用例圖+用例流程圖)+分析類模型構(gòu)成。數(shù)據(jù)流圖:是描述系統(tǒng)中數(shù)據(jù)流的圖形工具,是一種用來表示信息流和信息變換過程的圖解方法。數(shù)據(jù)字典:是被用來對(duì)數(shù)據(jù)流圖中的加工和數(shù)據(jù)(數(shù)據(jù)流)進(jìn)行補(bǔ)充說明,對(duì)數(shù)據(jù)流中出現(xiàn)的圖形元素做出確切的解釋。3、需求文檔化需要文檔是后續(xù)的軟件設(shè)計(jì)和測(cè)試的重要依據(jù),需求文檔應(yīng)該具有清晰性、無二義性和準(zhǔn)確性,并且能夠全面和準(zhǔn)確地描述用戶需求。4、需求驗(yàn)證需求驗(yàn)證是對(duì)需求分析的成果進(jìn)行評(píng)估和驗(yàn)證。二、結(jié)構(gòu)化方法的需求分析結(jié)構(gòu)化方法的需求分析由數(shù)據(jù)流圖及數(shù)據(jù)字典構(gòu)成。1、數(shù)據(jù)流圖有四種基本符號(hào):正方形或立方體、圓角矩形或圓形、開口矩形或兩條平行線、箭頭。正方形或立方體:表示數(shù)據(jù)的源點(diǎn)或終點(diǎn)圓角矩形或圓形:表示變換數(shù)據(jù)的處理開口矩形或兩條平行線:表示數(shù)據(jù)存儲(chǔ)箭頭:表示數(shù)據(jù)流2、數(shù)據(jù)字典一般應(yīng)包括對(duì)數(shù)據(jù)的數(shù)據(jù)項(xiàng)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲(chǔ)、處理邏輯、外部實(shí)體等進(jìn)行定義和描述。三、面向?qū)ο蟮男枨蠓治雒嫦驅(qū)ο蟮男枨蠓治?,基于面向?qū)ο蟮乃枷耄杂美P蜑榛A(chǔ)。參與者:表示與系統(tǒng)進(jìn)行交互的用戶或外部系統(tǒng),使用系統(tǒng)的對(duì)象用例:指外部可見的系統(tǒng)功能,對(duì)系統(tǒng)提供的服務(wù)進(jìn)行描述關(guān)聯(lián):表示參與者與用例之間的通信,任何一方都可發(fā)送或接受消息泛化:是通常理解的繼承關(guān)系包含:指一個(gè)較復(fù)雜用例所表示的功能分解成較小的步驟擴(kuò)展:把用例功能的延伸,相當(dāng)于為基礎(chǔ)用例提供一個(gè)附加功能系統(tǒng):表示一個(gè)物體或一項(xiàng)活動(dòng)2.2.1業(yè)務(wù)流分析在線公交查詢平臺(tái)用戶通登錄使用。未登錄時(shí)不能執(zhí)行等相關(guān)操作,當(dāng)用戶注冊(cè)登錄之后,進(jìn)入平臺(tái)就可以對(duì)公交車的信息和站臺(tái)的信息進(jìn)行查詢、搜索等操作,還可以查看修改用戶的私人信息進(jìn),并且可以修改自己的登錄密碼。管理員可以通過后臺(tái)對(duì)用戶、公交車、站臺(tái)進(jìn)行增刪改查操作,操作完成的數(shù)據(jù)都將實(shí)時(shí)保存到MySQL數(shù)據(jù)庫中。在線公交查詢平臺(tái)的業(yè)務(wù)流圖如圖2-1所示圖2-1在線公交查詢平臺(tái)業(yè)務(wù)流圖2.2.2數(shù)據(jù)流分析通過數(shù)據(jù)流分析可以幫助我們弄清楚平臺(tái)是如何操縱數(shù)據(jù)的。在線公交查詢平臺(tái)的數(shù)據(jù)流是通過用戶操作在線公交查詢平臺(tái)來進(jìn)行流向的,該平臺(tái)數(shù)據(jù)的流向最主要的特征是它是雙向流動(dòng)的,想要查看展示的數(shù)據(jù)必須依賴用戶的操作。在線公交查詢平臺(tái)流圖如圖3-2所示。圖2-2在線公交查詢平臺(tái)數(shù)據(jù)流圖2.2.3數(shù)據(jù)字典數(shù)據(jù)字典之中數(shù)據(jù)最主要的來源,與其他數(shù)據(jù)之間關(guān)系等的存儲(chǔ)。數(shù)據(jù)字典的建立一般是在開發(fā)平臺(tái)之前,它的主要作用是提高開發(fā)的效率,將數(shù)據(jù)共享,快速的幫助開發(fā)人員了解,找到所需要的信息,當(dāng)開發(fā)人員和維護(hù)人員遇到了一個(gè)陌生的項(xiàng)目時(shí),他們可以通過使用數(shù)據(jù)字典快速了解想要的信息,例如數(shù)據(jù)類型和相關(guān)的文本描述。這些解釋可以減少數(shù)據(jù)之間的不兼容性。如表2-1所示。表2-1公交車數(shù)據(jù)模型表數(shù)據(jù)項(xiàng)存儲(chǔ)名用戶信息數(shù)據(jù)項(xiàng)來源公交車信息表數(shù)據(jù)項(xiàng)去向查詢公交車信息模塊數(shù)據(jù)項(xiàng)組成用戶信息=公交車id+公交車編號(hào)+車牌號(hào)+公交車線路號(hào)+添加時(shí)間數(shù)據(jù)項(xiàng)描述保存了公交車的基本信息2.2.4數(shù)據(jù)庫需求分析在線公交查詢平臺(tái)使用的是開源的MySQL數(shù)據(jù)庫,MySQL可以用于主流的編程語言,對(duì)于各種編程語言都有良好的兼容性,在Java開發(fā)中十分常用。同時(shí)MySQL數(shù)據(jù)庫可以永久性保持?jǐn)?shù)據(jù),使用SQL語句可以更加快捷查詢、修改數(shù)據(jù)。而且MySQL是開源免費(fèi)的,十分方便擴(kuò)展。同時(shí)為了能讓開發(fā)人員更好的了解數(shù)據(jù)庫中表的字段意義,數(shù)據(jù)庫所有命名均遵循見名知意的原則,在本平臺(tái)中使用拼音為表和字段命名,例如,公交車信息表被命名為,gongjiaochexinxi。2.3接口分析優(yōu)秀的接口設(shè)計(jì)能幫助我們有效的降低系統(tǒng)中各個(gè)部分之間的相互依賴,提高系統(tǒng)的性能。所以接口分析也是也開發(fā)軟件中必不可少的一環(huán)。接口的作用在各個(gè)項(xiàng)目中都能體現(xiàn)出來,不一定非要體現(xiàn)在開發(fā)大型軟件上,在小型的軟件開發(fā)上使用接口一樣可以可以提升軟件的性能,降低系統(tǒng)的耦合度。但不同的是,在大型的軟件開發(fā)中,接口設(shè)計(jì)遠(yuǎn)比小型軟件開發(fā)重要的多,需要大量的人手來設(shè)計(jì)
同時(shí)接口有一個(gè)很好的的優(yōu)點(diǎn)就是可以多重繼承,在面對(duì)一個(gè)類已經(jīng)繼承了一個(gè)類后,如果再想為他增加新的規(guī)范,我們可以再為它繼承一個(gè)接口。接口在軟件開發(fā)中是十分重要的,我們要重視起來。接口說明:提供登錄系統(tǒng)時(shí),輸入帳號(hào)、密碼等信息,完成用戶登錄并返回用戶相關(guān)身份信息,以及系統(tǒng)配置的部分服務(wù)開關(guān)信息。如表2-2登錄接口表所示表2-2登錄接口表輸入項(xiàng)必輸(Y/N)說明YonghuzganghuY賬戶MimaY密碼YanzhengmaY驗(yàn)證碼異常輸出信息如下:1.登錄失敗<output><message><result>user</result><description>登錄失敗</description></message><data></data></output>2.帳號(hào)不存在<output><message><result>nouser</result><description>帳號(hào)不存在</description></message><data></data></output>2.4開發(fā)環(huán)境2.4.1硬件一臺(tái)安裝了Windows操作系統(tǒng)的電腦。2.4.2軟件1.IDEAIDEA代表IntelliJIDEA,這是一個(gè)與Java語言開發(fā)鏈接的環(huán)境。IntelliJ是業(yè)界最好的Java開發(fā)工具,尤其是在智能鍵入,自動(dòng)代碼,響應(yīng),JavaEE支持,各種發(fā)布工具(git,svn等),JUnit,CVS集成,代碼分析和創(chuàng)新方面??梢哉J(rèn)為是不尋常的。IDEA是JetBrains的產(chǎn)品。該公司總部位于捷克共和國首都布拉格,其開發(fā)商主要是東歐計(jì)劃的開發(fā)商。它的受歡迎程度還支持HTML,CSS,PHP,MySQL,Python等。2.MySQL數(shù)據(jù)庫在線公交查詢平臺(tái)使用的是開源的MySQL數(shù)據(jù)庫,MySQL可以用于主流的編程語言,對(duì)于各種編程語言都有良好的兼容性,在Java開發(fā)中十分常用。同時(shí)MySQL數(shù)據(jù)庫可以永久性保持?jǐn)?shù)據(jù),使用SQL語句可以更加快捷查詢、修改數(shù)據(jù)。而且MySQL是開源免費(fèi)的,十分方便擴(kuò)展。MySQL數(shù)據(jù)庫服務(wù)是一項(xiàng)完全托管的數(shù)據(jù)庫服務(wù),使開發(fā)人員可以使用世界上最受歡迎的開源數(shù)據(jù)庫快速開發(fā)和部署安全的云本機(jī)應(yīng)用程序。MySQL數(shù)據(jù)庫服務(wù)是唯一具有集成的高性能分析引擎HeatWave的MySQL云服務(wù),該引擎使客戶能夠直接針對(duì)其可操作的MySQL數(shù)據(jù)庫運(yùn)行復(fù)雜的分析,而無需進(jìn)行復(fù)雜,耗時(shí)且昂貴的數(shù)據(jù)移動(dòng)和與單獨(dú)的分析數(shù)據(jù)庫集成。MySQL數(shù)據(jù)庫服務(wù)已針對(duì)Oracle云基礎(chǔ)架構(gòu)(OCI)進(jìn)行了優(yōu)化并獨(dú)家提供,由Oracle云基礎(chǔ)架構(gòu)和MySQL工程團(tuán)隊(duì)100%構(gòu)建,管理和支持。
2.5開發(fā)技術(shù)2.5.1前端1.HTML語言HTML的全稱為超文本標(biāo)記語言,是一種標(biāo)記語言。它包括一系列標(biāo)簽,通過這些標(biāo)簽可以將網(wǎng)絡(luò)上的文檔格式統(tǒng)一,使分散的Internet資源連接為一個(gè)邏輯整體。HTML文本是由HTML命令組成的描述性文本,HTML命令可以說明文字,圖形、動(dòng)畫、聲音、表格、鏈接等[2]。HTML是超文本標(biāo)記語言英文名稱是HyperTextMarkupLanguage。超文本標(biāo)記語言是指web頁面上顯示的不同部分的符號(hào)。HTML是TimBerners-Lee和他的同事DanielW.Connolly在1990年發(fā)明的標(biāo)記語言。用HTML編寫的超文本文檔稱為HTML文檔,可以獨(dú)立于UNIX、Windows等各種操作系統(tǒng)平臺(tái)使用,在操作系統(tǒng)中通過瀏覽器可以查看HTML文檔。CSS層疊樣式表(CSS):定義HTML結(jié)構(gòu)風(fēng)格的語言,如字體、顏色、位置等,用于描述web頁面上的信息顯示。CSS格式可以直接存儲(chǔ)在HTML文檔中,也可以存儲(chǔ)在CSS格式下的單個(gè)文件中。CSS能夠?qū)W(wǎng)頁中元素位置的排版進(jìn)行像素級(jí)精確控制,支持幾乎所有的字體字號(hào)樣式,擁有對(duì)網(wǎng)頁對(duì)象和模型樣式編輯的能力[3]。從而使得網(wǎng)頁更加美觀,視覺效果更佳。3.JavaScriptJavaScript是一種即時(shí)編譯的編程語言。JavaScript被稱為web頁面開發(fā)腳本語言,它提供web頁面連接到不同的操作和交互式運(yùn)動(dòng),提高交互式和服務(wù),使web頁面具有吸引力。JavaScript是世界上使用人數(shù)最多的程序語言之一,幾乎每一個(gè)普通用戶的電腦上都存在JavaScript程序的影子。2.5.2后端1.SpringSpring使每個(gè)人都可以更快,更輕松,更安全地進(jìn)行Java編程。Spring對(duì)速度,簡(jiǎn)單性和生產(chǎn)率的關(guān)注使其成為世界上最受歡迎的Java框架。Spring靈活而全面的擴(kuò)展集和第三方庫使開發(fā)人員可以構(gòu)建幾乎任何可以想象的應(yīng)用程序。SpringFramework的核心控制反轉(zhuǎn)(IoC)和依賴注入(DI)功能為廣泛的功能集提供了基礎(chǔ)。無論您是為Web構(gòu)建安全的,反應(yīng)性的,基于云的微服務(wù),還是為企業(yè)構(gòu)建復(fù)雜的流數(shù)據(jù)流,Spring都可以提供幫助的工具。SpringMVCSpringMVC是Spring提供給Web應(yīng)用的框架設(shè)計(jì)。SpringMVC是一個(gè)典型的教科書式的mvc構(gòu)架,不像Struts等都是變種或者不是完全基于mvc系統(tǒng)的框架。SpringMVC角色劃分清晰,分工明細(xì),并且和Spring框架無縫結(jié)合。作為當(dāng)今業(yè)界最主流的Web開發(fā)框架,SpringMVC已經(jīng)成為當(dāng)前最熱門的開發(fā)技能,同時(shí)也廣泛用于桌面開發(fā)領(lǐng)域。這套SpringMVC入門教程對(duì)SpringMVC框架進(jìn)行詳細(xì)講解,內(nèi)容細(xì)致、講解清晰。還包含了大量實(shí)例,幫助讀者鞏固所學(xué)知識(shí),提高編程能力。非常適合Web開發(fā)者和想要使用SpringMVC開發(fā)基于Java的Web應(yīng)用的讀者閱讀。MybatisMyBatis是一款非常出色的持久層框架,它最初來源于apache的一個(gè)在開發(fā)的項(xiàng)目iBatis但是后來這個(gè)項(xiàng)目被轉(zhuǎn)移到了谷歌,所以改名為MyBatis。MyBatis的主要功能是幫助程序員調(diào)用數(shù)據(jù)庫中的數(shù)據(jù),MyBatis支持普通的sql語句。使用MyBatis可以幫助我們更加方便的連接數(shù)據(jù)庫,它使我們不用在敲寫復(fù)雜的JDBC代碼,我們只需要在xml文件里就可以獲得數(shù)據(jù)庫中的數(shù)據(jù)。3平臺(tái)概要設(shè)計(jì)平臺(tái)總體設(shè)計(jì)結(jié)構(gòu)本階段已在系統(tǒng)需求分析的基礎(chǔ)上,對(duì)應(yīng)用系統(tǒng)做概要設(shè)計(jì)。主要解決了實(shí)現(xiàn)該系統(tǒng)需求的程序模塊設(shè)計(jì)問題,包括該系統(tǒng)模塊設(shè)計(jì)、各模塊之間的接口設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、角色設(shè)計(jì)、權(quán)限設(shè)計(jì)、日志設(shè)計(jì)等。在下一階段的詳細(xì)設(shè)計(jì)中,程序設(shè)計(jì)人員可參考此概要設(shè)計(jì)文檔,在概要設(shè)計(jì)對(duì)應(yīng)用系統(tǒng)所做的模塊結(jié)構(gòu)設(shè)計(jì)的基礎(chǔ)上,對(duì)系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì)。在以后的軟件測(cè)試以及軟件維護(hù)階段也可參考此說明書,以便于了解在概要設(shè)計(jì)過程中所完成的各模塊設(shè)計(jì)思路或在修改時(shí)找出在本階段設(shè)計(jì)的不足或缺陷。在這次在線公交查詢平臺(tái)之中,登陸時(shí)根據(jù)所賦予的權(quán)限不同,系統(tǒng)將用戶劃分為普通用戶和管理員用戶。普通用戶登錄之后可以查看修改個(gè)人信息、查詢站臺(tái)信息、查詢公交車信息、查詢兩站臺(tái)之間的線路。管理員用戶登錄之后可以使用以下的功能,增加管理員的用戶、增刪改查普通用戶。增刪改查公交車信息,增刪改查站臺(tái)信息。在線公交查詢平臺(tái)總體結(jié)構(gòu)設(shè)計(jì)功能圖如下所示。圖3-1在線公交查詢平臺(tái)總體結(jié)構(gòu)設(shè)計(jì)功能圖3.2數(shù)據(jù)庫表設(shè)計(jì)3.2.1ER圖數(shù)據(jù)庫中劃分了五張表,分別為用戶表、管理員表、公交車信息表、站點(diǎn)信息表、公交車線路信息表。在線公交查詢平臺(tái)的E-R圖如下所示。圖3-2在線公交查詢平臺(tái)的E-R圖3.2.2數(shù)據(jù)表設(shè)計(jì)在軟件開發(fā)中,數(shù)據(jù)庫是十分重要的一環(huán)數(shù)據(jù)庫保存著系統(tǒng)所需要的消息,我們通常使用數(shù)據(jù)庫管理系統(tǒng)來管理數(shù)據(jù)庫。數(shù)據(jù)庫系統(tǒng)一般分為四個(gè)部分:數(shù)據(jù)、硬件、軟件和人員。在數(shù)據(jù)庫中使數(shù)據(jù)有條理的的儲(chǔ)存是數(shù)據(jù)庫系統(tǒng)的用處。這可以提升數(shù)據(jù)庫運(yùn)行的速度,是查詢數(shù)據(jù)的效率變高,間接的提升開發(fā)軟件的效率。而如何是數(shù)據(jù)有條理的存放,最基礎(chǔ)的就是建表。建立數(shù)據(jù)庫中的表,我們要盡可能的遵循設(shè)計(jì)表的三大范式和無大約束。這樣可以減小數(shù)據(jù)的亢余。在設(shè)計(jì)數(shù)據(jù)庫的開始階段,我們應(yīng)先根據(jù)平臺(tái)需求,定義在平臺(tái)中有哪些實(shí)體,并賦予它們屬性,然后根據(jù)實(shí)體之間的關(guān)系繪制E-R圖,再把E-R圖轉(zhuǎn)換為對(duì)應(yīng)的幾張表。(1)設(shè)計(jì)用戶表,如表3-1所示。表3-1用戶表字段名類型描述idBIGINT用戶idYonghumingVARCHAR2(255)用戶賬戶MimaVARCHAR2(255)用戶密碼XingmingVARCHAR2(255)用戶姓名ShoujiInt用戶手機(jī)號(hào)AddtimeVARCHAR2(255)創(chuàng)建時(shí)間3.2.3表匯總表3-2匯總表序號(hào)表名描述信息1Admin管理員賬戶和個(gè)人信息2Yonghu用戶個(gè)人信息和賬戶密碼3Gongjiaochexinxi公交車信息4Zhantaixinxi站臺(tái)信息5Gongjiaochexianluxinxi公交車途徑站點(diǎn)3.3平臺(tái)出錯(cuò)處理設(shè)計(jì)本模塊主要是針對(duì)出錯(cuò)的一些信息的處理方式,如表3-2所示。表3-2出錯(cuò)處理設(shè)計(jì)表序號(hào)出錯(cuò)名稱平臺(tái)輸出信息處理方法1驗(yàn)證碼輸入錯(cuò)誤“驗(yàn)證碼出錯(cuò)!”進(jìn)入登錄頁面。2密碼錯(cuò)誤“登錄失敗!”進(jìn)入登錄頁面
4平臺(tái)詳細(xì)設(shè)計(jì)4.1用戶模塊平臺(tái)乘車實(shí)現(xiàn)流程圖如下所示。用戶注冊(cè)之后通過注冊(cè)賬戶登錄,然后進(jìn)入到在線公交查詢平臺(tái)首頁。通過左側(cè)的功能欄選擇功能。圖4-1登錄實(shí)現(xiàn)流程圖4.1.1用戶登錄功能用戶進(jìn)入登錄界面如果用戶沒有賬戶,先注冊(cè)賬戶,然后通過輸入賬號(hào)密碼和驗(yàn)證碼進(jìn)入到首頁。登錄界面如下圖所示4.1.2用戶查詢站臺(tái)功能用戶進(jìn)入查詢站臺(tái)界面,界面會(huì)在進(jìn)入的時(shí)候從數(shù)據(jù)庫中調(diào)取所有站臺(tái)信息,同時(shí)將數(shù)據(jù)在前端界面中展示出來。4.1.3用戶查詢公交車信息功能用戶進(jìn)入查詢公交車界面,界面會(huì)在進(jìn)入的時(shí)候從數(shù)據(jù)庫中調(diào)取所有公交車信息,同時(shí)將數(shù)據(jù)在前端界面中展示出來。4.1.4用戶查詢兩站點(diǎn)之間的路徑功能用戶進(jìn)入查詢兩站點(diǎn)之間的路徑界面之后,輸入你的出發(fā)點(diǎn)和目的地,傳入后端之后,后端判斷兩個(gè)輸入框不為空,然后調(diào)用example對(duì)象,使用sql語句在數(shù)據(jù)庫中找到符合的對(duì)象,若未找到返回為空。平臺(tái)乘車頁如下圖所示。圖4-2平臺(tái)乘車頁圖(3)核心代碼展示publicStringlist(Modelmodel)throwsIOException{if(!checkLogin()){returnshowError("尚未登錄","./login.do");}//Stringwhere="1=1";if(!Request.get("qishizhandian").equals("")&&!Request.get("mobanzhandian").equals("")){Listxinxi=newArrayList();intb=0;inta=0;intu=0;Zhandianxinxiqishizhandian=newZhandianxinxi();Zhandianxinximudizhandian=newZhandianxinxi();Zhandianxinxihuanchengzhandian=newZhandianxinxi();Exampleexample=newExample(Zhandianxinxi.class);Example.Criteriacriteria=example.createCriteria();criteria.andCondition(where);List<Zhandianxinxi>list=service1.select();for(inti=0;i<list.size();i++){if(request.getParameter("qishizhandian").equals(list.get(i).getZhandianmingcheng())){qishizhandian=list.get(i);a++;}if(request.getParameter("mobanzhandian").equals(list.get(i).getZhandianmingcheng())){mudizhandian=list.get(i);a++;}}if(a==2){String[]number1=qishizhandian.getZhandianchehao().split("-");String[]number2=mudizhandian.getZhandianchehao().split("-");for(inti=0;i<number1.length;i++){for(intj=0;j<number2.length;j++){if(number1[i].equals(number2[j])){xinxi.add("乘坐");xinxi.add(number1[i]+"號(hào)車");xinxi.add("從"+qishizhandian.getZhandianmingcheng()+"出發(fā)");xinxi.add("到"+mudizhandian.getZhandianmingcheng()+"下車");}}}if(xinxi.size()==0){List<Zhandianxinxi>list1=newArrayList<>();for(intk=0;k<number1.length;k++){for(intl=0;l<number2.length;l++){where="zhandianchehaoLIKE'%"+number1[k]+"%'"+"ANDzhandianchehaoLIKE'%"+number2[l]+"%'";criteria.andCondition(where);list1=service1.selectPageExample(example,1,12);if(list1.size()!=0){xinxi.add("乘坐");xinxi.add(number1[k]+"號(hào)車");xinxi.add("從"+qishizhandian.getZhandianmingcheng()+"出發(fā)");xinxi.add("到"+mudizhandian.getZhandianmingcheng()+"下車");}}}if(list1.size()!=0){for(inth=0;h<list1.size();h++){xinxi.add(list1.get(h).getZhandianmingcheng());}}}}assign("list",xinxi);}4.1.5用戶查看修改個(gè)人信息功能用戶進(jìn)入個(gè)人信息頁面之后,后段通過用戶的id從數(shù)據(jù)庫中調(diào)取用戶的信息并返回到前端界面,用戶修改信息之后,前端將用戶信息傳入后端,后端調(diào)用sql語句將以前的用戶信息刪除,再插入新的用戶信息。4.1.6用戶修改密碼功能用戶進(jìn)入修改密碼界面后,首先要先成功輸入兩次原密碼后才能輸入修改密碼4.2管理員模塊4.2.1增刪改查管理員信息功能管理員進(jìn)入界面后,可以執(zhí)行對(duì)管理員信息的增刪改查功能,如下圖所示。4.2.2增刪改查用戶信息功能管理員進(jìn)入界面后,可以執(zhí)行對(duì)用戶信息的增刪改查功能,如下圖所示。4.2.3增刪改查站臺(tái)信息功能管理員進(jìn)入界面后,可以執(zhí)行對(duì)站臺(tái)信息的增刪改查功能,如下圖所示4.2.4增刪改查公交車信息功能管理員進(jìn)入界面后,可以執(zhí)行對(duì)公交車信息的增刪改查功能,如下圖所示4.2.5公交線路增刪改查功能管理員進(jìn)入界面后,可以執(zhí)行對(duì)公交車線路信息的增刪改查功能,如下圖所示4.3分頁功能Java代碼StringviewSQL="rmationId,rmationTitle,rmationKits,rmationIssuer,"+"rmationVersion,rmationIssueTime,rmationSummary,rmationHead,"+"rmationType,rmationCommonNum,bbb.channelName,bbb.channelId,aaa.titleColor,"+"aaa.isConf,aaa.documentNo,aaa.transmitToEzsite,rmationModifyTime,aaa.orderCode,"+"rmationIssueOrg,rmationIsCommend,bbb.channelType,rmationIssuerId,"+"bbb.channelNeedCheckup,aaa.dossierStatus,bbb.channelNeedCheckupForModi,rmationValidType,"+"aaa.validBeginTime,aaa.validEndTime";if(request.getParameter("retrievalAction")!=null&&request.getParameter("retrievalAction").toString().equals("1")){viewSQL+=",rmationContent";}Stringrelation=request.getParameter("relation")==null?"":request.getParameter("relation");StringfromSQL="";if("1".equals(relation)){ fromSQL="manager.po.InformationPOaaajoinrmationChannelbbb,com.whir.ezoffice.relation.po.RelationDataPOrrr";}else{ fromSQL="manager.po.InformationPOaaajoinrmationChannelbbb";}StringwhereSQL="";StringmysqlnowString=newSimpleDateFormat("yyyy-MM-dd").format(Calendar.getInstance().getTime());//2013-09-03startif(CommonUtils.isEmpty(channelType)){ channelType="0";}if(CommonUtils.isEmpty(userDefine)){ userDefine="0";}whereSQL="whereaaa.domainId="+domainId+"andrmationStatus=0and(bbb.afficheChannelStatusisnullorbbb.afficheChannelStatus='0')";if("-1".equals(channelType)){whereSQL+="andbbb.channelType>0andbbb.userDefine=0";}else{whereSQL+="andbbb.channelType="+channelType;}if("1".equals(userDefine)){ whereSQL+="andbbb.channelType="+channelType;}MapvarMap=newHashMap();if(channelId!=null&&!"".equals(channelId)){ InformationChannelPOpo=channelBD.loadChannel(channelId); if(po.getIncludeChild()==1){ whereSQL=whereSQL+channelBD.getChannelById(channelId); }else{ whereSQL=whereSQL+"and(bbb.channelId=:channelIdoraaa.otherChannellike:channelId2)"; varMap.put("channelId",channelId); varMap.put("channelId2","%,"+channelId+",%"); }}if(title!=null&&!title.equals("")){whereSQL=whereSQL+"andrmationTitlelike:title";varMap.put("title","%"+title+"%");}if(key!=null&&!key.equals("")){whereSQL=whereSQL+"andrmationKeylike:key";varMap.put("key","%"+key+"%");}if(subtitle!=null&&!subtitle.equals("")){whereSQL=whereSQL+"andrmationSubTitlelike:subtitle";varMap.put("subtitle","%"+subtitle+"%");}if(searchIssuerName!=null&&!searchIssuerName.equals("")){ whereSQL=whereSQL+"andrmationIssuerlike:searchIssuerName";varMap.put("searchIssuerName","%"+searchIssuerName+"%");}if(searchOrgName!=null&&!searchOrgName.equals("")){ndaaa.issueOrgIdStringlike:searchOrgId";varMap.put("searchOrgId","%$"+searchOrgId+"$%");}if(append!=null&&!append.equals("")){whereSQL=whereSQL+"and(selectcount(*)from"+"manager.po.InformationAccessoryPOccc"+"whereccc.accessoryNamelike:append"+"andrmationId=rmationId)>0";varMap.put("append","%"+append+"%");}if(startDate!=null&&!startDate.equals("")){ whereSQL=whereSQL+"andrmationIssueTime>=:startDate"; varMap.put("startDate",sdf.parse(startDate+"00:00:00"));}if(endDate!=null&&!endDate.equals("")){ whereSQL=whereSQL+"andrmationIssueTime<=:endDate"; varMap.put("endDate",sdf.parse(endDate+"23:59:59"));}StringorderSQL="orderbyaaa.orderCodedesc,casewhenrmationModifyTimeisnullthenrmationIssueTimeelsermationModifyTimeenddesc";StringorderByFieldName=request.getParameter("orderByFieldName")!=null?request.getParameter("orderByFieldName"):"";StringorderByType=request.getParameter("orderByType")!=null?request.getParameter("orderByType"):""; if(orderByFieldName!=null&&!"".equals(orderByFieldName)){ orderSQL="orderbyaaa."+orderByFieldName+""+orderByType;}// StringlistType=request.getParameter("listType"); intpageSize=CommonUtils.getUserPageSize(request);// if(listType!=null&&listType.equals("1")){// pageSize=30;// } intcurrentPage=0;if(request.getParameter("startPage")!=null){ currentPage=Integer.parseInt(request.getParameter("startPage"));}if("1".equals(relation)){ StringinformationI
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年春合肥市安居苑小學(xué)教育集團(tuán)教師招聘若干名筆試參考題庫及答案解析
- 2026重慶同茂小學(xué)校公開招聘編外教師2人筆試模擬試題及答案解析
- 2026四川大學(xué)華西醫(yī)院細(xì)胞工程與免疫治療研究室博士后招聘筆試模擬試題及答案解析
- 2026溫州甌??萍籍a(chǎn)業(yè)發(fā)展集團(tuán)有限公司及下屬子公司面向社會(huì)招聘工作人員筆試參考題庫及答案解析
- 2026湖南懷化市溆浦縣社會(huì)保險(xiǎn)服務(wù)中心公益性崗位招聘筆試備考題庫及答案解析
- 2026年戲劇表演基礎(chǔ)訓(xùn)練培訓(xùn)
- 2026首都體育學(xué)院人才引進(jìn)10人 (第一批)考試備考題庫及答案解析
- 2026新疆和田人力資源管理服務(wù)中心有限責(zé)任公司及和田佰安人力資源有限責(zé)任公司招聘10人筆試備考試題及答案解析
- 2026年物流行業(yè)倉儲(chǔ)管理實(shí)務(wù)
- 2026天津財(cái)經(jīng)大學(xué)第一批招聘7人 (高層次人才崗位)筆試備考試題及答案解析
- 2025年高純石墨碳材行業(yè)研究報(bào)告及未來行業(yè)發(fā)展趨勢(shì)預(yù)測(cè)
- 2025至2030中國超高鎳正極材料市場(chǎng)經(jīng)營格局與未來銷售前景預(yù)測(cè)報(bào)告
- 2025至2030中國立體定向儀行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 代辦煙花爆竹經(jīng)營許可證協(xié)議合同
- 中考語文文言文150個(gè)實(shí)詞及虛詞默寫表(含答案)
- 國企員工總額管理辦法
- 企業(yè)級(jí)AI大模型平臺(tái)落地框架
- 常見傳染病的預(yù)防與護(hù)理
- 蘇教版六年級(jí)數(shù)學(xué)上冊(cè)全冊(cè)知識(shí)點(diǎn)歸納(全梳理)
- 2025年版?zhèn)€人與公司居間合同范例
- 中鐵物資采購?fù)稑?biāo)
評(píng)論
0/150
提交評(píng)論