小區(qū)車輛管理系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文_第1頁
已閱讀1頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  小區(qū)車輛管理系統(tǒng)的設(shè)計與實現(xiàn)</p><p><b>  專業(yè):</b></p><p>  學(xué)生: 指導(dǎo)老師:</p><p><b>  摘 要</b></p><p>  小區(qū)車輛管理系統(tǒng)是一個通過人機交互系統(tǒng),將小區(qū)車輛、駕駛員和出車情況進行存儲,并同時對小

2、區(qū)車輛進行全面管理的系統(tǒng)。它主要實現(xiàn)了車輛信息管理、駕駛員信息管理、出車信息管理等功能。它的目的是加強對小區(qū)車輛的管理,使其智能化,意義是降低人力成本。</p><p>  小區(qū)車輛管理系統(tǒng)基于B/S結(jié)構(gòu)和J2EE平臺,采用兩層架構(gòu)構(gòu)建。表示層:負責(zé)完成用戶體驗,主要實現(xiàn)用戶數(shù)據(jù)的采集和處理結(jié)果數(shù)據(jù)到客戶端的渲染;選用基于MVC模式構(gòu)建的表示層開源框架Struts2構(gòu)建。視圖采用JSP實現(xiàn),配合html、CSS和

3、Javascript以建立良好的用戶體驗環(huán)境。持久層負責(zé)與數(shù)據(jù)庫的交互,主要實現(xiàn)實體數(shù)據(jù)的增、刪、改、查等操作,采用開源的持久層框架Hibernate實現(xiàn)。系統(tǒng)同時采用SQLServer數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)存儲。</p><p>  本文主要完成和車輛管理,駕駛員管理的設(shè)計實現(xiàn),汽車信息管理功能,簡要介紹了系統(tǒng)的背景,技術(shù)背景,需求分析,系統(tǒng)架構(gòu)設(shè)計,及相關(guān)功能的實現(xiàn)方法,最后對數(shù)據(jù)庫的設(shè)計進行了介紹。</p&g

4、t;<p>  關(guān)鍵詞: 車輛管理 B/S J2EE Struts2</p><p>  The design and implementation of</p><p>  district vehicle management system</p><p>  Major: Software Engineering</p>&l

5、t;p>  Student: Li Yuqing Supervisor: Zhao Chun</p><p><b>  Abstract</b></p><p>  District vehicle management system is an interactive system through the cell vehicle, the driv

6、er and the bus case for storage, and also for the overall management of the district vehicle systems. It is the main achievement of the vehicle information management, driver information management, information managemen

7、t, and other functions of the bus. Its purpose is to strengthen the management of district vehicles to intelligent, meaning lower labor costs.</p><p>  District vehicle management system based on B / S struc

8、ture and the J2EE platform to build a two-tier architecture. Presentation Layer: is responsible for completing the user experience, the main results of the data collection and processing of user data to render the client

9、; the use of open-source framework for building the presentation layer-based build Struts2 MVC pattern. View using JSP to achieve, with html, CSS and Javascript to create a good user experience environment. Persistence l

10、ayer </p><p>  Thesis completed vehicle management, design and implementation of the bus driver management and information management functions, briefly describes the system background, technical background,

11、 needs analysis, the overall system architecture design, and implementation-related functions, and finally to database design was introduced.</p><p>  Key words: vehicle management B/S J2EE Struts2</p

12、><p><b>  目 錄</b></p><p><b>  1導(dǎo)論1</b></p><p><b>  1.1系統(tǒng)背景1</b></p><p><b>  1.2技術(shù)背景1</b></p><p><b> 

13、 1.3研究內(nèi)容3</b></p><p><b>  2系統(tǒng)整體設(shè)計4</b></p><p>  2.1系統(tǒng)需求分析4</p><p>  2.2系統(tǒng)整體架構(gòu)設(shè)計5</p><p>  2.3系統(tǒng)功能設(shè)計7</p><p>  3系統(tǒng)核心功能實現(xiàn)8</p>

14、<p>  3.1系統(tǒng)界面設(shè)計8</p><p>  3.2中文亂碼處理10</p><p>  3.3駕駛員信息管理12</p><p>  3.4車輛信息管理15</p><p>  3.5出車信息管理16</p><p>  4數(shù)據(jù)庫的分析與設(shè)計19</p><p>

15、;  4.1數(shù)據(jù)庫的概念和特點19</p><p>  4.2數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計22</p><p><b>  4.3表結(jié)構(gòu)22</b></p><p>  4.4數(shù)據(jù)庫的連接原理23</p><p><b>  5系統(tǒng)測試25</b></p><p>  5.

16、1系統(tǒng)測試目的與意義25</p><p>  5.2測試結(jié)果25</p><p><b>  6總結(jié)27</b></p><p><b>  參考文獻28</b></p><p><b>  致謝29</b></p><p><b>

17、  1導(dǎo)論</b></p><p><b>  1.1系統(tǒng)背景</b></p><p>  伴隨著我國經(jīng)濟的快速增長,人們的生活水平逐年提高,當然人們對生活的品質(zhì)是逐漸有了更高的要求。經(jīng)濟的增長,道路的發(fā)展,汽車就成為了人們必不可少的交通工具。不管是上班,還是去游玩,還是什么,人們都離不開交通工具,所以汽車是必不可少的。但是汽車多了,也帶來了危險的信號,很

18、多的交通事故出現(xiàn),還有重要一點就是對汽車的管理。那要怎么管理汽車呢?科技發(fā)展得很快,我們很有必要開發(fā)一套汽車智能管理系統(tǒng),這樣可以大大的節(jié)省人力成本,使公司,小區(qū),商場等車輛實現(xiàn)智能化。</p><p>  隨著人們對生活有了更高的要求,出門有一部自己的車,太普遍了。導(dǎo)致了車輛的數(shù)目增加很快,同時問題在這樣的背景下也逐漸增加,比如車輛的車型問題,車輛的使用年限問題還有使用車輛產(chǎn)生的費用:過路費,停車費,租位費等等

19、,這些數(shù)據(jù)加在一起是非常非常多的,處理這些數(shù)據(jù)真實靠人力的話是很費時間,也就會增加企業(yè)的財力。所以為了解決這個問題,我們得開發(fā)一套智能管控系統(tǒng),來不單單處理這些數(shù)據(jù),還可以對這些車輛管理。因此,在這樣的環(huán)境下,開發(fā)一套這樣的系統(tǒng)是可行的,也是很有必要的。</p><p><b>  1.2技術(shù)背景</b></p><p><b>  1. Java語言<

20、;/b></p><p>  本系統(tǒng)采用Java語言編寫,Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言。是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計語言和Java平臺(即JavaSE, JavaEE, JavaME)的總稱。</p><p>  Java具有以下特點,如表1所示:</p><p>  表1:Ja

21、va語言特點</p><p><b>  2. MVC模式</b></p><p>  MVC模式是表示層開發(fā)最常用的設(shè)計模式,使用該設(shè)計模式是為了減少業(yè)務(wù)邏輯和視圖之間的耦合,這樣的設(shè)計模式可以提高系統(tǒng)的可擴展性和可維護性。</p><p>  MVC模型組成的模型,視圖和控制器。在這個模型中。控制器的作用是接受客戶端發(fā)送的請求,那么請求到適

22、當?shù)哪P偷臉I(yè)務(wù)流程(控制器相當于一個中轉(zhuǎn)站),然后將處理結(jié)果返回給客戶端,在客戶端通過MVC模式中的視圖可以看到。模型的主要作用是對控制器轉(zhuǎn)發(fā)過來的請求進行一個邏輯處理,也就是客戶端的請求,這是由JavaBean來實現(xiàn)的,當然這也是要保證它的可移植性,所以它不該依賴Servlet API。當模型處理好了后將結(jié)果由控制器發(fā)送給視圖,最終再展示給客戶端使用。</p><p><b>  JSP</b&

23、gt;</p><p>  JSP技術(shù)是用Java編程編寫類XML的tags和scriptlets,所以自然也就會想到在JSP中是可以含有用Java語言編寫的一些代碼,它也是可以處理動態(tài)網(wǎng)頁的一個邏輯處理。JSP的優(yōu)點是:它可以顯示邏輯和網(wǎng)頁的網(wǎng)頁進行分離的設(shè)計,這樣的一個好處是它可以使Web程序的開發(fā)變得非常簡便。</p><p>  在有一個來自JSP頁面的請求服務(wù)器的時候,服務(wù)器先是

24、執(zhí)行網(wǎng)頁中的程序段,最后將執(zhí)行的結(jié)果和網(wǎng)頁本省的代碼一起返回給用戶端。對Java代碼片段在JSP頁面中使用是非常有用的,比如寫一段可以操作數(shù)據(jù)庫的Java代碼或者重新轉(zhuǎn)向其他頁面等等這些功能都是可以通過在JSP頁面中編寫Java代碼來實現(xiàn),這樣也就是建立了動態(tài)網(wǎng)頁的效果。所以,我們就可以看出JSP是由HTML代碼和寫在網(wǎng)頁里面的Java代碼構(gòu)成。</p><p>  JSP有以下幾點特點,如表2所示:</p

25、><p><b>  表2:JSP特點</b></p><p>  4. JavaScript</p><p>  JavaScript是一種直接編譯方式式的腳本語言。同時也是常用作Web開發(fā),給HTML網(wǎng)頁增加動態(tài)功能,增加用戶體驗效果。JavaScript是面向?qū)ο蟮?,是在對對象的程序設(shè)計,并且用更加直觀、可重復(fù)使用和模塊化的方法來對程序進行開

26、發(fā)。JavaScript可以使網(wǎng)頁和用戶之間形成一種動態(tài)的、交互性的關(guān)系,也可以使網(wǎng)頁包含更多的元素。在這個系統(tǒng)中大量使用JavaScript技術(shù),場所為例,驗證,用戶輸入的數(shù)據(jù)是重復(fù)的,無論是為空等。</p><p><b>  Struts2簡介</b></p><p>  該項目基于Struts2的項目的創(chuàng)始人,改進和提高Java Server Pages、Se

27、rvlet、標簽庫以及面向?qū)ο蟮募夹g(shù)水準。在使用MVC模型時,Struts可以減少開發(fā)Web程序的時間</p><p>  在MVC模式,適應(yīng)時代發(fā)展的使用,而且還使用Struts2,在這種情況下,我們可以減少開發(fā)Web應(yīng)用程序的時間。它通過選用Java Servlet/JSP,從而來完成了基于Java EE Web應(yīng)用的MVC設(shè)計模式的應(yīng)用框架〔Web Framework〕。所以也就看得出來Struts2在MV

28、C設(shè)計模式中的重要性,它是非常有用的。</p><p>  Struts2的優(yōu)勢在于:基于MVC框架,明確的框架,開發(fā)人員可以把握好研發(fā)過程;開發(fā)人員能夠使用OGNL來對參數(shù)進行傳遞;Struts2的攔截器也是非常厲害的;Struts2容易測試;還有一個優(yōu)點就是很方便擴展插件;全局結(jié)果與聲明式異常。</p><p>  6. Hibernate簡介</p><p>

29、  Hibernate它可以對JDBC進行一個十分輕量級的封裝,同時它還是一個關(guān)于對象關(guān)系映射的基本框架。面向?qū)ο蟮木幊趟枷胱孞ava程序員可以操縱數(shù)據(jù)庫。只要有JDBC出現(xiàn)的地方Hibernate都是可以使用的,所以這樣我們就可以推測出:它既可以在客戶端用,也可以放在Web應(yīng)用中用。其主要功能是比較靈活的,這是一個非常有意思的是,它可以使用EJB的J2EE代替CMP,從而實現(xiàn)數(shù)據(jù)的持久化是一舉兩得。其中Session接口、Sessio

30、nFactory接口、Transaction接口、Query接口和Configuration接口這些都是Hibernate中很重要的。這些接口使用的范圍都是比較廣的。他們有兩個作用:一是可以對持久化的對象進行存取的操作,二是可以控制事務(wù)。</p><p><b>  1.3研究內(nèi)容</b></p><p>  論文研究并實現(xiàn)了一個小區(qū)設(shè)計的車輛管理系統(tǒng)的整體結(jié)構(gòu),完成

31、了管理員用戶所擁有的車輛信息管理、駕駛員信息管理、出車信息管理等功能的設(shè)計與實現(xiàn)。</p><p>  車輛信息管理:該模塊中展示的是對車輛信息的增加、刪除、修改和查詢的操作。</p><p>  司機信息管理:該模塊是增加,刪除,修改和查詢操作的信息。</p><p>  出車信息管理:在該模塊中定義了對出車情況的管理,其功能包括出車情況的添加、查詢、修改、刪除等

32、操作。</p><p><b>  2系統(tǒng)整體設(shè)計</b></p><p><b>  2.1系統(tǒng)需求分析</b></p><p><b>  系統(tǒng)目標</b></p><p>  系統(tǒng)將實現(xiàn)下列目標:</p><p> ?。?)系統(tǒng)界面友好,容易上手操

33、作,同時會給出提醒方便管理者操作。</p><p> ?。?)管理員用戶具有系統(tǒng)管理、車輛信息管理、駕駛員信息管理、出車記錄管理功能。</p><p> ?。?)安全性好,可以防止操作者惡意操作本系統(tǒng)。</p><p><b>  2.功能需求</b></p><p>  管理員是系統(tǒng)的核心用戶,涉及到三大功能模塊如圖1

34、所示:</p><p><b>  圖1:管理員用例圖</b></p><p><b>  3.數(shù)據(jù)需求</b></p><p>  對每一個輸入的數(shù)據(jù)都要有是正確的,并且在頁面上每一個輸入框不能為空,對表中的每一個數(shù)據(jù)之間他們的聯(lián)系都要保證是正確的。</p><p><b>  4.界面

35、需求</b></p><p>  一個好的用戶界面能夠讓用戶更清楚的看到自己可以干什么,提高工作效率。在頁面中創(chuàng)建一個動態(tài)的網(wǎng)頁是非常方便。用戶界面的相互作用和交換之間的信息系統(tǒng)和用戶的媒體。</p><p><b> ?。?)輸出設(shè)計</b></p><p>  輸出是輸入原始信息通過計算機處理信息,有效地形成了一個高質(zhì)量的,所以

36、有一定的格式,以提供給管理人員查看。主要的功能和目標輸出的設(shè)計。這是由于輸出表直接與用戶聯(lián)系,該項目的出發(fā)點是希望輸出的樣式是方便給用戶查看的,有效的返回相應(yīng)的數(shù)據(jù)信息。</p><p><b>  (2)輸入設(shè)計</b></p><p>  當管理人員在面對大量的數(shù)據(jù)時,雖然有一個友好的界面供管理人員使用,但是難免管理人員輸入錯誤,只要輸入錯誤了,系統(tǒng)處理后的結(jié)果顯

37、示給管理人員也是會錯的。所以有效的輸入是很重要的。</p><p>  輸入設(shè)計的原則有如下幾點:</p><p>  輸入應(yīng)保持在最小的處理要求。輸入的輸入可以用字段值,并通過下拉的方式輸入。輸入量少,故障率少,減少了數(shù)據(jù)準備時間。</p><p>  輸入的準備和過程必須簡單,這樣可以減少錯誤。</p><p>  盡可能早對輸入數(shù)據(jù)進行

38、校驗(盡可能靠近原數(shù)據(jù)產(chǎn)生點),以便使錯誤即時獲得改正。</p><p>  2.2系統(tǒng)整體架構(gòu)設(shè)計</p><p><b>  1.系統(tǒng)設(shè)計思想</b></p><p>  系統(tǒng)的設(shè)計思想遵循以下幾點:</p><p><b>  采用B/S模式開發(fā)</b></p><p>

39、;  系統(tǒng)采用B/S結(jié)構(gòu)構(gòu)建;這種方式已經(jīng)被許多用戶所習(xí)慣。</p><p> ?。?)采用面向?qū)ο蟮拈_發(fā)與設(shè)計理念</p><p>  為了保證系統(tǒng)有一個很好的框架支持,同時研發(fā)的產(chǎn)品速度快和有較好的穩(wěn)定性,將采用面向?qū)ο蟮脑O(shè)計理念。</p><p><b>  使用模塊化的設(shè)計</b></p><p>  模塊化應(yīng)該

40、把整個體系分為幾個小的模塊,方便代碼的重載。</p><p> ?。?)系統(tǒng)界面簡單方便</p><p>  本系統(tǒng)的界面設(shè)計比較簡單,頁面美觀很好,界面的簡單模塊可以方便使用者操作本系統(tǒng)。</p><p><b> ?。?)速度優(yōu)先原則</b></p><p>  因為這個工具是速度最重要的評價標準,所以在設(shè)計過程中,

41、具體的過程盡可能少占用資源,速度。</p><p> ?。?)設(shè)計要突出重點,體貼用戶</p><p>  滿足設(shè)計要求,使系統(tǒng)更適應(yīng)用戶的需求。</p><p><b>  2.系統(tǒng)架構(gòu)</b></p><p>  車輛管理系統(tǒng)擬基于B/S結(jié)構(gòu)和J2EE平臺,采用兩層架構(gòu)構(gòu)建。兩層架構(gòu)包括:表示層和持久層。</

42、p><p>  B/S結(jié)構(gòu)圖如圖2所示:</p><p>  圖2:B/S結(jié)構(gòu)示意圖</p><p>  B/S結(jié)構(gòu)也就是說瀏覽器和服務(wù)器結(jié)構(gòu)。由上圖可以看出,在B/S結(jié)構(gòu)中瀏覽器就是用戶的使用界面,但是當出現(xiàn)比較繁瑣的處理的時候,可以讓一部分邏輯處理在這里(前端)完成,不過主要的邏輯處理還是得在服務(wù)器端進行實現(xiàn)。</p><p>  B/S的優(yōu)

43、點是:無需安裝客戶端,客戶端只需要瀏覽器;同時在更新的時候,系統(tǒng)不需要對客戶端進行升級,只需要對服務(wù)器升級就可以了。</p><p>  兩層架構(gòu)如圖3所示:</p><p>  圖3:系統(tǒng)架構(gòu)示意圖</p><p>  表示層:負責(zé)完成用戶體驗,主要實現(xiàn)用戶數(shù)據(jù)的采集和處理結(jié)果數(shù)據(jù)到客戶端的渲染;本層擬采用基于MVC模式構(gòu)建的表示層開源框架Struts2構(gòu)建。&l

44、t;/p><p>  持久層:負責(zé)與數(shù)據(jù)庫的交互,主要實現(xiàn)實體數(shù)據(jù)的增、刪、改、查等操作,同時納入DAO框架來隔離持久化細節(jié)的變化對其它部分的影響。</p><p>  使用SQLServer數(shù)據(jù)庫存儲數(shù)據(jù)作為車輛管理系統(tǒng)的數(shù)據(jù)保存。</p><p><b>  2.3系統(tǒng)功能設(shè)計</b></p><p>  總的功能模塊框

45、圖如圖4所示:</p><p><b>  圖4:功能框圖</b></p><p>  車輛信息管理:該模塊中展示的是對車輛信息的增加、刪除、修改和查詢的操作。</p><p>  駕駛員信息管理:該模塊中展示的是對駕駛員信息的增加、刪除、修改和查詢的操作。</p><p>  出車信息管理:在該模塊中定義了對出車情況的

46、管理,其功能包括出車情況的添加、查詢、修改、刪除等操作。</p><p><b>  3系統(tǒng)核心功能實現(xiàn)</b></p><p><b>  3.1系統(tǒng)界面設(shè)計</b></p><p>  頁面設(shè)計的原則:在整個系統(tǒng)中,所有的頁面都遵循一個設(shè)計原則,那就是界面簡單易操作。使操作員看到該系統(tǒng)的時候就知道自己可以做什么和知道自

47、己該怎么去操作。這樣可以方便操作員的同時也可以節(jié)省人力成本,財力成本。使公司的利益最大化。這也是這樣設(shè)計的一個重要因素。</p><p>  如圖5所示,在頁面的左側(cè)是管理員的四個可以操作的功能,點擊進入相關(guān)管理頁面可以變成一個子菜單,并突出高亮的顯示方式展現(xiàn)各管理模塊對應(yīng)的子菜單。主頁運行效果如圖5所示:</p><p><b>  圖5:管理員主頁面</b><

48、;/p><p>  車輛信息管理頁面效果如圖6所示:</p><p><b>  圖6:車輛信息頁面</b></p><p>  司機信息管理界面效果如圖7所示:</p><p><b>  圖7:司機頁面</b></p><p>  出車信息管理界面如圖8所示:</p&g

49、t;<p><b>  圖8:出車信息頁面</b></p><p><b>  3.2中文亂碼處理</b></p><p>  在程序中經(jīng)常會遇到中文亂碼的情況,如果手動的在servlet和jsp頁面進行設(shè)置,相當麻煩。因此,寫了一個過濾器作為對中文亂碼的處理。</p><p>  在web.xml中配置:&

50、lt;/p><p><b>  <filter></b></p><p>  <filter-name>SetCharacterEncodingFilter</filter-name></p><p>  <filter-class>myweb.util.filter.SetCharacterEnco

51、dingFilter</filter-class></p><p>  <init-param></p><p>  <param-name>encoding</param-name></p><p>  <param-value>gb2312</param-value></p>

52、<p>  </init-param></p><p><b>  </filter></b></p><p>  <filter-mapping></p><p>  <filter-name>SetCharacterEncodingFilter</filter-name>

53、</p><p>  //*表示工程下所有的頁面都會有此過濾器的處理</p><p>  <url-pattern>/*</url-pattern></p><p>  </filter-mapping></p><p>  對應(yīng)的SetCharacterEncodingFilter.java文件中的重要代

54、碼,在初始化init()方法中定義:</p><p>  public void init(FilterConfig filterConfig) throws ServletException {</p><p>  this.filterConfig = filterConfig;</p><p>  this.encoding = filterConfig.ge

55、tInitParameter("encoding");</p><p>  String value = filterConfig.getInitParameter("ignore");</p><p><b>  }</b></p><p>  在工具包util包中同樣定義了DataFormate類來處

56、理字符轉(zhuǎn)換:</p><p>  public static String toUni(String gbStr){</p><p>  String uniStr = ""; /*把字符串轉(zhuǎn)換成uincode編碼*/</p><p>  if(gbStr == null){</p><p>  gbStr = "

57、;";</p><p><b>  }</b></p><p><b>  try{</b></p><p>  byte[] tempByte = gbStr.getBytes("UTF-8");</p><p>  uniStr = new String(tempB

58、yte,"ISO8859_1");</p><p>  }catch(Exception ex){</p><p><b>  }</b></p><p>  return uniStr;</p><p><b>  }</b></p><p>  /*

59、把字符串轉(zhuǎn)換成Utf8編碼*/</p><p>  public static String toUtf8String(String s) {</p><p>  StringBuffer sb = new StringBuffer();</p><p>  for (int i = 0; i < s.length(); i++) {</p>&

60、lt;p>  char c = s.charAt(i);</p><p>  if (c >= 0 && c <= 255) {</p><p>  sb.append(c);</p><p><b>  }else {</b></p><p><b>  byte[] b;&

61、lt;/b></p><p><b>  try {</b></p><p>  b = Character.toString(c).getBytes("utf-8");</p><p>  }catch (Exception ex) {</p><p>  System.out.println

62、(ex);</p><p>  b = new byte[0];</p><p><b>  }</b></p><p>  for (int j = 0; j < b.length; j++) {</p><p>  int k = b[j];</p><p>  if (k < 0

63、) {</p><p><b>  k += 256;</b></p><p><b>  }</b></p><p>  sb.append("%" + Integer.toHexString(k).</p><p>  toUpperCase()); </p>

64、<p><b>  } }</b></p><p>  return sb.toString(); </p><p><b>  }</b></p><p>  3.3駕駛員信息管理</p><p>  駕駛員信息管理是對駕駛員信息的增加、刪除、修改和查詢等操作。在系統(tǒng)中都有一一實現(xiàn)的

65、。由于駕駛員的增加、刪除、修改、查詢在實現(xiàn)上都相差不大,所以本小節(jié)著重介紹駕駛員信息修改的實現(xiàn)。</p><p><b>  1.功能描述</b></p><p>  先是點擊司機信息模塊,然后在界面右邊可以看到司機的一些信息,當要修改司機信息的時候。點擊“修改”,然后就會進入“修改”司機信息頁面。</p><p><b>  2.核

66、心代碼</b></p><p><b>  模型層:</b></p><p>  public class sijiDAO{ </p><p>  public TSiji findById(java.lang.Integer id) //這個方法用于找到siji_id</p><p><b&

67、gt;  {</b></p><p>  log.debug("getting TSiji instance with id: " + id);</p><p><b>  try</b></p><p><b>  {</b></p><p>  TSiji ins

68、tance = (TSiji) getHibernateTemplate().get(</p><p>  "com.model.TSiji", id);</p><p>  return instance;</p><p>  } catch (RuntimeException re)</p><p><b>

69、  {</b></p><p>  log.error("get failed", re);</p><p><b>  throw re;</b></p><p><b>  }</b></p><p><b>  }</b></p>

70、;<p>  //通過ID找到這個駕駛員</p><p>  public void attachDirty(TSiji instance)</p><p><b>  {</b></p><p>  log.debug("attaching dirty TSiji instance");</p>

71、<p><b>  try</b></p><p><b>  {</b></p><p>  getHibernateTemplate().saveOrUpdate(instance);</p><p>  log.debug("attach successful");</p>

72、<p>  } catch (RuntimeException re)</p><p><b>  {</b></p><p>  log.error("attach failed", re);</p><p><b>  throw re;</b></p><p>

73、;<b>  }</b></p><p><b>  }</b></p><p>  ……………………..//此處省略了對駕駛員信息操作的其他方法</p><p><b>  }</b></p><p>  //把DAO注入給Action</p><p>

74、;  <bean id="sijiAction" class="com.action.sijiAction" scope="prototype"></p><p>  <property name="sijiDAO"></p><p>  <ref bean="TSiji

75、DAO" /></p><p>  </property></p><p><b>  </bean></b></p><p><b>  控制層:</b></p><p>  sijiEdit.action中的代碼:</p><p>

76、;  public String sijiEdit()</p><p><b>  {</b></p><p>  TSiji siji=sijiDAO.findById(id);//通過ID找到這個駕駛員</p><p>  siji.setName(name);</p><p>  siji.setSex(sex);

77、</p><p>  siji.setAge(age);</p><p>  siji.setTel(tel);</p><p>  siji.setAddress(address);</p><p>  siji.setCard(card);</p><p>  siji.setDel("no")

78、;</p><p>  sijiDAO.attachDirty(siji);</p><p>  this.setMessage("操作成功");</p><p>  this.setPath("sijiMana.action");</p><p>  return "succeed"

79、;;</p><p>  }//操作成功轉(zhuǎn)到succeed頁面,在struct.xml文件中有配置</p><p>  struts.xml中的相關(guān)配置代碼:</p><p>  struts.xml:</p><p>  <action name="sijiEditPre" class="sijiActi

80、on" method="sijiEditPre"></p><p>  <result name="success">/admin/siji/sijiEditPre.jsp</result></p><p><b>  </action></b></p><

81、p>  <action name="sijiEdit" class="sijiAction" method="sijiEdit"></p><p><b>  </action></b></p><p>  //控制器,處在業(yè)務(wù)邏輯與視圖之間,用于接受頁面請求然后交給相應(yīng)的邏輯處

82、理方法進行處理</p><p>  相關(guān)配置文件applicationContext.xml:</p><p>  //把SessionFactory注入給DAO</p><p>  <bean id="TSijiDAO" class="com.dao.TSijiDAO"></p><p>

83、;  <property name="sessionFactory"></p><p>  <ref bean="sessionFactory" /></p><p>  </property></p><p><b>  </bean></b></p

84、><p>  //把數(shù)據(jù)源注入給session工廠,并且把hibernate加入到Spring中</p><p><b>  3.程序效果</b></p><p>  程序效果如圖9所示。</p><p>  圖9:駕駛員信息修改</p><p><b>  3.4車輛信息管理</b&

85、gt;</p><p>  車輛信息管理包括車輛的增加、刪除、修改、查詢,在本項目中都有一一實現(xiàn)的。由于車輛的添加、刪除、修改、查詢在實現(xiàn)上都相差不大,所以本節(jié)著重介紹車輛信息添加的實現(xiàn)。</p><p><b>  1.功能描述</b></p><p>  先點擊車輛檔案管理,頁面跳轉(zhuǎn)到車輛檔案管理界面,瀏覽車輛的相關(guān)信息然后打開“添加車輛信

86、息頁面,輸入相關(guān)車輛信息可以添加。</p><p><b>  2.核心代碼</b></p><p><b>  模型層:</b></p><p>  public class cheDAO{</p><p>  public void save(TChe transientInstance)<

87、;/p><p><b>  {</b></p><p>  log.debug("saving TChe instance");</p><p><b>  try</b></p><p><b>  {</b></p><p>  ge

88、tHibernateTemplate().save(transientInstance);</p><p>  log.debug("save successful");</p><p>  } catch (RuntimeException re)</p><p><b>  {</b></p><p&

89、gt;  log.error("save failed", re);</p><p><b>  throw re;</b></p><p>  }}//DAO中的方法,用在邏輯處理</p><p>  相關(guān)配置文件applicationContext.xml:</p><p>  //把DAO注入給

90、Session工廠</p><p>  <bean id="TCheDAO" class="com.dao.TCheDAO"></p><p>  <property name="sessionFactory"></p><p>  <ref bean="sessi

91、onFactory" /></p><p>  </property></p><p><b>  </bean></b></p><p><b>  控制層:</b></p><p>  public String cheAdd(){</p>

92、<p>  TChe che=new TChe();</p><p>  che.setChepai(chepai);</p><p>  che.setChexing(chexing);</p><p>  che.setChuchangriqi(chuchangriqi);</p><p>  che.setZaizhongli

93、ang(zaizhongliang);</p><p>  che.setSiji_id(siji_id);</p><p>  che.setDel("no");</p><p>  cheDAO.save(che);//調(diào)用com.dao.TCheDAO里的save()方法</p><p>  this.setMess

94、age("操作成功");</p><p>  this.setPath("cheMana.action");</p><p>  return "succeed";//返回邏輯視圖</p><p><b>  }</b></p><p>  //控制器,處在業(yè)務(wù)

95、邏輯與視圖之間,用于接受頁面請求然后交給相應(yīng)的邏輯處理方法進行處理</p><p>  相關(guān)配置文件struts.xml:</p><p>  //配置Action</p><p>  <action name="cheAdd" class="cheAction" method="cheAdd">

96、; </action></p><p>  //將DAO注入給Action</p><p>  <bean id="cheAction" class="com.action.cheAction" scope="prototype"></p><p>  <property na

97、me="cheDAO"></p><p>  <ref bean="TCheDAO" /></p><p>  </property></p><p><b>  </bean></b></p><p><b>  3.程序效果&

98、lt;/b></p><p>  如圖10所示的程序顯示。</p><p>  圖10:車輛信息添加</p><p><b>  3.5出車信息管理</b></p><p>  出車信息管理包括出車信息的增加、刪除、修改、查詢,在系統(tǒng)中都有一一實現(xiàn)的。由于出車信息的添加、刪除、修改、查詢在實現(xiàn)上都相差不大,所以本節(jié)

99、著重介紹出車信息查詢功能的實現(xiàn)。</p><p><b>  1.功能描述</b></p><p>  先是點擊出車信息管理,頁面跳轉(zhuǎn)到出車信息管理界面,管理人員可以瀏覽所有的出車信息。</p><p>  當管理人員點擊“出車記錄管理”,在界面的右邊就會出現(xiàn)出車信息,包括序號、車輛信息、車輛車主、開出時間、回來時間、出車事由,“操作”按鈕,&

100、lt;/p><p>  在表格下方有“添加出車信息”的按鈕。</p><p><b>  2.核心代碼</b></p><p><b>  模型層:</b></p><p>  public List findAll()</p><p><b>  {</b>

101、;</p><p>  log.debug("finding all TChuche instances");</p><p><b>  try</b></p><p><b>  {</b></p><p>  String queryString = "from

102、TChuche";</p><p>  return getHibernateTemplate().find(queryString);</p><p>  //找到出車的信息放在Template()里.</p><p>  } catch (RuntimeException re)</p><p><b>  {<

103、/b></p><p>  log.error("find all failed", re);</p><p><b>  throw re;</b></p><p><b>  }</b></p><p><b>  }</b></p>

104、<p><b>  相關(guān)配置文件:</b></p><p>  <hibernate-mapping></p><p>  <class name="com.model.TChuche" table="t_chuche" </p><p>  schema="dbo

105、" catalog="db_che"></p><p>  <id name="id" type="java.lang.Integer"></p><p>  <column name="id" /></p><p>  <generator

106、 class="increment" /></p><p><b>  </id></b></p><p>  <property name="che_id" type="java.lang.Integer"></p><p>  <column n

107、ame="che_id" /></p><p>  </property></p><p>  <property name="kaichushijian" type="java.lang.String"></p><p>  <column name="kai

108、chushijian" length="50" /></p><p>  </property></p><p>  <property name="huilaishijian" type="java.lang.String"></p><p>  <colum

109、n name="huilaishijian" length="50" /></p><p>  </property></p><p>  <property name="shiyou" type="java.lang.String"></p><p>  

110、<column name="shiyou" length="50" /></p><p>  </property></p><p>  <property name="del" type="java.lang.String"></p><p>  &

111、lt;column name="del" length="50" /></p><p>  </property></p><p><b>  </class></b></p><p>  </hibernate-mapping></p><p

112、><b>  控制層:</b></p><p>  public String chucheMana()</p><p><b>  {</b></p><p>  //獲取數(shù)據(jù)并存在chucheList集合中</p><p>  List chucheList=chucheDAO.getHi

113、bernateTemplate()</p><p>  .find("from TChuche where del='no'");</p><p>  for(int i=0;i<chucheList.size();i++)</p><p><b>  {</b></p><p>

114、;  TChuche chuche=(TChuche)chucheList.get(i);</p><p>  chuche.setChe(cheDAO.findById(chuche.getChe_id()));</p><p><b>  }</b></p><p>  Map request=(Map)ServletActionConte

115、xt.getContext().get("request");</p><p>  request.put("chucheList", chucheList);</p><p>  return ActionSupport.SUCCESS;//返回邏輯視圖</p><p><b>  }</b></

116、p><p><b>  相關(guān)配置文件:</b></p><p>  struts.xml:</p><p>  <action name="chucheMana" class="chucheAction" method="chucheMana"></p><

117、p>  <result name="success">/admin/chuche/chucheMana.jsp</result></p><p>  //成功后轉(zhuǎn)向chucheMana.jsp這個頁面</p><p><b>  </action></b></p><p><b

118、>  3.程序效果</b></p><p>  程序效果展示如圖11所示:</p><p>  圖11:出車信息顯示</p><p>  4數(shù)據(jù)庫的分析與設(shè)計</p><p>  4.1數(shù)據(jù)庫的概念和特點</p><p>  對數(shù)據(jù)庫相關(guān)的表述如表3所示:</p><p>  

119、表3:數(shù)據(jù)庫設(shè)計要點</p><p>  根據(jù)以上表格列出的需求分析,并結(jié)合系統(tǒng)概念模型的特點和建立方法,畫出了如下實體間的E-R模型圖。</p><p>  1.車輛信息實體E-R圖</p><p>  圖12:車輛信息實體E-R圖</p><p>  司機信息實體E-R圖:</p><p>  圖13:司機信息實體

120、E-R圖</p><p>  3.出廠信息實體E-R圖:</p><p>  圖14:出車信息實體E-R圖</p><p><b>  4.全局E-R圖:</b></p><p>  圖15:全局E-R圖</p><p>  4.2數(shù)據(jù)庫的邏輯結(jié)構(gòu)設(shè)計</p><p>&l

121、t;b>  圖16:關(guān)系模式圖</b></p><p>  車輛(chepai,chexing,chuchangriqi,zaizhongliang);</p><p>  主鍵:che_id;外鍵:siji_id;</p><p>  司機(name,sex,age,tel,address,card);</p><p> 

122、 主鍵:siji_id;</p><p>  出車(shiyou,kaichushijian,huilaishijian);</p><p>  主鍵:chuche_id;外鍵:siji_id;</p><p>  司機和車輛是1:n的關(guān)系,司機的主鍵作為了車輛的外鍵;</p><p>  車輛和出車是1:n的關(guān)系,車輛的主鍵作為了出車的外鍵

123、。 </p><p>  出車信息里面包括:部分車輛信息和司機信息,由于司機和車輛是1:n的關(guān)系,車輛和出車是1:n的關(guān)系,所以可以通過車輛找到司機的信息。</p><p><b>  4.3表結(jié)構(gòu)</b></p><p>  數(shù)據(jù)庫概念模型是非常獨立的,所以不管是在那種數(shù)據(jù)庫系統(tǒng)中,都是要根據(jù)數(shù)據(jù)庫的特征來進行轉(zhuǎn)換。也就是轉(zhuǎn)換為計算機系統(tǒng)可以

124、處理的關(guān)系模型,所以我們一般使用E-R模型圖來表示這些關(guān)系,它有以下原則:對系統(tǒng)中的每一個實體都要轉(zhuǎn)換為一個關(guān)系,同時定義的主鍵不能為空,實體與實體之間都關(guān)系是:1:n,1:1,n:n,其中n:n的聯(lián)系是用外鍵來將他們聯(lián)系在一起的。</p><p>  根據(jù)E-R模型圖,列出以下邏輯數(shù)據(jù)結(jié)構(gòu)表,下面是各數(shù)據(jù)表的詳細說明。</p><p>  車輛信息表主要是記錄了車輛基本信息,表結(jié)構(gòu)如表4

125、所示。</p><p>  表4:車輛信息表(t_che)</p><p>  司機信息表主要記錄了司機基本信息,表結(jié)構(gòu)如表5所示。</p><p>  表5:司機信息表(t_siji)</p><p>  出車信息表是出車這個實體的一些屬性,如表6所示。</p><p>  表6:出車信息表(t_chuche)<

126、;/p><p>  4.4數(shù)據(jù)庫的連接原理</p><p>  本系統(tǒng)的數(shù)據(jù)庫是使用Hibernate來進行存取的。 它可以對 JDBC 進行了輕量級的對象封裝,可以讓開發(fā)人員很方便的使用對象編程思想來對數(shù)據(jù)庫的數(shù)據(jù)進行操作。Hibernate既提供了Java類到數(shù)據(jù)表他們之間的映射。Hibernate提供了恢復(fù)和數(shù)據(jù)查詢。在Hibernate和JDBC、SQL的比較中,我們不難發(fā)現(xiàn)Hiber

127、nate可以大大減少手動操作,從而減輕使用者的工作量。Hibernate有一個很大的優(yōu)勢便是,它能夠和多種Web服務(wù)器或應(yīng)用服務(wù)器集成。</p><p>  其實Hibernate是一個中間件,它是為數(shù)據(jù)庫服務(wù)的。如圖17所示:</p><p>  圖17:Hibernate架構(gòu)圖</p><p>  圖17顯示了 Hibernate 的工作原理,它是使用數(shù)據(jù)庫和其

128、余少許配置文件如 Hibernate .properties。屬性的XML映射,可以提供數(shù)據(jù)持久化服務(wù)的應(yīng)用。Hibernate具有非常大的靈活性,而且整體結(jié)構(gòu)非常致密,提供應(yīng)用JDBC連接,和管理自己的事務(wù)。</p><p>  Hibernate數(shù)據(jù)源的配置:</p><p>  <bean id="sessionFactory"</p><

129、;p>  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"></p><p>  <property name="dataSource"></p><p>  <ref bean="dataSource" />&

130、lt;/p><p>  </property></p><p>  <property name="hibernateProperties"></p><p><b>  <props></b></p><p>  <prop key="hibernat

131、e.dialect"></p><p>  org.hibernate.dialect.SQLServerDialect</p><p><b>  </prop></b></p><p>  <prop key="hibernate.show_sql">true</prop&g

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論