出租車公司車輛管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
出租車公司車輛管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
出租車公司車輛管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
出租車公司車輛管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
出租車公司車輛管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

緒論本章主要是對課題的選題背景與系統(tǒng)開發(fā)的目標(biāo)進(jìn)行了詳細(xì)描述。1.1課題的選題背景現(xiàn)在我們的社會(huì)生產(chǎn)能力變得越來越強(qiáng)、科學(xué)技術(shù)也在進(jìn)步、人們的知識(shí)積累也變得越來越多、還有市場競爭愈演愈烈,人們對信息的認(rèn)識(shí)已經(jīng)發(fā)生了很大的變化。信息是人類社會(huì)的三大資源之一。它和物質(zhì)、能源并列?,F(xiàn)在我們國家的改革開放要逐步擴(kuò)大在這個(gè)環(huán)境下,我們應(yīng)該要緊緊抓住機(jī)遇,利用好自己的所學(xué)習(xí)的知識(shí),要做好開發(fā)一個(gè)系統(tǒng)的基礎(chǔ)工作,去開發(fā)一個(gè)比較先進(jìn)的應(yīng)用系統(tǒng),為我國信息化建設(shè)去添磚加瓦。

在最近的20年間,我們的社會(huì)的節(jié)奏越來越快。出于要把服務(wù)的質(zhì)量提升的目的,很多大型的出租車公司搭建了自己的信息管理系統(tǒng)。有停車系統(tǒng)、訂車系統(tǒng)等。越來越多的出租車公司已經(jīng)有了數(shù)字化管理的概念。結(jié)合現(xiàn)在的網(wǎng)絡(luò)信息的技術(shù)和出租車管理的概念,新舊結(jié)合著去對出租車管理。用軟件信息技術(shù)來去提升出租車公司的管理手段,并且靠此來增強(qiáng)出租車公司的綜合實(shí)力。用信息化去改變?nèi)藗兊某鲂校シ?wù)城市里面的廣大租客,還可以提高出租車公司的工作質(zhì)量還有效率。租戶還有出租車車輛是出租車公司非常重要的部分,所以想要去提高公司的效益就要從它們?nèi)胧?,特別是對它們的管理。這會(huì)成為不可缺少的至關(guān)重要的一部分,本系統(tǒng)就是為了去管理它們而進(jìn)行開發(fā)的。本系統(tǒng)對使出租管理能夠變得更加的方便和快捷,讓管理變得系統(tǒng)化,增高企業(yè)管理效率。1.2系統(tǒng)開發(fā)的目標(biāo)我的系統(tǒng)開發(fā)的目標(biāo)是可以使出租車公司管理車輛變得更加方便,出租車公司能用系統(tǒng)存儲(chǔ)租戶還有車輛的信息,能夠?qū)@些信息進(jìn)行修改能夠找出租戶的詳細(xì)信息,還能夠查出公司車輛,對公司車輛進(jìn)行維護(hù)等。實(shí)現(xiàn)由傳統(tǒng)的手工化向信息化的轉(zhuǎn)變。

開發(fā)環(huán)境和相關(guān)技術(shù)簡介本章主要是寫了本系統(tǒng)的開發(fā)環(huán)境,并且也對系統(tǒng)所用的技術(shù)進(jìn)行了簡要的介紹。2.1開發(fā)環(huán)境硬件環(huán)境:聯(lián)想筆記本電腦軟件環(huán)境:操作系統(tǒng)Windows10操作系統(tǒng)EclipseJDK:1.8Tomcat服務(wù)器MySQL:14.14。本系統(tǒng)用到的技術(shù)有Maven:3.52、MyBatis與JSP。2.2相關(guān)技術(shù)簡介本節(jié)詳細(xì)寫了MySQL、MVC、MyBatis與JSP的簡介。2.2.1MySQL簡介首先為什么叫MySQL,據(jù)說是有很多的庫和工具帶帶有超過10年的My前綴,還有一種說法是MySQL的初創(chuàng)者之一的女兒叫My。不過哪一種說法是真的誰都不知道,到了現(xiàn)在它也還是個(gè)謎。雖然MySQL的功能并不算特別強(qiáng)大,但是由于它是開源的,所以它的傳播的范圍非常廣,有許許多多的人都知道這個(gè)數(shù)據(jù)庫??梢娝且环N傳奇的數(shù)據(jù)庫。早在1979年MySQL就被一個(gè)名字叫MontyWidenius的人設(shè)計(jì)出來了。當(dāng)時(shí)還是一個(gè)報(bào)表工具。后來有人用C語言把它重寫了,放在了Unix平臺(tái)上。那時(shí)候它僅僅是一個(gè)存儲(chǔ)引擎。它叫Unireg。這時(shí)候的Oracle還是萌芽階段,而另一個(gè)SQLServer連影子都找不到在哪。2.2.2MVC簡介什么是MVC?簡單的說就是將網(wǎng)站源碼分類、分層。MVC分別表示模型、視圖與控制器。簡述一下MVC設(shè)計(jì)模式的組成:1.M(Model)模型:處理業(yè)務(wù)邏輯,對應(yīng)組件是JavaBean(Java類);2.V(View)視圖層:顯示查詢結(jié)果、收集用戶數(shù)據(jù),對應(yīng)組件是jsp或html文件;3.C(Controller)控制器層:用來接收view端用戶的輸入的數(shù)據(jù)把這數(shù)據(jù)再送給Model;MVC的模式如圖2-1所示。圖2-1MVC模式2.2.3MyBatis簡介 MyBatis的前身是iBATIS,iBATIS于2002年由ClintonBegin創(chuàng)建。MyBatis3是iBATIS的全新設(shè)計(jì),支持注解和Mapper(映射器)。 MyBatis是一個(gè)優(yōu)秀的框架,它支持很多功能包括定制化SQL高級(jí)映射等?,F(xiàn)在有非常多的框架,為什么MyBatis卻很多人使用,原因有以下幾點(diǎn):MyBatis消去了很多的JDBC的重復(fù)的代碼 JDBC是需要通過API來對關(guān)系型的數(shù)據(jù)庫進(jìn)行操作的并且它需要寫大量的代碼去操作。但是如果你使用MyBatis的話會(huì)就會(huì)變得省事的多。用它來操作數(shù)據(jù)庫需要以下的三步: 下面我舉的列子是插入操作的列子: 第一步:配置SQL語句在SQLMapper的映射配置的文件里面,文件名字為StudentMapper.xml <insertid="insertStudent"parameterType="Student"> INSERTINTOSTUDENTS(ID,NAME,EMAIL) VALUES(#{id},#{name},#{email}) </insert> 第二步:創(chuàng)建一個(gè)StudentMapper接口 //底層通過動(dòng)態(tài)代理實(shí)現(xiàn) publicinterfaceStudentMapper{ voidinsertStudent(Studentstudent); } 注意:接口的實(shí)現(xiàn)由框架幫我們自動(dòng)生成 第三步:編寫java代碼完成插入操作 SqlSessionsession=getSqlSessionFactory().openSession(); StudentMappermapper=session.getMapper(StudentMapper.class); mapper.insertStudent(student); mit(); 2.學(xué)習(xí)MyBatis是比較容易的。 3.MyBatis和數(shù)據(jù)庫是比較容易協(xié)調(diào)工作的。 4.SQL語句是被MyBatis接收的。 5.MyBatis是可以支持Spring框架的。 6.MyBatis是可以支持第三方緩存類庫的。 7.MyBatis是有比較好的性能的。2.2.4JSP簡介 JSP全名是叫做JavaServerPages,它是一種動(dòng)態(tài)的網(wǎng)頁的技術(shù)標(biāo)準(zhǔn),有Sun公司主導(dǎo)并且創(chuàng)建的。用JSP寫動(dòng)態(tài)的HTML網(wǎng)頁,經(jīng)過Servlet容器解釋執(zhí)行。在網(wǎng)絡(luò)服務(wù)器上可以部署JSP,來去響應(yīng)客戶端發(fā)來的請求,然后產(chǎn)生HTML或者XML等等格式文檔的Web的網(wǎng)頁,最后再返回給客戶端。JSP是把Java代碼放入了靜態(tài)的HTML頁面里面,實(shí)現(xiàn)了動(dòng)靜結(jié)合??梢栽陟o態(tài)頁面里面動(dòng)態(tài)的生成內(nèi)容。把靜態(tài)頁面活化。JSP一共有9個(gè)隱含對象可以用到request、response、pageContext、session、application、config、out、page與exception對象。

需求獲取及分析本章主要包含了項(xiàng)目的可行性分析其中包括經(jīng)濟(jì)、技術(shù)、社會(huì)的可行性分析,除此之外還有需求定義與業(yè)務(wù)分析。引言根據(jù)現(xiàn)在的數(shù)據(jù)顯示,在最近的幾年之中我國的出租車用戶的數(shù)目呈現(xiàn)顯著上升的趨勢。在19年的上半年的時(shí)候,出租車用戶的人數(shù)已經(jīng)有了3億多人,這是多么恐怖并且龐大的一個(gè)數(shù)字啊。比18年的時(shí)候多了600多萬。雖然最近幾年的增長速度放緩了一點(diǎn),但是數(shù)量還是相當(dāng)?shù)目捎^。并且伴隨著我國的互聯(lián)網(wǎng)的蓬勃發(fā)展,人們在網(wǎng)上進(jìn)行出租打車的人數(shù)越來越多。出租車的需求也相應(yīng)的變的越來越大。與此同時(shí)對這些車輛進(jìn)行管理就成了難題?,F(xiàn)在的出租車市場,基本的出租車管理職責(zé)都不在政府的身上都是在出租車公司自己的身上。從國內(nèi)外的很多城市對出租車的管理經(jīng)驗(yàn)上我們可以進(jìn)行借鑒。我們需要把傳統(tǒng)的出租車管理方式將其與當(dāng)今信息技術(shù)結(jié)合起來以此能夠去提升出租車公司的服務(wù)質(zhì)量并且能夠增加出租車公司的經(jīng)濟(jì)效益。我的畢業(yè)設(shè)計(jì)出租車公司車輛管理系統(tǒng)是是根據(jù)目前的現(xiàn)狀研發(fā)的系統(tǒng),我的系統(tǒng)可以滿足記錄租戶的基本信息、租戶信息的管理、出租車輛管理的功能。項(xiàng)目可行性可行性分析就是用來研究項(xiàng)目是否可以進(jìn)行下去。包括研究技術(shù)與經(jīng)濟(jì)的可行性還有社會(huì)的科學(xué)性等等。它是一門科學(xué)。經(jīng)濟(jì)可行性因?yàn)槲业南到y(tǒng)是一個(gè)非常小的出租車公司車輛管理系統(tǒng),對這個(gè)系統(tǒng)進(jìn)行開發(fā)的時(shí)候只需要一臺(tái)筆記本電腦就行?;ǖ腻X非常的少。系統(tǒng)的開發(fā)進(jìn)行的步驟不是特別繁雜,它所進(jìn)行的操作也比較簡單且容易。本系統(tǒng)在開發(fā)過程中,是由我一個(gè)人獨(dú)立開發(fā),用了差不多一個(gè)月的時(shí)間,所需成本費(fèi)用主要是人工的費(fèi)用,其次還有有計(jì)算機(jī)和軟件等開發(fā)的成本。經(jīng)濟(jì)上的合理性:在人員方面:開發(fā)人員有1個(gè)人,開發(fā)本軟件如果是網(wǎng)絡(luò)開發(fā)的技術(shù)人員最多1個(gè)月,開發(fā)費(fèi)用一共差不多是2000元上下。在系統(tǒng)方面:一臺(tái)聯(lián)想筆記本電腦4000與,我所用的操作系統(tǒng)是Windows10另外在加上MicrosoftOffice軟件加起來差不多就是5000元上下。另一方面其實(shí)計(jì)算機(jī)和軟件可以反復(fù)的進(jìn)行使用?,F(xiàn)在的WEB系統(tǒng)開發(fā)所需要價(jià)格一般都是上10萬或者是幾十萬得,那么這時(shí)候自己去開發(fā)一個(gè)系統(tǒng)就會(huì)省非常大的一筆錢,自己設(shè)計(jì)系統(tǒng)還能夠滿足要求,并且擁有源碼以后也可以對系統(tǒng)進(jìn)行擴(kuò)展。技術(shù)可行性因?yàn)楸鞠到y(tǒng)是小型的出租車公司車輛管理系統(tǒng),采用的是B/S模式,在系統(tǒng)中使用MVC模式,開發(fā)難度比較低。在仔細(xì)思考斟酌之后,我最后決定采用MyBatis和MVC模式。數(shù)據(jù)庫方面我則選用了MySQL進(jìn)行設(shè)計(jì)。MVC模式的特點(diǎn)它的好處有下面3點(diǎn):1.它們各自有各自的功能,耦合性低。2.在一次開發(fā)中它們獨(dú)立完成自己的事情。3.組件是可以進(jìn)行重復(fù)利用的。 MyBatis是一個(gè)優(yōu)秀的框架,它支持很多功能包括定制化SQL高級(jí)映射等。現(xiàn)在有非常多的框架,為什么MyBatis卻很多人使用,原因有以下幾點(diǎn):1.MyBatis消去了很多的JDBC的重復(fù)的代碼 JDBC是需要通過API來對關(guān)系型的數(shù)據(jù)庫進(jìn)行操作的并且它需要寫大量的代碼去操作。但是如果你使用MyBatis的話會(huì)就會(huì)變得省事的多。用它來操作數(shù)據(jù)庫需要以下的三步: 下面我舉的列子是插入操作的列子: 第一步:配置SQL語句在SQLMapper的映射配置的文件里面,文件名字為StudentMapper.xml <insertid="insertStudent"parameterType="Student"> INSERTINTOSTUDENTS(ID,NAME,EMAIL) VALUES(#{id},#{name},#{email}) </insert> 第二步:創(chuàng)建一個(gè)StudentMapper接口 //底層通過動(dòng)態(tài)代理實(shí)現(xiàn) publicinterfaceStudentMapper{ voidinsertStudent(Studentstudent); } 注意:接口的實(shí)現(xiàn)由框架幫我們自動(dòng)生成 第三步:編寫java代碼完成插入操作 SqlSessionsession=getSqlSessionFactory().openSession(); StudentMappermapper=session.getMapper(StudentMapper.class); mapper.insertStudent(student); mit(); 2.學(xué)習(xí)MyBatis是比較容易的。 3.MyBatis和數(shù)據(jù)庫是比較容易協(xié)調(diào)工作的。 4.SQL語句是被MyBatis接收的。 5.MyBatis是可以支持Spring框架的。 6.MyBatis是可以支持第三方緩存類庫的。 7.MyBatis是有比較好的性能的。因此MyBatis+MVC成為此次出租車公司車輛管理系統(tǒng)的首選方案所以該開發(fā)系統(tǒng)具有技術(shù)可行性。社會(huì)可行性根據(jù)現(xiàn)在的數(shù)據(jù)顯示,在最近的幾年之中我國的出租車用戶的數(shù)目呈現(xiàn)顯著上升的趨勢。在19年的上半年的時(shí)候,出租車用戶的人數(shù)已經(jīng)有了3億多人,這是多么恐怖并且龐大的一個(gè)數(shù)字啊。比18年的時(shí)候多了600多萬。雖然最近幾年的增長速度放緩了一點(diǎn),但是數(shù)量還是相當(dāng)?shù)目捎^。并且伴隨著我國的互聯(lián)網(wǎng)的蓬勃發(fā)展,人們在網(wǎng)上進(jìn)行出租打車的人數(shù)是越來越多。出租車的需求也相應(yīng)的變的越來越大。出租車公司對車輛進(jìn)行純手工的管理工作量太大、任務(wù)繁重幾乎是不可能實(shí)現(xiàn)的任務(wù)。那么現(xiàn)在去建立一個(gè)出租車公司車輛管理系統(tǒng)就顯得必不可少。我們社會(huì)的軟件行業(yè)發(fā)展飛速,出租車管理信息系統(tǒng)也相應(yīng)的變得越來越多,功能也變得越來越健全。由此看來出租車公司車輛管理系統(tǒng)的前景明朗,會(huì)有很多公司需要本系統(tǒng)。需求定義本系統(tǒng)是一種集中統(tǒng)一規(guī)劃的數(shù)據(jù)庫管理模式。由管理員對公司車輛信息與租戶信息進(jìn)行維護(hù),對當(dāng)日出租的車輛可以直觀管理。這個(gè)系統(tǒng)會(huì)非常方便出租車公司的而且會(huì)使出租車公司可以增加很多經(jīng)濟(jì)效益。功能需求管理員進(jìn)入系統(tǒng)中對每日出租的車輛進(jìn)行統(tǒng)計(jì);記錄車輛新舊程度,車輛的車型;增加公司新買車輛刪除報(bào)廢車輛,將信息更新到系統(tǒng);按照車型劃分租車費(fèi)用,綁定租車人;載入并記錄租車用戶的詳細(xì)資料;可以查詢評(píng)論表對評(píng)論進(jìn)行增加,刪除。租戶進(jìn)入系統(tǒng)中可以查詢出租車公司的車輛信息,也可以發(fā)表評(píng)論。還可以修改自己用戶信息。1.租戶管理a.功能說明:在系統(tǒng)管理員登錄完成之后,可以能夠進(jìn)入租戶管理頁面,可以對現(xiàn)有租戶進(jìn)行增、刪、改、還可新建租戶。b.參與者:管理員c.功能用例圖如圖3-1所示。圖3-1租戶管理用例圖d.用戶描述:表3-1租戶管理用例描述用例編號(hào):album-01用例名:租戶管理執(zhí)行者:管理員前置條件:存在管理員基本事件流:管理員進(jìn)入租戶管理點(diǎn)擊“添加”鏈接,進(jìn)入添加租戶界面在新建租戶界面輸入租戶名新建租戶在租戶管理界面對選擇已有租戶進(jìn)行管理(刪除、修改)管理員查看現(xiàn)有租戶的信息情況其他事件流:無異常事件流:無字段列表:租戶名、租戶電話、租戶生日等管理員業(yè)務(wù)規(guī)則:只有管理員才有對租戶進(jìn)行管理的權(quán)限非功能需求:無設(shè)計(jì)約束:無2.車輛管理a.功能說明:在系統(tǒng)管理員登錄完成之后,可以能夠進(jìn)入車輛管理頁面,可以對現(xiàn)有車輛租戶進(jìn)行增、刪、改、還可新建車輛。b.參與者:管理員c.功能用例圖如圖3-2所示。圖3-2車輛管理用例圖d.用戶描述:表3-2車輛管理用例描述用例編號(hào):album-02用例名:車輛管理執(zhí)行者:管理員前置條件:存在管理員基本事件流:管理員進(jìn)入車輛管理點(diǎn)擊“添加”鏈接,進(jìn)入添加車輛界面在新建車輛界面輸入車輛信息新建車輛在車輛管理界面對選擇已有車輛進(jìn)行管理(刪除、修改)管理員查看現(xiàn)有車輛的信息情況其他事件流:無異常事件流:無字段列表:車輛ID、車輛類別、車輛年份、車輛租金等管理員業(yè)務(wù)規(guī)則:只有管理員才有對車輛進(jìn)行管理的權(quán)限非功能需求:無設(shè)計(jì)約束:無3.出租表管理a.功能說明:在系統(tǒng)管理員登錄完成之后,可以能夠進(jìn)入出租表管理頁面,可以對現(xiàn)有車輛對應(yīng)租戶關(guān)系進(jìn)行增刪改查b.參與者:管理員c.功能用例圖如圖3-3所示。圖3-3出租表管理用例圖d.用戶描述:表3-3出租表管理用例描述用例編號(hào):album-03用例名:出租表管理執(zhí)行者:管理員前置條件:存在管理員基本事件流:管理員進(jìn)入出租表點(diǎn)擊“添加”鏈接,進(jìn)入添加出租關(guān)系界面在新建出租關(guān)系界面輸入車輛ID與租戶ID在出租表界面對選擇已有關(guān)系進(jìn)行管理(刪除、修改)管理員查看現(xiàn)有出租表的信息情況其他事件流:無異常事件流:無字段列表:車輛ID、租戶ID管理員業(yè)務(wù)規(guī)則:只有管理員才有對出租表進(jìn)行管理的權(quán)限非功能需求:無設(shè)計(jì)約束:無4.評(píng)論管理功能說明:在系統(tǒng)管理員登錄完成之后,可以能夠進(jìn)入評(píng)論管理頁面,可以對現(xiàn)有評(píng)論進(jìn)行刪除,也可以發(fā)表評(píng)論b.參與者:管理員c.功能用例圖如圖3-4所示。圖3-4評(píng)論管理用例圖d.用戶描述:表3-4評(píng)論管理用例描述用例編號(hào):album-04用例名:評(píng)論管理執(zhí)行者:管理員前置條件:存在管理員基本事件流:管理員進(jìn)入評(píng)論管理點(diǎn)擊“添加”鏈接,進(jìn)入添加評(píng)論界面在新建評(píng)論界面輸入評(píng)論時(shí)間,狀態(tài),評(píng)論內(nèi)容與租戶ID在評(píng)論管理界面對評(píng)論進(jìn)行刪除、發(fā)布管理員查看現(xiàn)有評(píng)論的信息情況其他事件流:無異常事件流:無字段列表:評(píng)論時(shí)間、狀態(tài)、評(píng)論內(nèi)容、租戶ID管理員業(yè)務(wù)規(guī)則:只有管理員才有對評(píng)論進(jìn)行管理的權(quán)限非功能需求:無設(shè)計(jì)約束:無5.車輛查詢a.功能說明:在租戶登錄完成之后,可以能夠進(jìn)入車輛查詢頁面,可以對現(xiàn)有車輛進(jìn)行查看b.參與者:租戶c.功能用例圖如圖3-5所示。圖3-5車輛查詢用例圖d.用戶描述:表3-5車輛查詢用例描述用例編號(hào):album-05用例名:車輛查詢執(zhí)行者:租戶前置條件:存在租戶基本事件流:租戶進(jìn)入車輛查詢管理員查看現(xiàn)有車輛的信息情況其他事件流:無異常事件流:無字段列表:租戶業(yè)務(wù)規(guī)則:租戶有對車輛進(jìn)行查詢的權(quán)限非功能需求:無設(shè)計(jì)約束:無6.發(fā)表評(píng)論a.功能說明:在租戶登錄完成之后,可以能夠進(jìn)入發(fā)表評(píng)論頁面,可以對現(xiàn)有評(píng)論進(jìn)行查看,也可以發(fā)表評(píng)論b.參與者:租戶c.功能用例圖圖3-6發(fā)表評(píng)論用例圖d.用戶描述:表3-6發(fā)表評(píng)論用例描述用例編號(hào):album-06用例名:發(fā)表評(píng)論執(zhí)行者:租戶前置條件:存在租戶基本事件流:租戶進(jìn)入發(fā)表評(píng)論頁面點(diǎn)擊“發(fā)表評(píng)論”鏈接,進(jìn)入添加評(píng)論界面在新建評(píng)論界面輸入評(píng)論時(shí)間,狀態(tài),評(píng)論內(nèi)容與租戶ID管理員查看現(xiàn)有評(píng)論的信息情況其他事件流:無異常事件流:無字段列表:評(píng)論時(shí)間、狀態(tài)、評(píng)論內(nèi)容、租戶ID租戶業(yè)務(wù)規(guī)則:租戶有發(fā)表評(píng)論的權(quán)限非功能需求:無設(shè)計(jì)約束:無性能需求精度、時(shí)間特性、適應(yīng)性等都是要在性能里面的。1.精度方面我的系統(tǒng)是一個(gè)簡單的小系統(tǒng),但是因?yàn)閿?shù)據(jù)比較多,系統(tǒng)里面的每一個(gè)操作幾乎都要涉及到數(shù)據(jù)庫,對數(shù)據(jù)庫中的系統(tǒng)進(jìn)行操作。例如管理租戶信息,管理車輛信息等??偟膩碚f,我的系統(tǒng)用的是非常簡單的數(shù)據(jù)庫的技術(shù)。并且對數(shù)據(jù)的精度的要求也不是那么的高,我的數(shù)據(jù)庫也不是那么的復(fù)雜,分析我系統(tǒng)的數(shù)據(jù),只要在精度的需求,能夠可以讓用戶的數(shù)據(jù)信息在輸入輸出還有傳輸?shù)臅r(shí)候不要出現(xiàn)錯(cuò)誤就行了。本系統(tǒng)數(shù)據(jù)雖然精度要求較低,但是本系統(tǒng)完全可以保證用戶數(shù)據(jù)的準(zhǔn)確性以及安全性,完全不會(huì)對用戶的使用造成障礙,影響用戶。2.時(shí)間特性方面本系統(tǒng)的數(shù)據(jù)庫相對于一般的大型軟件來說是小型且簡單的,可以說本系統(tǒng)的運(yùn)行在響應(yīng)的時(shí)間,處理的時(shí)間還有數(shù)據(jù)的操作上的性能是相對優(yōu)越的,而且因?yàn)閿?shù)據(jù)量小的原因,本系統(tǒng)在系統(tǒng)運(yùn)行上的時(shí)間和數(shù)據(jù)傳輸上時(shí)間耗時(shí)比較短一點(diǎn),應(yīng)該會(huì)讓用戶滿意。在時(shí)間花費(fèi)上面本系統(tǒng)耗時(shí)可以滿足用戶的需求。3.適應(yīng)性在系統(tǒng)完成開發(fā)后,用戶需要在PC端來進(jìn)行操作。在進(jìn)入登錄頁面后進(jìn)行登錄,如果沒有注冊則需要進(jìn)行注冊。進(jìn)入系統(tǒng)后可以進(jìn)入各種頁面完成功能。當(dāng)用戶的需求發(fā)生變化的時(shí)候,例如用戶想要的結(jié)果精度更高,用戶想要改變操作方式,用戶的運(yùn)行環(huán)境發(fā)生改變,甚至數(shù)據(jù)結(jié)構(gòu)或者其他軟件接口要是發(fā)生改變的時(shí)候,可以靈活的修改系統(tǒng)。4.其它方面系統(tǒng)要求安全性較高,對惡意的操作可以及時(shí)的進(jìn)行處理;用戶界面友好;系統(tǒng)靈活性好,能夠適應(yīng)需求的變更,能夠方便的進(jìn)行功能擴(kuò)展。3.4業(yè)務(wù)分析我的系統(tǒng)的業(yè)務(wù)有管理員業(yè)務(wù)流程與租戶業(yè)務(wù)流程。管理員登錄系統(tǒng)進(jìn)行車輛、用戶、出租表與評(píng)論的管理。普通租戶登錄系統(tǒng)進(jìn)行車輛查詢與評(píng)論發(fā)表。

第四章概要設(shè)計(jì)本階段主要涉及的是系統(tǒng)的體系結(jié)構(gòu)涉及,將給出系統(tǒng)的一個(gè)整體架構(gòu)涉及。這個(gè)階段是在系統(tǒng)的需求分析之后,對即將要進(jìn)行開發(fā)的系統(tǒng)進(jìn)行模塊的設(shè)計(jì)還有劃分,并且分析系統(tǒng)層次結(jié)構(gòu),明確各層之間應(yīng)該負(fù)責(zé)的邏輯功能。4.1系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)采用MyBatis+JSP實(shí)現(xiàn)。前端JSP頁面,用戶發(fā)起的Http請求到達(dá)Controller這一層后,Controller層請求業(yè)務(wù)模型,然后調(diào)用Service層,接下來就調(diào)用Dao層。在Sql語句執(zhí)行完成的時(shí)候,再慢慢的逐漸返回到Controller層,然后把Http返回給到用戶。用戶可以在Http的response中,拿到返回的值,對這些值進(jìn)行一些處理。如圖4-1所示。圖4-1系統(tǒng)體系結(jié)構(gòu)圖系統(tǒng)功能模塊結(jié)構(gòu)設(shè)計(jì)出租車車輛管理系統(tǒng)主要包括兩個(gè)子系統(tǒng):租戶子系統(tǒng)和管理子系統(tǒng)。租戶子系統(tǒng)主要包括租戶注冊模塊、租戶登錄驗(yàn)證模塊、租戶發(fā)表評(píng)論模塊。管理子系統(tǒng)主要包括租戶管理模塊,車輛管理模塊、出租表管理模塊。如圖4-2所示。圖4-2系統(tǒng)的功能模塊圖租戶子系統(tǒng)主要是租戶在瀏覽器上完成的功能,租戶注冊后,輸入用戶名和密碼后可以進(jìn)入系統(tǒng)查看車輛信息并發(fā)表評(píng)論。管理子系統(tǒng)可以對系統(tǒng)中的租戶類、車輛類、出租表類進(jìn)行管理。其中包括租戶和車輛的審核,車輛的增加、刪除和修改。出租車司機(jī)實(shí)體包含了編號(hào)、名稱、性別、真實(shí)姓名、狀態(tài)、注冊時(shí)間、生日等屬性。如圖4-3所示。圖4-3租戶實(shí)體及其屬性圖出租車實(shí)體包含了車輛ID、車型、年份、租戶ID、租金等屬性。如圖4-4所示。圖4-4出租車實(shí)體及其屬性圖本系統(tǒng)包括租戶、系統(tǒng)管理員和出租車實(shí)體。根據(jù)這些實(shí)體之間的關(guān)系一個(gè)系統(tǒng)管理員可以管理多個(gè)租戶與多個(gè)出租車。一個(gè)租戶可以租多個(gè)車輛。所以畫出全局E-R圖如圖4-5所示。圖4-5全局E-R圖系統(tǒng)功能模塊設(shè)計(jì)本系統(tǒng)有發(fā)表言論模塊、租戶管理模塊、車輛管理模塊、車輛查詢模塊、出租表管理模塊、評(píng)論管理模塊等。1.發(fā)表言論模塊系統(tǒng)對用戶進(jìn)行驗(yàn)證,包括用戶提交密碼驗(yàn)證、用戶狀態(tài)驗(yàn)證、用戶角色驗(yàn)證。驗(yàn)證失敗則要重新登錄,如果驗(yàn)證后用戶是租戶則可以在評(píng)論管理欄目發(fā)表評(píng)論。2.車輛查詢模塊系統(tǒng)對用戶進(jìn)行驗(yàn)證,包括用戶提交密碼驗(yàn)證、用戶狀態(tài)驗(yàn)證、用戶角色驗(yàn)證。驗(yàn)證失敗則要重新登錄,如果驗(yàn)證后用戶是租戶則可以在車輛查詢欄目查看車輛。3.租戶管理模塊系統(tǒng)對用戶進(jìn)行驗(yàn)證,包括用戶提交密碼驗(yàn)證、用戶狀態(tài)驗(yàn)證、用戶角色驗(yàn)證。驗(yàn)證失敗則要重新登錄,如果驗(yàn)證后用戶是管理員則可以在租戶管理欄目進(jìn)行對租戶的增刪改查。4.車輛管理模塊系統(tǒng)對用戶進(jìn)行驗(yàn)證,包括用戶提交密碼驗(yàn)證、用戶狀態(tài)驗(yàn)證、用戶角色驗(yàn)證。驗(yàn)證失敗則要重新登錄,如果驗(yàn)證后用戶是管理員則可以在車輛管理欄目進(jìn)行對車輛的增刪改查。5.出租表管理模塊系統(tǒng)對用戶進(jìn)行驗(yàn)證,包括用戶提交密碼驗(yàn)證、用戶狀態(tài)驗(yàn)證、用戶角色驗(yàn)證。驗(yàn)證失敗則要重新登錄,如果驗(yàn)證后用戶是管理員則可以在出租表管理欄目進(jìn)行對出租表的增刪。6.評(píng)論管理模塊系統(tǒng)對用戶進(jìn)行驗(yàn)證,包括用戶提交密碼驗(yàn)證、用戶狀態(tài)驗(yàn)證、用戶角色驗(yàn)證。驗(yàn)證失敗則要重新登錄,如果驗(yàn)證后用戶是管理員則可以在評(píng)論管理欄目進(jìn)行對評(píng)論的增刪。數(shù)據(jù)庫設(shè)計(jì)出租車車輛管理系統(tǒng)采用MySqlServer8.0數(shù)據(jù)庫。最近的一段時(shí)間MySQL5.7到了8.0的版本,Oracle的官方大幅度的跳過了MajorVersion的許多的版本號(hào),那么與之而來的就是MySQL8.0有很多的重大更新,大踏步的像企業(yè)級(jí)的數(shù)據(jù)庫前進(jìn),它可以支撐AtomicDDL,同時(shí)它還有完全的新的DataDictionary的設(shè)計(jì),還有完全不同的版本升級(jí),對InnoDB進(jìn)行了增強(qiáng),對賬戶的管理安全也進(jìn)行了加強(qiáng)?,F(xiàn)在的小版本也已經(jīng)到8.0.16,與此同時(shí)它的新的功能還在不斷的出現(xiàn)。4.4.1抽象數(shù)據(jù)對象我們大概的可以從業(yè)務(wù)還有系統(tǒng)功能的描述里面來抽象出來幾個(gè)數(shù)據(jù)集合,如:用戶(user)、車輛(driver)、評(píng)論(comment)、角色(role)。4.4.2數(shù)據(jù)庫設(shè)計(jì)命名規(guī)范1.表名命名規(guī)則我根據(jù)系統(tǒng)的數(shù)據(jù)模型把數(shù)據(jù)表分為用戶表、車輛表、評(píng)論表、用戶角色表、角色表等。根據(jù)與同的數(shù)據(jù)模型命名。2.表項(xiàng)命名規(guī)則代表表名的單詞或單詞簡寫作為字段名的開頭,命名中其他的單詞或簡寫間用‘_’間隔。4.4.3數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫邏輯設(shè)計(jì)主要就是說怎么樣在數(shù)據(jù)庫里面表示抽象的數(shù)據(jù),還有就是抽象的數(shù)據(jù)和數(shù)據(jù)庫表它們的關(guān)系。這里面包含有數(shù)據(jù)庫表的比較詳細(xì)的設(shè)計(jì)還有數(shù)據(jù)庫表中數(shù)據(jù)的獲取方式,抽象數(shù)據(jù)的類型還有數(shù)據(jù)庫表它們的對應(yīng)的關(guān)系。1.以下是匯總了數(shù)據(jù)庫的表名,具體如表4-1所示。表4-1數(shù)據(jù)庫表數(shù)據(jù)庫表名中文名文字說明base_user用戶表保存用戶信息driver車輛表保存車輛信息cms_comment評(píng)論表保存評(píng)論信息base_role角色表保存角色信息base_user_role用戶-角色表保存用戶-角色信息lease出租表保存車輛租戶關(guān)系用戶表保存了所有用戶的信息,包括管理員、租戶。用戶表中有一個(gè)角色字段用來區(qū)別這倆種用戶。角色表、用戶角色表倆表表結(jié)合可以為不同的用戶分配角色賦予權(quán)限。2.數(shù)據(jù)項(xiàng)。下面是寫了數(shù)據(jù)庫的表里面的字段的含義、主鍵、還有字段的類型。具體如表4-2所示。表4-2數(shù)據(jù)項(xiàng)表數(shù)據(jù)項(xiàng)編號(hào)數(shù)據(jù)項(xiàng)名稱數(shù)據(jù)項(xiàng)含義存儲(chǔ)結(jié)構(gòu)備注用戶D1-1id用戶IDbigint(20)主鍵(自增1)D1-2username用戶名varchar(255)D1-3password密碼varchar(255)D1-4telephone電話varchar(255)D1-5realname真實(shí)姓名varchar(255)D1-6gender性別varchar(255)D1-7birth用戶生日bigint(255)D1-8Register_time注冊時(shí)間bigint(20))D1-9status用戶狀態(tài)varchar(255)D1-10User_face用戶面貌varchar(255)數(shù)據(jù)項(xiàng)編號(hào)數(shù)據(jù)項(xiàng)名稱數(shù)據(jù)項(xiàng)含義存儲(chǔ)結(jié)構(gòu)備注評(píng)論D2-1id評(píng)論IDbigint(20)主鍵(自增1)D2-2content內(nèi)容text(0)D2-3comment_time評(píng)論時(shí)間bigint(20)D2-4status狀態(tài)varchar(255)D2-5User_id用戶IDbigint(20)外鍵數(shù)據(jù)項(xiàng)編號(hào)數(shù)據(jù)項(xiàng)名稱數(shù)據(jù)項(xiàng)含義存儲(chǔ)結(jié)構(gòu)備注車輛D3-1id車輛IDbigint(20)主鍵(自增1)D3-2type車型varchar(255)D3-3year年份int(11)D3-4rent租金bigint(11)D3-5User_id用戶IDbigint(20)外鍵數(shù)據(jù)項(xiàng)編號(hào)數(shù)據(jù)項(xiàng)名稱數(shù)據(jù)項(xiàng)含義存儲(chǔ)結(jié)構(gòu)備注角色D4-1id角色I(xiàn)Dbigint(20)主鍵D4-2name角色名varchar(255)數(shù)據(jù)項(xiàng)編號(hào)數(shù)據(jù)項(xiàng)名稱數(shù)據(jù)項(xiàng)含義存儲(chǔ)結(jié)構(gòu)備注出租D5-1idIDint(11)主鍵D5-2driver_id車輛IDbigint(20)外鍵D5-3user_id用戶IDbigint(20)外鍵數(shù)據(jù)項(xiàng)編號(hào)數(shù)據(jù)項(xiàng)名稱數(shù)據(jù)項(xiàng)含義存儲(chǔ)結(jié)構(gòu)備注用戶_角色D6-1idIDbigint(20)主鍵D6-2user_id用戶IDbigint(20)外鍵D6-3role_id角色I(xiàn)Dbigint(20)外鍵3.數(shù)據(jù)結(jié)構(gòu)該部分描述了抽象數(shù)據(jù)類型中用到的數(shù)據(jù)庫表中的字段。將抽象數(shù)據(jù)類型與數(shù)據(jù)庫表聯(lián)系起來。具體如表4-3所示。表4-3數(shù)據(jù)結(jié)構(gòu)表數(shù)據(jù)結(jié)構(gòu)名稱數(shù)據(jù)結(jié)構(gòu)含義組成base_user用戶D1-1,D1-2,D1-3,D1-4,D1-5,D1-6,D1-7,D1-8,D1-9,D1-10cms_comment評(píng)論D2-1,D2-2,D2-3,D2-4,D2-5,driver車輛D3-1,D3-2,D3-3,D3-4,D3-5base_role角色D4-1,D4-24.處理邏輯描述該部分描述了對抽象數(shù)據(jù)所涉及的操作包括增刪改查等,具體如表4-4所示。表4-4處理邏輯描述表處理編號(hào)處理功能處理過程PR-1用戶信息處理1:用戶信息的增、刪、改、查2:用戶審核PR-2評(píng)論信息處理1:評(píng)論信息的增、刪、查PR-3車輛信息處理1:車輛信息的增、刪、改、查5.數(shù)據(jù)采集下面主要是寫了數(shù)據(jù)庫里面包含的各種信息的獲取的方法。具體如表4-5、表4-6、表4-7所示。用戶的信息有用戶ID、用戶名、密碼、電話、真實(shí)姓名等,用戶信息的獲取方法如表4-5所示。表4-5用戶信息采集表功能名稱:用戶信息表存儲(chǔ)位置:用戶信息存儲(chǔ)組織:一個(gè)用戶一條記錄主鍵:用戶編號(hào)數(shù)據(jù)元素?cái)?shù)據(jù)采集方式說明用戶ID自動(dòng)采集主鍵,自增1用戶名人工采集必須輸入密碼人工采集必須輸入電話人工采集真實(shí)姓名人工采集性別人工采集生日人工采集注冊時(shí)間人工采集用戶狀態(tài)人工采集相關(guān)提供數(shù)據(jù)主要功能模塊:用戶管理、評(píng)論管理、車輛管理數(shù)據(jù)輸出接受主要功能模塊:用戶管理、評(píng)論管理、車輛管理修改記錄:評(píng)論信息包括評(píng)論ID、內(nèi)容、評(píng)論時(shí)間、狀態(tài)與用戶ID,評(píng)論信息的獲取方式如表4-6所示。表4-6評(píng)論信息采集表功能名稱:評(píng)論信息表存儲(chǔ)位置:評(píng)論信息存儲(chǔ)組織:一個(gè)評(píng)論一條記錄主鍵:評(píng)論編號(hào)數(shù)據(jù)元素?cái)?shù)據(jù)采集方式說明評(píng)論ID自動(dòng)采集主鍵,自增1內(nèi)容人工采集必須輸入評(píng)論時(shí)間自動(dòng)采集必須輸入狀態(tài)自動(dòng)采集必須輸入用戶ID人工采集必須輸入相關(guān)提供數(shù)據(jù)主要功能模塊:用戶管理、評(píng)論管理數(shù)據(jù)輸出接受主要功能模塊:用戶管理、評(píng)論管理修改記錄:車輛的信息包含車輛ID、車輛類型、車輛年份、車輛租金和租戶ID,車輛信息的獲取方式如表4-7所示。表4-7車輛信息采集表功能名稱:車輛信息表存儲(chǔ)位置:圖片信息存儲(chǔ)組織:一輛車記錄主鍵:車輛ID數(shù)據(jù)元素?cái)?shù)據(jù)采集方式說明車輛ID自動(dòng)采集主鍵,自增1車輛類型人工采集必須輸入車輛年份人工采集必須輸入車輛租金人工采集必須輸入租戶ID人工采集相關(guān)提供數(shù)據(jù)主要功能模塊:車輛管理數(shù)據(jù)輸出接受主要功能模塊:車輛管理修改記錄:

詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)本系統(tǒng)被分成了六個(gè)功能模塊,登錄模塊、注冊用戶的模塊、車輛管理模塊、用戶管理模塊、出租表管理模塊和評(píng)論管理模塊。每一個(gè)模塊都有它們對應(yīng)的自己的功能,這也讓本系統(tǒng)的結(jié)構(gòu)變得更加的清晰。5.1登錄模塊1.界面設(shè)計(jì)系統(tǒng)管理員登錄界面,在系統(tǒng)管理員登錄的時(shí)候先檢查賬號(hào)密碼是否為空,如果沒有填寫就提示賬號(hào)密碼不能為空,在檢查不為空的時(shí)候把數(shù)據(jù)提交給服務(wù)器,在數(shù)據(jù)庫里面查找用戶名與密碼是否正確,如果是系統(tǒng)管理員的話并且密碼正確的話則登錄成功,進(jìn)入系統(tǒng)管理員頁面,系統(tǒng)管理員可以進(jìn)行租戶管理、出租車車輛管理、出租表管理等操作,在進(jìn)行完成以上操作功能之后可以點(diǎn)擊右上角退出登錄退回到登錄頁面重新登錄。因?yàn)檫@個(gè)模塊會(huì)對登錄的信息進(jìn)行驗(yàn)證,這樣使得系統(tǒng)的內(nèi)部資料的安全性得到了保證。頁面如圖5-1所示。圖5-1登錄界面2.模塊內(nèi)主要算法的描述如圖5-2所示。圖5-2登錄模塊流程圖3.代碼主要如下Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password");Useruser=newUser(); user.setUsername(username); user.setPassword(password); UserServiceuserService=newUserService(); List<User>list=userService.findUer(user); if(list.isEmpty()){//判斷該用戶名密碼是否正確 request.getRequestDispatcher("login.jsp").forward(request,response); } else{ Useruser2=list.get(0); Longid=user2.getId(); UserRoleServiceuserRoleService=newUserRoleService(); List<UserRole>list2=userRoleService.findUerRole(id); HttpSessionsession=request.getSession(); session.setAttribute("user",user2); if(list2.size()==0){ System.out.println("0"); request.getRequestDispatcher("index1.jsp").forward(request,response); }else{ UserRoleuserRole=list2.get(0); Longid2=userRole.getRoleId(); RoleServiceroleService=newRoleService(); Rolerole=roleService.findById(id2); Stringname=role.getName(); System.out.println(name); if(name.equals("admin")){//判斷用戶是否是管理員 request.getRequestDispatcher("index.jsp").forward(request,response); }else{ request.getRequestDispatcher("index1.jsp").forward(request,response); } }5.2注冊用戶模塊1.界面設(shè)計(jì)此界面是用戶注冊界面,是對出租車租戶的基本信息進(jìn)行錄入操作,其中包括:用戶名、密碼、真實(shí)姓名、電話、性別、生日、注冊時(shí)間、狀態(tài)、用戶面貌等具體信息。在添加完成之后按注冊按鍵,系統(tǒng)會(huì)將輸入的用戶信息添加到數(shù)據(jù)庫里面,方便以后進(jìn)行別的操作。這個(gè)模塊是用來增加租戶信息,如果有新的租戶注冊的時(shí)后它能夠快速、準(zhǔn)確的將租戶的信息錄入到數(shù)據(jù)庫里面去,極大的方便了系統(tǒng)管理員的統(tǒng)一管理。注冊用戶的頁面如圖5-3所示。圖5-3注冊用戶界面2.模塊內(nèi)主要算法的描述如圖5-4所示。圖5-4用戶注冊模塊流程圖3.主要代碼如下HttpSessionsession=request.getSession(); Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); Stringtelephone=request.getParameter("telephone"); Stringrealname=request.getParameter("realname"); Stringgender=request.getParameter("gender"); Stringstatus=request.getParameter("status"); StringuserFace=request.getParameter("userFace"); Stringbirth=request.getParameter("birth");longbirth1=Long.parseLong(birth); StringregisterTime=request.getParameter("registerTime"); longregisterTime1=Long.parseLong(registerTime); user.setUsername(username); user.setPassword(password); user.setTelephone(telephone); user.setRealname(realname); user.setGender(gender); user.setStatus(status); user.setUserFace(userFace); user.setBirth(birth1); user.setRegisterTime(registerTime1); UserServiceuserService=newUserService(); List<User>b=userService.findUer(user); if(!b.isEmpty()){//判斷用戶是否已被注冊 session.setAttribute("msg","注冊失敗用戶名已經(jīng)存在"); request.getRequestDispatcher("register.jsp").forward(request,response); return; } intregister=userService.register(user); if(register==0){ session.setAttribute("msg","注冊失敗,請檢查注冊信息是否有誤"); request.getRequestDispatcher("register.jsp").forward(request,response); } else{ request.getRequestDispatcher("login.jsp").forward(request,response);}5.3車輛管理模塊1.界面設(shè)計(jì)這個(gè)界面是車輛管理功能的界面,系統(tǒng)管理員單擊主頁面的車輛管理框之后系統(tǒng)就會(huì)跳轉(zhuǎn)到此頁面,該界面能夠看到公司所有的車輛的信息。管理員如果需要,可以對車輛的信息進(jìn)行修改、刪除、增加等操作。車輛管理頁面如圖5-4所示。圖5-4車輛管理頁面2.模塊內(nèi)主要算法的描述如圖5-5所示。圖5-5車輛管理模塊流程圖3.代碼如下publicintinsert(Vehiclevehicle){//增加車輛 SqlSessionsession=Session.getSession(); VehicleMappervehicleMapper=session.getMapper(VehicleMapper.class); inti=vehicleMapper.insert(vehicle); returni; } publicList<Vehicle>findAllVehicle(){//查詢車輛 SqlSessionsession=Session.getSession(); VehicleMappervehicleMapper=session.getMapper(VehicleMapper.class); List<Vehicle>list=vehicleMapper.selectByExample(null); returnlist; } publicVehiclefindById(longid){ SqlSessionsession=Session.getSession(); VehicleMappervehicleMapper=session.getMapper(VehicleMapper.class); Vehiclevehicle=vehicleMapper.selectByPrimaryKey(id); returnvehicle; } publicintupdateVehicle(Vehiclevehicle,Vehiclevehicle2){//修改車輛信息 SqlSessionsession=Session.getSession(); VehicleMappervehicleMapper=session.getMapper(VehicleMapper.class); VehicleExamplevehicleExample=newVehicleExample(); Criteriacriteria=vehicleExample.createCriteria(); criteria.andRentEqualTo(vehicle.getRent()); criteria.andTypeEqualTo(vehicle.getType()); criteria.andUserIdEqualTo(vehicle.getUserId()); criteria.andYearEqualTo(vehicle.getYear()); inti=vehicleMapper.updateByExample(vehicle2,vehicleExample); returni; } publicvoiddeleteVehicle(Longid){//刪除車輛 SqlSessionsession=Session.getSession(); VehicleMappervehicleMapper=session.getMapper(VehicleMapper.class); vehicleMapper.deleteByPrimaryKey(id);}5.4用戶管理模塊1.界面設(shè)計(jì)此界面是用戶管理界面,該功能是用來記錄出租車租戶的信息,系統(tǒng)管理員在單擊主頁面的用戶管理框之后系統(tǒng)就會(huì)跳轉(zhuǎn)到該界面,在這個(gè)界面能夠看到所有注冊的用戶的信息。并根據(jù)用戶的需要,可以對用戶的信息進(jìn)行修改、刪除、增加等操作。用戶管理頁面如圖5-6所示。圖5-6用戶管理界面2.模塊內(nèi)主要算法的描述如圖5-7所示。圖5-7用戶管理模塊流程圖3.代碼如下publicintregister(Useruser){//增加用戶 SqlSessionsession=Session.getSession(); UserMapperuserMapper=session.getMapper(UserMapper.class); inti=userMapper.insert(user); returni; } publicList<User>findUer(Useruser){ SqlSessionsession=Session.getSession(); UserMapperuserMapper=session.getMapper(UserMapper.class); UserExampleuserExample=newUserExample(); com.briup.estore.bean.UserExample.Criteriacriteria=userExample.createCriteria(); criteria.andUsernameEqualTo(user.getUsername()); criteria.andPasswordEqualTo(user.getPassword()); List<User>list=userMapper.selectByExample(userExample); returnlist; } publicList<User>findAllUer(){//查詢用戶 SqlSessionsession=Session.getSession(); UserMapperuserMapper=session.getMapper(UserMapper.class); List<User>list=userMapper.selectByExample(null); returnlist; } publicintupdateUser(Useruser,Useruser2){//更新用戶 SqlSessionsession=Session.getSession(); UserMapperuserMapper=session.getMapper(UserMapper.class); UserExampleuserExample=newUserExample(); com.briup.estore.bean.UserExample.Criteriacriteria=userExample.createCriteria(); criteria.andUsernameEqualTo(user.getUsername()); criteria.andPasswordEqualTo(user.getPassword()); criteria.andBirthEqualTo(user.getBirth()); criteria.andGenderEqualTo(user.getGender()); criteria.andTelephoneEqualTo(user.getTelephone()); criteria.andRealnameEqualTo(user.getRealname()); criteria.andRegisterTimeEqualTo(user.getRegisterTime()); criteria.andStatusEqualTo(user.getStatus()); criteria.andUserFaceEqualTo(user.getUserFace()); inti=userMapper.updateByExample(user2,userExample); returni; } publicvoiddeleteUser(Longid){//刪除用戶 SqlSessionsession=Session.getSession(); UserMapperuserMapper=session.getMapper(UserMapper.class); userMapper.deleteByPrimaryKey(id); }5.5出租表管理模塊1.界面設(shè)計(jì)此界面是出租表管理界面,該功能是用來記錄車輛與租戶的關(guān)系,系統(tǒng)管理員在單擊主頁面的出租表管理框之后系統(tǒng)就會(huì)跳轉(zhuǎn)到該界面,這個(gè)界面可以看到所有出租信息,看到哪一輛車被哪一個(gè)租戶租走。并根據(jù)用戶的需要,可以對出租表的信息進(jìn)行刪除、增加等操作。出租表管理頁面如圖5-8所示。圖5-8出租表管理界面2.模塊內(nèi)主要算法的描述如圖5-9所示。圖5-9出租表管理模塊流程圖3.代碼如下publicintinsert(Leaselease){//增加出租表 SqlSessionsession=Session.getSession(); LeaseMapperleaseMapper=session.getMapper(LeaseMapper.class); inti=leaseMapper.insert(lease); returni; } publicList<Lease>findAllLease(Leaselease){//查詢出租表 SqlSessionsession=Session.getSession(); LeaseMapperleaseMapper=session.getMapper(LeaseMapper.class); List<Lease>list=leaseMapper.selectByExample(null); returnlist; } publicintupdateLease(Leaselease,Leaselease2){//更新出租表 SqlSessionsession=Session.getSession(); LeaseMapperleaseMapper=session.getMapper(LeaseMapper.class); LeaseExampleleaseExample=newLeaseExample(); Criteriacriteria=leaseExample.createCriteria(); criteria.andDriverIdEqualTo(lease.getDriverId()); criteria.andUserIdEqualTo(lease.getUserId()); inti=leaseMapper.updateByExample(lease2,leaseExample); returni; } publicvoiddeleteLease(Integerid){//刪除出租表 SqlSessionsession=Session.getSession(); LeaseMapperleaseMapper=session.getMapper(LeaseMapper.class); leaseMapper.deleteByPrimaryKey(id);}5.6評(píng)論管理模塊1.界面設(shè)計(jì)此界面是評(píng)論管理界面,該功能是用來記錄與管理用戶發(fā)表的評(píng)論,方便用戶與管理員之間的溝通,系統(tǒng)管理員在單擊主頁面的車輛管理框之后系統(tǒng)就會(huì)跳轉(zhuǎn)到該界面,在這個(gè)界面可以看到所有評(píng)論信息。并根據(jù)系統(tǒng)管理員的需要,可以對評(píng)論的信息進(jìn)行刪除、增加等操作。評(píng)論管理頁面如圖5-10所示。圖5-10評(píng)論管理界面2.模塊內(nèi)主要算法的描述如圖5-11所示圖5-11評(píng)論管理模塊流程圖3.代碼如下publicintinsert(Commentcomment){//發(fā)表評(píng)論 SqlSessionsession=Session.getSession(); CommentMappercommentMapper=session.getMapper(CommentMapper.class); inti=commentMapper.insert(comment); returni; } publicList<Comment>findAllComment(){//查詢評(píng)論 SqlSessionsession=Session.getSession(); CommentMappercommentMapper=session.getMapper(CommentMapper.class); List<Comment>list=commentMapper.selectByExampleWithBLOBs(null); returnlist; } publicvoiddeleteComment(Longid){//刪除評(píng)論 SqlSessionsession=Session.getSession(); CommentMappercommentMapper=session.getMapper(CommentMapper.class); commentMapper.deleteByPrimaryKey(id); }

系統(tǒng)測試本章是關(guān)于進(jìn)行系統(tǒng)測試的內(nèi)容,通過系統(tǒng)測試方案、系統(tǒng)測試環(huán)境及系統(tǒng)測試用例來進(jìn)行敘述。6.1系統(tǒng)測試方案在此系統(tǒng)中車輛管理,用戶管理,出租表管理,評(píng)論都是管理員操作的,而一般用戶只能操作查詢界面。1.進(jìn)入登錄界面后,你會(huì)看到倆個(gè)框,一個(gè)是用戶名的框而另一個(gè)是密碼的框。你要分別在里面輸入你自己的用戶名還有密碼,輸入完了之后你再點(diǎn)擊登錄,這個(gè)時(shí)候系統(tǒng)會(huì)自己檢測你的用戶名和密碼到底對不對,如果在數(shù)據(jù)庫里面找到的數(shù)據(jù)的話,并且如果你的身份為管理員的話那么就會(huì)跳轉(zhuǎn)到管理員的頁面,如果你的身份是普通的用戶的話那么就會(huì)跳到普通的用戶頁面。在進(jìn)行測試的時(shí)候輸入普通用戶的用戶名和密碼,點(diǎn)擊登錄后系統(tǒng)跳轉(zhuǎn)到到了普通的用戶頁面,此流程表示順利完成,測試成功。輸入系統(tǒng)管理員的賬號(hào)還有密碼再單擊了登錄的話跳到了系統(tǒng)管理員的頁面,如果這個(gè)過程順利完成了,那么測試成功。2.點(diǎn)擊車輛管理功能后,顯示所要車輛的基本信息,包括車輛的類型,年份,租金,租走本車的用戶ID。在車輛信息后面有刪除鍵,當(dāng)點(diǎn)擊刪除之后,系統(tǒng)會(huì)自動(dòng)將數(shù)據(jù)庫的此條記錄刪除中,頁面刷新后該條記錄消失,則測試成功。在頁面左上角有添加鍵。當(dāng)單擊添加之后進(jìn)入添加頁面,輸入完畢信息之后點(diǎn)擊添加。系統(tǒng)會(huì)自動(dòng)將您所輸入的信息添加到數(shù)據(jù)庫中,跳轉(zhuǎn)到車輛信息頁面當(dāng)添加的車輛信息出現(xiàn)時(shí),則測試成功。車輛信息后有修改鍵,單擊后,進(jìn)入修改頁面,輸入信息完畢后點(diǎn)擊修改,系統(tǒng)會(huì)自動(dòng)將您所輸入的信息添加到數(shù)據(jù)庫中,當(dāng)跳轉(zhuǎn)到車輛信息頁面后所修改信息的車輛發(fā)生變化,則測試成功。3.點(diǎn)擊用戶管理功能后,顯示所有用戶的基本信息,包括用戶的用戶名,密碼,電話,真實(shí)姓名,性別,生日,注冊時(shí)間,狀態(tài),用戶面貌。在用戶信息后面有刪除鍵,當(dāng)點(diǎn)擊刪除之后,系統(tǒng)會(huì)自動(dòng)將數(shù)據(jù)庫的此條記錄刪除中,頁面刷新后該條記錄消失,則測試成功。在頁面左上角有添加鍵。當(dāng)單擊添加之后進(jìn)入添加頁面,輸入完畢信息之后點(diǎn)擊添加。系統(tǒng)會(huì)自動(dòng)將您所輸入的有關(guān)用戶信息添加到數(shù)據(jù)庫中,跳轉(zhuǎn)到用戶信息頁面當(dāng)添加的用戶信息出現(xiàn)時(shí),則測試成功。4.點(diǎn)擊出租表管理功能后,顯示所有租戶與車輛關(guān)系的基本信息,包括車輛ID與租戶ID。在租戶與車輛關(guān)系信息后面有刪除鍵,當(dāng)點(diǎn)擊刪除之后,系統(tǒng)會(huì)自動(dòng)將數(shù)據(jù)庫的此條記錄刪除中,頁面刷新后該條記錄消失,則測試成功。在頁面左上角有添加鍵。當(dāng)單擊添加之后進(jìn)入添加頁面,輸入完畢信息之后點(diǎn)擊添加。系統(tǒng)會(huì)自動(dòng)將您所輸入的有關(guān)租戶與車輛關(guān)系的信息添加到數(shù)據(jù)庫中,跳轉(zhuǎn)到出租表信息頁面當(dāng)添加的租戶與車輛關(guān)系信息出現(xiàn)時(shí),則測試成功。5.點(diǎn)擊評(píng)論管理功能后,顯示所有評(píng)論的基本信息,包括評(píng)論時(shí)間,評(píng)論內(nèi)容,評(píng)論用戶,狀態(tài)。在評(píng)論信息后面有刪除鍵,當(dāng)點(diǎn)擊刪除之后,系統(tǒng)會(huì)自動(dòng)將數(shù)據(jù)庫的此條記錄刪除中,頁面刷新后該條記錄消失,則測試成功。在頁面左上角有添加鍵。當(dāng)單擊添加之后進(jìn)入添加頁面,輸入完畢信息之后點(diǎn)擊添加。系統(tǒng)會(huì)自動(dòng)將您所輸入的有關(guān)評(píng)論信息添加到數(shù)據(jù)庫中,跳轉(zhuǎn)到評(píng)論信息頁面當(dāng)添加的評(píng)論信息出現(xiàn)時(shí),則測試成功。6.2系統(tǒng)測試環(huán)境本系統(tǒng)的測試環(huán)境在硬件方面是需要一臺(tái)筆記本電腦,軟件方面它所使用的操作系統(tǒng)為Windows10操作系統(tǒng)。應(yīng)用軟件則包括Eclipse、Tomcat8.0和JDK1.8。本系統(tǒng)所用的測試方法為黑盒測試。6.3系統(tǒng)測試用例用戶登入系統(tǒng)的測試用例包括了操作描述、數(shù)據(jù)、預(yù)期結(jié)果、實(shí)際結(jié)果與測試狀態(tài)具體如表6-1所示。表6-1用戶登入系統(tǒng)測試用例功能特性用戶登錄入驗(yàn)證測試目的判斷登錄功能是否成功測試數(shù)據(jù)用戶名稱:1,密碼:1,用戶名稱:3,密碼3測試內(nèi)容操作描述數(shù)據(jù)預(yù)期結(jié)果實(shí)際結(jié)果測試狀態(tài)1輸入用戶姓名和密碼按登錄按鈕用戶姓名:1,密碼為空顯示警告信息“用戶名或密碼為空!”顯示警告信息“用戶名或密碼為空!”與預(yù)期結(jié)果相同2輸入用戶姓名和密碼按登錄按鈕用戶姓名為空,密碼:1顯示警告信息“用戶名或密碼為空!”顯示警告信息“用戶名或密碼為空!”與預(yù)期結(jié)果相同3輸入用戶姓名和密碼按登錄按鈕用戶姓名:1,密碼:2顯示警告信息“用戶名或密碼錯(cuò)誤”顯示警告信息“用戶名或密碼為空!”與預(yù)期結(jié)果相同4輸入用戶姓名和密碼按登錄按鈕用戶姓名:2,密碼:1顯示警告信息“用戶名或密碼錯(cuò)誤”顯示警告信息“用戶名或密碼為空!”與預(yù)期結(jié)果相同5輸入用戶姓名和密碼按登錄按鈕用戶姓名:1,密碼:1進(jìn)入管理員頁面進(jìn)入管理員頁面與預(yù)期結(jié)果相同6輸入用戶姓名和密碼按登錄按鈕用戶姓名:3,密碼:3進(jìn)入普通用戶頁面進(jìn)入普通用戶頁面與預(yù)期結(jié)果相同用戶注冊的測試包括了操作描述、數(shù)據(jù)、預(yù)期結(jié)果、實(shí)際結(jié)果與測試狀態(tài)具體如表6-2所示。表6-2用戶注冊測試用例功能特性用戶注冊驗(yàn)證測試目的判斷注冊功能是否成功測試數(shù)據(jù)用戶名稱:xue,密碼:123,用戶名稱:abc,密碼123測試內(nèi)容操作描述數(shù)據(jù)預(yù)期結(jié)果實(shí)際結(jié)果測試狀態(tài)1輸入用戶姓名和密碼等數(shù)據(jù)按注冊按鈕用戶姓名:xue,密碼為空顯示警告信息“用戶名或密碼為空!”顯示警告信息“用戶名或密碼為空!”與預(yù)期結(jié)果相同2輸入用戶姓名和密碼等數(shù)據(jù)按注冊按鈕用戶姓名為空,密碼:123顯示警告信息“用戶名或密碼為空!”顯示警告信息“用戶名或密碼為空!”與預(yù)期結(jié)果相同3輸入用戶姓名和密碼等數(shù)據(jù)按注冊按鈕用戶姓名:xue,密碼:123進(jìn)入登錄頁面進(jìn)入登錄頁面與預(yù)期結(jié)果相同4輸入用戶姓名和密碼等數(shù)據(jù)按注冊按鈕用戶姓名:xue,密碼:123顯示警告信息“用戶名已經(jīng)存在!”顯示警告信息“用戶名已經(jīng)存在!”與預(yù)期結(jié)果相同5輸入用戶姓名和密碼等數(shù)據(jù)按注冊按鈕用戶姓名:abc,密碼:123進(jìn)入登錄頁面進(jìn)入登錄頁面與預(yù)期結(jié)果相同總結(jié)通過這次的畢業(yè)設(shè)計(jì)我收獲非常多。不僅僅是知識(shí)方面還有在動(dòng)手能力以及獨(dú)立思考方面我都有了不小的提升。這次都畢業(yè)系統(tǒng)我采用了B/S模式,使我自己對于B/S模式有了非常深刻的理解。以前對于MyBatis也是只知道皮毛,經(jīng)過這一次的系統(tǒng)中的使用我已經(jīng)掌握了很多有關(guān)它的知識(shí),但是對于這項(xiàng)技術(shù)還有很多我所不熟悉的地方,這些都得在我以后的學(xué)習(xí)中去不斷努力學(xué)習(xí)。除此之外,我也了解到了有關(guān)Eclipse這個(gè)軟件的有關(guān)操作。在我自己歷經(jīng)了整個(gè)系統(tǒng)的開發(fā)過程后,我真切的體會(huì)到了軟件開發(fā)是一件非常難得事情,不僅需要?jiǎng)?chuàng)造性并且也需要嚴(yán)謹(jǐn)性。整個(gè)過程下了我收獲了非常多。在前期分析系統(tǒng)的需求的時(shí)候,這鍛煉了我獨(dú)立分析問題的能力,而在編碼的時(shí)候鍛煉了我的動(dòng)手能力。我相信這會(huì)對我今后產(chǎn)生非常大的積極作用。畢業(yè)設(shè)計(jì)真的是一件苦事情,需要設(shè)計(jì)系統(tǒng)寫論文,里面用到了非常非常多的已經(jīng)學(xué)過的知識(shí),還有非常非常多的沒有學(xué)過的知識(shí)。這次畢業(yè)設(shè)計(jì),終于在自己一點(diǎn)一點(diǎn)完善推動(dòng)下出來了。但是因?yàn)槲业哪芰Φ牟蛔?,這個(gè)系統(tǒng)非常的粗糙,很多細(xì)節(jié)不夠好,還需要進(jìn)行完善。但是高興的是我感覺自己的能力有了不小的提升。我知道自己還有很多的缺陷需要去完善和提升,在今后的學(xué)習(xí)生活中要不斷的去提升自己。參考文獻(xiàn)[1]王青青.車輛信息化管理系統(tǒng)設(shè)計(jì)[J].徐州工業(yè)職業(yè)技術(shù)學(xué)院,2020(01).[2]楊唯巍.淺析車輛管理存在的問題和對策[D].時(shí)代汽車,2019(11).[3]劉志暉.車輛管理信息標(biāo)準(zhǔn)化問題研究[D].中國管理信息化,2019(07).[4]唐金輝,舒祥波等.大數(shù)據(jù):看不見的朋友[J].南京理工大學(xué),2018(12).[5]吳德宇.互聯(lián)網(wǎng)時(shí)代出租車資源配置模型分析[J].\o"知識(shí)脈絡(luò)分析"鄭州科技學(xué)院基礎(chǔ)部,2016.[6]朱運(yùn)喬.基于SpringBoot+SSM框架的Web應(yīng)用系統(tǒng)搭建與實(shí)現(xiàn)\o"WFMetrics"[D].湖北職業(yè)技術(shù)學(xué)院,2019(10).[7]高妍.MySQL數(shù)據(jù)庫表間關(guān)聯(lián)分析與研究[J].遼寧建筑職業(yè)學(xué)院,2019(25).[8]Anonymous.CONTINUENTIMPROVESOPENSOURCEREPLICATIONFORMYSQL/POSTGRESQL[D].WorldwideDatabases,2010(01).[9]Tomasz.MYSQL:AQueryLanguageforDatabaseMining[J].DataMiningandKnowledgeDiscovery,2019(12).[10]KavitaJain.JSPSpecialIssueonStatisticalTheoryofBiologicalEvolution[D].JournalofStatisticalPhysics,2018(01).[11]YaoZhangLi.ResearchandApplicationofTemplateEngineforWebBack-endBasedonMyBatis-Plus[J].ProcediaComputerScience,2020(03).[12]DongZhang.DesignandResearchofMobileTerminalforElectricMotorcycleBasedonNetty[J].JournalofElectronicsandInformationScience,2017(05).[13]AriefGinanjar.SpringFrameworkReliabilityInvestigationAgainstDatabaseBridgingLayerUsingJavaPl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論