基于bs的汽車銷售系統(tǒng)畢業(yè)論文_第1頁
已閱讀1頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  畢業(yè)設計報告(論文)</p><p>  題目名稱: 基于B/S的汽車銷售系統(tǒng) </p><p>  學 院: 計算機科學技術 </p><p>  專業(yè)年級: 軟件工程 09級 </p><p>  學

2、生姓名: </p><p>  班級學號: 專計09-2班 22 號 </p><p>  指導教師: </p><p><b>  摘 要</b></p><p>

3、  本系統(tǒng)是為解決汽車銷售公司的管理問題而設計。隨著經(jīng)濟的發(fā)展和國內(nèi)汽車市場的不斷擴大,某汽車銷售公司定單成倍增加,各項業(yè)務更加細化,各部門分工更加明確。而目前的人工管理方式顯然已是不符合現(xiàn)代企業(yè)的管理要求。</p><p>  基于整體考慮,本次課程設計任務就是設計一個管理系統(tǒng),利用計算機來代替人工操作。減輕了員工的勞動強度,提高了勞動質(zhì)量和效率,減少了錯誤的發(fā)生。</p><p>  

4、本次設計,從需求分析,概念設計,邏輯設計,物理設計,到數(shù)據(jù)庫的建立、運行,再到數(shù)據(jù)庫的安全維護等各個方面進行了詳細的分析設計。并且值得一提的是,我認真分析了企業(yè)的業(yè)務需求,公司的主要職責和主要結構等信息,從而保證了設計出比較符合公司需要的管理系統(tǒng)。</p><p>  關鍵詞 : 數(shù)據(jù)庫;課程設計;轎車銷售管理 JAVA </p><p><b>  Abstract</b

5、></p><p>  This system is to address the management of car sales company designed. With economic development and the domestic auto market continues to expand, an automobile sales company orders multiplied

6、, the business is more refined, more explicit division of labor. The current manual management is not clearly meet therequirements of modern enterprise management. Based on overall consideration, this task is to

7、design a curriculum management system, using computer to replace manual operation. Redu</p><p>  Keywords : Database; curriculum design; car sales management JAVA </p><p><b>  目 錄</b&g

8、t;</p><p><b>  摘 要I</b></p><p>  AbstractII</p><p><b>  第一章 緒論5</b></p><p>  1.1 課題來源5</p><p>  1.2 國內(nèi)現(xiàn)狀5</p><p

9、>  1.3 研究意義5</p><p>  第二章 需求分析6</p><p>  2.1 系統(tǒng)定義6</p><p>  2.2 功能需求6</p><p>  2.3 數(shù)據(jù)需求6</p><p>  第三章 數(shù)據(jù)庫設計7</p><p>  3.1 數(shù)據(jù)庫的

10、概念7</p><p>  3.2 數(shù)據(jù)庫的選擇7</p><p>  3.3 數(shù)據(jù)庫表的描述7</p><p>  第四章 技術介紹12</p><p>  4.1 JAVA開發(fā)語言的選擇12</p><p>  4.2 MVC設計模式14</p><p>  4.3

11、 Struts,Hibernate,Spring技術15</p><p>  4.4 SQL語言16</p><p>  4.5 開發(fā)環(huán)境17</p><p>  第五章 系統(tǒng)實現(xiàn)18</p><p>  5.1 系統(tǒng)總體架構及實現(xiàn)18</p><p>  5.1.2 用戶首頁界面風格1

12、9</p><p>  5.2 進貨管理19</p><p>  5.2.1 功能描述19</p><p>  5.2.2 模塊流程圖20</p><p>  5.2.3 界面風格20</p><p>  5.3 倉庫管理30</p><p>  5.3.1 功

13、能描述30</p><p>  5.3.2 模塊流程圖30</p><p>  5.3.3 界面風格30</p><p>  5.3.4 代碼實現(xiàn)(部分)31</p><p>  5.4 銷售管理43</p><p>  5.4.1 描述43</p><p>  

14、5.4.2 模塊流程圖43</p><p>  5.4.3 界面風格44</p><p>  5.4.4 代碼實現(xiàn)(部分)44</p><p>  5.5 財務管理54</p><p>  5.5.1 描述54</p><p>  5.5.2 模塊流程圖55</p>&

15、lt;p>  5.5.3 界面風格55</p><p>  5.5.4 代碼實現(xiàn)(部分)55</p><p>  5.6 登錄管理64</p><p>  5.6.1 功能描述64</p><p>  5.6.2 模塊流程圖64</p><p>  5.6.3 界面風格64&l

16、t;/p><p>  第六章 結束語65</p><p><b>  致 謝66</b></p><p><b>  參考文獻66</b></p><p><b>  附 錄67</b></p><p><b>  第一章 緒論&l

17、t;/b></p><p><b>  1.1 課題來源</b></p><p>  汽車產(chǎn)業(yè)的興旺發(fā)展帶動顧客對于汽車類型選擇的大步前進,目前大多數(shù)汽車銷售連鎖店的銷售管理是用簡易進行的。隨著汽車款式的不斷更新,汽車各項功能配置會不斷的增多,簡易工作已不能適應時代的發(fā)展需求,由于各銷售店每天的銷售量很大,難免會在業(yè)務方面及財務方面出現(xiàn)漏洞,給企業(yè)的經(jīng)營帶來種

18、種弊端,有時還會帶給客戶不必要的麻煩。要想解決這些難題,就必須有一套科學、高效、嚴密汽車銷售管理系統(tǒng)作為依托進行和客戶的交易。當今的中小企業(yè),一般應具有產(chǎn)品開發(fā)、生產(chǎn)、銷售、服務的能力,為此企業(yè)都設有相應的機構,以管理各個環(huán)節(jié)的業(yè)務。以此前提作為系統(tǒng)設計的基礎,開發(fā)一個更適合客戶和銷售人員交流的這樣一個汽車銷售系統(tǒng),來滿足日益發(fā)展的汽車銷售業(yè).的要求。 </p><p><b>  1.2 國內(nèi)現(xiàn)狀&

19、lt;/b></p><p>  汽車產(chǎn)業(yè)的興旺發(fā)展帶動顧客對于汽車類型選擇的大步前進,目前大多數(shù)汽車銷售連鎖店的銷售管理是用簡易進行的。隨著汽車款式的不斷更新,汽車各項功能配置會不斷的增多,簡易工作已不能適應時代的發(fā)展需求,由于各銷售店每天的銷售量很大,難免會在業(yè)務方面及財務方面出現(xiàn)漏洞,給企業(yè)的經(jīng)營帶來種種弊端,有時還會帶給客戶不必要的麻煩。要想解決這些難題,就必須有一套科學、高效、嚴密汽車銷售管理系統(tǒng)

20、作為依托進行和客戶的交易。當今的中小企業(yè),一般應具有產(chǎn)品開發(fā)、生產(chǎn)、銷售、服務的能力,為此企業(yè)都設有相應的機構,以管理各個環(huán)節(jié)的業(yè)務。以此前提作為系統(tǒng)設計的基礎,開發(fā)一個更適合客戶和銷售人員交流的這樣一個汽車銷售系統(tǒng),來滿足日益發(fā)展的汽車銷售業(yè).的要求。 </p><p><b>  1.3 研究意義</b></p><p>  為了更好的適應汽車銷售管理市場發(fā)展的

21、不平衡性,更好的為客戶在選擇汽車類型方面便利,為更多不了解汽車的客戶提供一個交流平臺,我們選擇這樣一個信息管理系統(tǒng)來進行。 </p><p><b>  第二章 需求分析</b></p><p><b>  2.1 系統(tǒng)定義</b></p><p>  汽車銷售系統(tǒng)的出現(xiàn)代替了人工記錄。那么本系統(tǒng)作為汽車銷售行業(yè)的一個

22、系統(tǒng),</p><p>  為公司和客戶雙方都提供了方便。</p><p><b>  2.2 功能需求</b></p><p>  汽車銷售系統(tǒng)一個最主要的目的就是為銷售公司和客戶提供方便快捷的雙向選擇服務,因此其主要的使用者有兩類,即客戶和汽車銷售公司,并且其功能主要實現(xiàn)雙方交易的透明化和人性化。</p><p>

23、  一、從信息需求的角度分析</p><p>  信息注冊主要包括客戶個人信息的采集和公司現(xiàn)有信息情況的采集。</p><p>  信息交互管理,主要包括客戶向公司下訂單過程的記錄和公司對客戶對車輛要求的滿足。</p><p>  二、從用戶的角度分析</p><p>  客戶首次買車要注冊個人信息。</p><p>

24、  系統(tǒng)管理員要賦予部門管理員的一定權限才能方便各個模塊的管理。</p><p>  子管理員在得到系統(tǒng)管理員的授權后可以對所負責部門實行所有的操作</p><p><b>  2.3 數(shù)據(jù)需求</b></p><p>  一、 客戶的個人信息</p><p>  客戶要在首次購車時注冊個人信息(姓名、性別、身份證號、

25、聯(lián)系方式、學歷、家庭住址等)</p><p>  二、 供貨商的詳細信息</p><p>  供貨商信息包括供貨商的自然信息(公司名稱、公司地址、聯(lián)系方式等)</p><p>  三、 單輛車的基本信息</p><p>  單輛車的基本信息包括汽車的(發(fā)動機編號,汽車類型,汽車價格,汽車外觀,汽車排量,供應商等)</p><

26、;p>  四、 倉庫的基本信息</p><p>  倉庫的基本信息包括(倉庫編號,倉庫最大庫存量,現(xiàn)存量等)</p><p>  第三章 數(shù)據(jù)庫設計</p><p>  3.1 數(shù)據(jù)庫的概念</p><p>  當人們從不同的角度來描述這一概念時就有不同的定義。例如,稱數(shù)據(jù)庫是一個“記錄保存系統(tǒng)”(該定義強調(diào)了數(shù)據(jù)庫是若干記錄的集合

27、)。又如稱數(shù)據(jù)庫是“人們?yōu)榻鉀Q特定的任務,以一定的組織方式存儲在一起的相關的數(shù)據(jù)的集合”(該定義側(cè)重于數(shù)據(jù)的組織)。更有甚者稱數(shù)據(jù)庫是“一個數(shù)據(jù)倉庫”。當然,這種說法雖然形象,但并不嚴謹。嚴格地說,數(shù)據(jù)庫是“按照數(shù)據(jù)結構來組織、存儲和管理數(shù)據(jù)的倉庫”。</p><p>  本系統(tǒng)將使用一直以來使用都最為廣泛的關系模型作為數(shù)據(jù)庫的建設依據(jù)。在用戶的觀點下,關系模型中數(shù)據(jù)的邏輯結構是一張二維表,一個關系對應通常說的一

28、張表,并且關系的每一個分量必須是一個不可分的數(shù)據(jù)項。而一個基于關系模型的數(shù)據(jù)庫則是由若干個二維表組成的。對于一些大型和中型的數(shù)據(jù)庫,如Oracle,SQL Server 2005等都屬于關系型數(shù)據(jù)庫,同時它們所帶有的數(shù)據(jù)庫管理工具是其他小型數(shù)據(jù)庫所沒有的,而同時這些工具又為管理員的工作節(jié)省了很多的時間和財力。</p><p>  3.2 數(shù)據(jù)庫的選擇</p><p>  本系統(tǒng)使用SQL

29、server2005實現(xiàn)關系型數(shù)據(jù)庫。</p><p>  SQL Server 2005 是一個全面的數(shù)據(jù)庫平臺,使用集成的商業(yè)智能 (BI) 工具提供了企業(yè)級的數(shù)據(jù)管理。SQL Server 2005 數(shù)據(jù)庫引擎為關系型數(shù)據(jù)和結構化數(shù)據(jù)提供了更安全可靠的存儲功能,使您可以構建和管理用于業(yè)務的高可用和高性能的數(shù)據(jù)應用程序。SQL Server 2005 數(shù)據(jù)引擎是本企業(yè)數(shù)據(jù)管理解決方案的核心。此外 SQL Se

30、rver 2005 結合了分析、報表、集成和通知功能。這使您的企業(yè)可以構建和部署經(jīng)濟有效的 BI 解決方案,幫助您的團隊通過記分卡、Dashboard、Web services 和移動設備將數(shù)據(jù)應用推向業(yè)務的各個領域?! ∨c Microsoft Visual Studio、Microsoft Office System 以及新的開發(fā)工具包(包括 Business Intelligence Development Studio)的緊密集成

31、使 SQL Server 2005 與眾不同。無論您是開發(fā)人員、數(shù)據(jù)庫管理員、信息工作者還是決策者,SQL Server 2005 都可以為您提供創(chuàng)新的解決方案,幫助您從數(shù)據(jù)中更多地獲益。 </p><p>  3.3 數(shù)據(jù)庫表的描述</p><p>  概念模型是對信息世界建模,其表示方法有很多,其中最為常用的是實體-聯(lián)系模型,即E-R模型,它是用E-R圖來描述現(xiàn)實世界的概念模型

32、。</p><p>  3.3.1 進貨訂單表(汽車4s店向廠商進貨)(stockList_table)</p><p>  該表主要完成公司向供應商進貨的基本清單錄入等功能。在此表中定義了9個字段來進行進貨清單的信息存儲。見表3-1。</p><p>  3.3.2 倉庫表(汽車4s店的倉庫)(depot_table)</p><p>

33、  該表主要完成求公司倉庫添加功能。在此表中定義了4個字段來進行倉庫信息的存儲。見表3-2。</p><p>  3.3.3 財務支出表(汽車4s店進貨的花費)(payout_table)</p><p>  該表主要完成公司財務的支出功能。在此表中定義了5個字段來進行財務的信息存儲。見表3-3。</p><p>  3.3.4 財務收入表(每完成一次交易所得金

34、額 非利潤)(income_table)</p><p>  該表主要完成公司財務的收入功能。在此表中定義了6個字段來進行財務的信息存儲。見表3-4。</p><p>  3.3.5 廠商信息表(汽車4s店進車所選廠商)(factory_table)</p><p>  該表主要對供應商信息的管理。在此表中定義了4個字段來進行信息存儲。見表3-5。</p&g

35、t;<p><b>  表3—5</b></p><p>  3.3.6 汽車基本信息表表(本4s店所經(jīng)營的汽車信息)(car_table)</p><p>  該表主要記錄對汽車的基本信息進行錄入和修改功能。在此表中定義了9個字段來進行信息存儲。見表3-6。</p><p><b>  表3—6</b>&

36、lt;/p><p>  3.3.7 客戶信息表(凡是來本店買車或有買車意向的都成為客戶)(client_table)</p><p>  該表的主要功能是對客戶的基本信息進行登記。在此表中定義了7個字段來進行信息存儲。見表3-7。</p><p><b>  表3—7</b></p><p>  3.3.8 客戶訂單表(

37、客戶下的買車訂單)(orderList_table)</p><p>  該表的主要功能是記錄客戶下訂單表的信息。在此表中定義了8個字段來進行信息存儲。 見表3-8。</p><p><b>  表3—8</b></p><p>  3.3.9 角色表(公司的職位有哪些)(role_table)</p><p>  該

38、表的主要功能是記錄公司職位的信息。在此表中定義了2個字段來進行信息存儲。 見表3-9。</p><p><b>  表3—9</b></p><p>  3.3.10 員工表(公司員工)(staff_table)</p><p>  該表的主要功能是記錄公司員工的信息。在此表中定義了5個字段來進行信息存儲。 見表3-10。</p>

39、<p><b>  表3—10</b></p><p>  3.3.11 權限表(對表的操作)(power_table)</p><p>  該表的主要功能是記錄管理員權限的信息。在此表中定義了3個字段來進行信息存儲。 見表3-11。</p><p><b>  表3—11</b></p>&

40、lt;p>  3.3.12 角色權限對應表(不同職位只能操縱相應表)(power_table)</p><p>  該表的主要功能是記錄角色對應權限的信息。在此表中定義了2個字段來進行信息存儲。 見表3-12。</p><p><b>  表3—12</b></p><p>  3.3.13 角色員工應關系表(power_table)

41、</p><p>  該表的主要功能是記錄員工與角色對應關系的信息。在此表中定義了2個字段來進行信息存儲。 見表3-13。</p><p><b>  表3—13</b></p><p><b>  第四章 技術介紹</b></p><p>  4.1 JAVA開發(fā)語言的選擇</p>

42、;<p>  現(xiàn)在,市場上可以選購的應用開發(fā)產(chǎn)品很多,流行的也有數(shù)十種。目前在我國市場上最為流行,使用最多,最為先進的可用作企業(yè)級開發(fā)語言的產(chǎn)品有:</p><p>  SUN公司的Java</p><p>  Microsoft公司的Visual Basic</p><p>  Microsoft公司的Visual C</p><

43、p>  Borland公司的Delphi</p><p>  Powersoft公司的PowerBulider</p><p>  在目前市場上這些眾多的程序開發(fā)工具中,有些強調(diào)語言的彈性與執(zhí)行效率;有些偏重于可視化程序開發(fā)工具所帶來的便利性與效率的提高,各有各的優(yōu)點和特色,也滿足了不同用戶的不同需求。我的網(wǎng)站選擇Java語言開發(fā),其原因基于以下幾點:</p><

44、p>  Java是一種簡單的、面向?qū)ο蟮?、分布式的、健壯的、安全的、結構中立的、可移植的、性能很優(yōu)異的、多線程的、動態(tài)的語言。 </p><p><b>  一、簡單 </b></p><p>  Java的風格類似于C++,并且摒棄了C++中容易引發(fā)程序錯誤的地方,如指針和內(nèi)存管理。 此外Java提供了豐富的類庫。 </p><p>&

45、lt;b>  二、面向?qū)ο?</b></p><p>  面向?qū)ο罂梢哉f是Java最重要的特性。Java語言的設計完全是面向?qū)ο蟮?。Java支持靜態(tài)和動態(tài)風格的代碼繼承及重用。 </p><p><b>  三、分布式 </b></p><p>  Java包括一個支持HTTP和FTP等基于TCP/IP協(xié)議的子庫。因此,Jav

46、a應用程序可憑借URL打開并訪問網(wǎng)絡上的對象,其訪問方式與訪問本地文件系統(tǒng)幾乎完全相同。</p><p><b>  四、健壯 </b></p><p>  Java致力于檢查程序在編譯和運行時的錯誤。Java自己操縱內(nèi)存減少了內(nèi)存出錯的可能性。Java提供Null指針檢測數(shù)組邊界、檢測異常出口、字節(jié)代碼校驗。 </p><p><b&g

47、t;  五、安全 </b></p><p>  Java的安全性可從兩個方面得到保證。一方面,在Java語言里,像指針和釋放內(nèi)存等C++功能被刪除,避免了非法內(nèi)存操作。另一方面,當Java用來創(chuàng)建瀏覽器時,語言功能和瀏覽器本身提供的功能結合起來,使它更安全。</p><p><b>  六、結構中立 </b></p><p>  為

48、了建立Java作為網(wǎng)絡的一個整體,Java將它的程序編譯成一種結構中立的中間文件格式。只要有Java運行系統(tǒng)的機器都能執(zhí)行這種中間代碼。Java源程序被編譯成一種高層次的與機器無關的byte-code格式語言,這種語言被設計在虛擬機上運行,由機器相關的運行調(diào)試器實現(xiàn)執(zhí)行。 </p><p><b>  七、可移植的 </b></p><p>  Java的可移植性一直

49、是Java程序設計師們的精神指標,也是Java之所以能夠受到程序設計師們喜愛的原因之一,最大的功臣就是JVM的技術。JAVA編譯器產(chǎn)生的目標代碼(J-Code) 是針對一種并不存在的CPU--JAVA虛擬機(JAVA Virtual Machine),而不是某一實際的CPU。JAVA虛擬機能掩蓋不同CPU之間的差別,使J-Code能運行于任何具有JAVA虛擬機的機器上。 </p><p><b>  八

50、、高性能 </b></p><p>  Java可以在運行時直接將目標代碼翻譯成機器指令。Sun用直接解釋器一秒鐘內(nèi)可調(diào)用300,000個過程。翻譯目標代碼的速度與C/C++的性能沒什么區(qū)別。 </p><p><b>  九、多線程 </b></p><p>  Java支持多線程,多線程功能使得在一個程序里可同時執(zhí)行多個小任務。

51、線程,有時也稱小進程,是一個大進程里分出來的小的獨立的進程。</p><p><b>  十、動態(tài) </b></p><p>  Java的動態(tài)特性是其面向?qū)ο笤O計方法的發(fā)展。它允許程序動態(tài)地裝入運行過程中所需要的類,這是C++語言進行面向?qū)ο蟪绦蛟O計所無法實現(xiàn)的。Java編譯器不是將對實例變量和成員函數(shù)的引用編譯為數(shù)值引用,而是將符號引用信息在字節(jié)碼中保存下傳遞給解

52、釋器,再由解釋器在完成動態(tài)連接類后,將符號引用信息轉(zhuǎn)換為數(shù)值偏移量。</p><p>  4.2 MVC設計模式</p><p>  MVC是Model-View-Controller的簡稱,它是一種設計模式,它把應用程序分成三個核心模塊:模型、視圖、控制器,它們各自處理自己的任務。</p><p>  視圖是用戶看到并與之交互的界面,作用包括向用戶顯示相關的數(shù)

53、據(jù)、接受用戶的輸入、向模型查詢業(yè)務狀態(tài)、接受模型發(fā)出的數(shù)據(jù)更新事件,從而對用戶界面進行同步更新。</p><p>  模型表示業(yè)務數(shù)據(jù)和業(yè)務邏輯,是應用程序的主體部分。一個模型能為多個視圖提供數(shù)據(jù),因此提高了代碼的可重用性。</p><p>  控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。當Web用戶單擊Web頁面中的遞交按鈕來發(fā)送HTML表單時,控制器本身不輸出任何東西和做任何

54、處理??刂破鹘邮照埱蟛Q定調(diào)用哪個模型組件去處理請求,然后決定調(diào)用哪個視圖來顯示模型處理返回的數(shù)據(jù)。</p><p>  MVC的優(yōu)點表現(xiàn)在如下幾個方面:</p><p>  首先,最重要的一點是多個視圖能共享一個模型。同一個模型可以被不同的視圖重用,大大提高了代碼的可重用性。</p><p>  由于MVC的三個模塊相互獨立,改變其中一個不會影響其他兩個,所以依據(jù)

55、這種設計思想能構造良好的松偶合的構件。</p><p>  此外,控制器提高了應用程序的靈活性和可配置性??刂破骺梢杂脕砺?lián)接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構造應用程序提供強有力的手段。</p><p>  MVC處理過程的結構圖,見圖4-2</p><p><b>  圖4—2</b></p><p>

56、;  4.3 Struts,Hibernate,Spring技術</p><p>  4.3.1 Struts</p><p>  Struts 是目前Java Web MVC框架中不爭的王者。Struts由一組相互協(xié)作的類(組件)、Serlvet以及jsp tag lib組成。由于Struts 實質(zhì)上就是在JSP Model2的基礎上實現(xiàn)的

57、一個MVC框架,所以基于struts構架的web應用程序基本上符合JSP Model2即MVC的設計標準。其中的模型是JavaBean,控制器是ActionServlet、Action,視圖是JSP、Struts客戶化標簽。</p><p>  Struts 控制器組件主要包括:充當Struts框架的中央控制器的ActionServlet組件、充當每個子應用模塊的請求處理器的RequestProcess

58、or組件、負責處理一項具體的業(yè)務的Action組件。</p><p>  其工作流程如圖4-3-1</p><p><b>  圖4—3-1</b></p><p>  Struts 的另一特點是使用ActionForm Bean,ActionForm Bean也是一種JavaBean,除了具有一些JavaBean的常規(guī)方法,還包含一

59、些特殊的方法,用于驗證HTML表單數(shù)據(jù)以及將其屬性重新設置為默認值。Struts框架利用ActionForm Bean來進行View組件和Controller組件之間表單數(shù)據(jù)的傳遞。JSP文件使用Struts標簽讀取修改后的ActionForm Bean的信息,重新設置HTML表單。</p><p>  4.3.2 Hibernate</p><p>  Hibernate是連接Jav

60、a應用程序和關系數(shù)據(jù)庫的中間件,它封裝了JDBC,實現(xiàn)了Java對象的持久化;封裝了所有數(shù)據(jù)訪問細節(jié),使業(yè)務邏輯層專注于業(yè)務邏輯。并且通過對象關系映射(Object Relational Mapping,簡稱ORM)解決了面向?qū)ο笈c關系數(shù)據(jù)庫之間存在的互不匹配的現(xiàn)象。如圖4-3</p><p>  4.3.3 Spring</p><p>  Spring是為了降低企業(yè)應用開發(fā)的復雜性

61、而創(chuàng)建的。Spring只使用基本的JavaBeans就能完成以前必須通過EJB來完成的事情,而與EJB是相比,Spring 的核心是個輕量級的容器,它是實現(xiàn)IoC(Inversion of Control-控制反轉(zhuǎn))容器,是非侵入性的框架,并提供AOP(Aspect-oriented programming-面向方面編程)概念的實現(xiàn)方式,提供對持久層和事務的支持,提供MVC Web 框架的實現(xiàn),并對一些常用的企業(yè)服務API提供一致的模型

62、封裝,是一個全方位的應用程序框架。</p><p><b>  圖4—3-3</b></p><p>  4.4 SQL語言</p><p>  SQL(Structure Query Language結構化查詢語言)自1974年被提出,至今已經(jīng)是世界上最流行的關系數(shù)據(jù)庫的標準語言。</p><p><b>

63、;  SQL語言的分類</b></p><p>  一、DDL(Data Definition Language)數(shù)據(jù)定義語言,其作用包括創(chuàng)建數(shù)據(jù)庫對象、刪除數(shù)據(jù)庫對象、修改數(shù)據(jù)庫對象(create、drop、alter)。</p><p>  二、DML(Data Manipulation Language)數(shù)據(jù)操縱語言,其作用包括查找數(shù)據(jù)信息、插入數(shù)據(jù)信息、刪除數(shù)據(jù)信息、更

64、改數(shù)據(jù)信息(select、 insert、 delete、 update)。</p><p>  三、DCL(Data Control Language)數(shù)據(jù)控制語言,作用主要對是授權數(shù)據(jù)庫對象(grant, revoke)。</p><p>  4.5 開發(fā)環(huán)境</p><p>  操作系統(tǒng):WINDOWS XP;</p><p>  

65、運行工具:IE 7.0</p><p>  開發(fā)工具:Eclipse 數(shù)據(jù)庫: MySQL 5.12</p><p>  服務器: Tomcat 6.0</p><p>  輔助工具:Adobe Photoshop CS, Flash V8.0</p><p><b>  第五章 系統(tǒng)實現(xiàn)</b></p>

66、<p>  5.1 系統(tǒng)總體架構及實現(xiàn)</p><p>  5.1.1 系統(tǒng)總體結構圖</p><p><b>  圖5—1-1</b></p><p>  5.1.2 用戶首頁界面風格</p><p>  圖5-1-2 登錄界面</p><p>  汽車銷售系統(tǒng)的主頁面可以

67、4大管理模塊,如果想了解具體的信息或進行相對的操作,就必須具有相應的權限。通過身份登錄以后,可以實現(xiàn)相關的功能的操作。對于沒有權限的用戶,本系統(tǒng)將不提供任何服務。</p><p>  5.2 進貨管理</p><p>  5.2.1 功能描述</p><p>  進貨管理只有進貨管理員才可以登錄在登錄后可顯示“進貨管理” ,選擇“查看進貨訂單”“增加進貨訂單

68、”“查看汽車基本信息”“查看供應商信息”“添加廠商信息”等操作,可以對相應的功能進行操作。</p><p>  5.2.2 模塊流程圖</p><p><b>  圖5—2-2</b></p><p>  5.2.3 界面風格</p><p>  圖5-2-3操作界面</p><p>  

69、5.2.4 代碼實現(xiàn)(部分)</p><p><b>  DAO實現(xiàn)方法:</b></p><p>  package com.csms.stock.dao.impl;</p><p>  import java.sql.SQLException;</p><p>  import java.util.HashMap

70、;</p><p>  import java.util.List;</p><p>  import java.util.Map;</p><p>  import com.csms.stock.bean.CarDTO;</p><p>  import com.csms.stock.bean.FactoryDTO;</p>

71、<p>  import com.csms.stock.bean.StockListDTO;</p><p>  import com.csms.stock.dao.StockListDAO;</p><p>  import com.softstone.mvc.dao.DAOFactory;</p><p>  import com.softstone.

72、mvc.dao.DaoSupport;</p><p>  import com.softstone.mvc.dao.DefaultParams;</p><p>  import com.softstone.mvc.model.Paging;</p><p>  public class StockListDaoImpl extends DaoSupport im

73、plements StockListDAO {</p><p>  private static final String SQL_insert="insert into stockList_table( carType, carSum,stockPrice,stockSum,stockTime,facId,enterEst,staId) values(?,?,?,?,?,?,?,?)";&l

74、t;/p><p>  private static final String SQL_select="select stockId,carType,carSum,stockPrice,stockSum,stockTime,facId,enterEst,staId from stockList_table";</p><p>  private static final St

75、ring SQL_selectById="select * from stockList_table where stockId=?";</p><p>  private static final String SQL_update="update stockList_table set carType=?,enterEst=?,stockTime=?,carSum=?,facId

76、=?,stockPrice =?,stockSum=? where stockId=?";</p><p>  private static final String SQL_selectFactory="select facId from factory_table";</p><p>  private static final String SQL_se

77、lStaId="select staId from staff_table";</p><p>  private static final String SQL_FindId="select stockId,carType,carSum,stockPrice,stockSum,stockTime from stockList_table where enterEst='未入

78、庫'";</p><p>  private static final String SQL_Findengine = "select * from car_table where stockId=?";</p><p>  private static final String SQL = "select * from stockList_

79、table where enterEst='未入庫'";</p><p>  private int ret=0;</p><p>  DefaultParams params=new DefaultParams();</p><p>  public List<StockListDTO> SQL(Paging paging)

80、 {</p><p><b>  try {</b></p><p>  return this.queryForList(SQL, StockListDTO.class,paging);</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace()

81、;</p><p><b>  }</b></p><p>  return null;</p><p><b>  }</b></p><p>  public int insert(StockListDTO stockList) {</p><p><b>  

82、try {</b></p><p>  params.addParam(stockList.getCarType());</p><p>  params.addParam(stockList.getCarSum());</p><p>  params.addParam(stockList.getStockPrice());</p>&l

83、t;p>  params.addParam(stockList.getStockSum());</p><p>  params.addParam(stockList.getStockTime());</p><p>  params.addParam(stockList.getFacId());</p><p>  params.addParam(stock

84、List.getEnterEst());</p><p>  params.addParam(stockList.getStaId());</p><p>  ret=this.execute(SQL_insert, params);</p><p>  } catch (SQLException e) {</p><p>  e.print

85、StackTrace();</p><p><b>  }</b></p><p>  return ret;</p><p><b>  }</b></p><p><b>  //更新修改進貨單</b></p><p>  public int u

86、pdate(StockListDTO stockList) {</p><p><b>  try {</b></p><p>  params.addParam(stockList.getCarType());</p><p>  params.addParam(stockList.getEnterEst());</p><

87、;p>  params.addParam(stockList.getStockTime());</p><p>  params.addParam(stockList.getCarSum());</p><p>  params.addParam(stockList.getFacId());</p><p>  params.addParam(stockLis

88、t.getStockPrice());</p><p>  params.addParam(stockList.getStockSum());</p><p>  params.addParam(stockList.getStockId());</p><p>  System.out.println(": "+stockList.getStoc

89、kId());</p><p>  System.out.println("getCarType: "+stockList.getCarType());</p><p>  ret=this.execute(SQL_update, params);</p><p>  System.out.println("winfakg"+

90、ret);</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  return ret;</p><p><b>  }</b><

91、;/p><p>  //查詢員工信息表中所有的員工編號</p><p>  public List<StockListDTO> queryByName(Paging paging) {</p><p><b>  try {</b></p><p>  return this.queryForList(SQL_

92、FindId, StockListDTO.class, paging);</p><p>  } catch (SQLException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p>  return null;</p>&l

93、t;p><b>  }</b></p><p>  public Map<String,CarDTO> carMap(){</p><p>  return this.queryForMap("engineId", SQL_Findengine, CarDTO.class);</p><p><b&g

94、t;  }</b></p><p>  //根據(jù)廠商的編號得到廠商的名字</p><p>  public Map<Integer,String> getFacName(){</p><p>  Map<Integer,String> map=new HashMap<Integer, String>();</p&

95、gt;<p>  FactoryDaoImpl dao=(FactoryDaoImpl) DAOFactory.createDAO(FactoryDaoImpl.class,conn);</p><p>  List<FactoryDTO> list=dao.list();</p><p>  for(FactoryDTO dep:list){</p>

96、<p>  map.put(dep.getFacId(), dep.getFacName());</p><p><b>  }</b></p><p>  return map;</p><p><b>  }</b></p><p><b>  @Override<

97、/b></p><p>  public List<StockListDTO> list() {</p><p>  return null;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>

98、  Action:</b></p><p>  package com.csms.stock.action;</p><p>  import java.io.IOException;</p><p>  import java.util.Date;</p><p>  import java.util.List;</p&g

99、t;<p>  import java.util.Map;</p><p>  import javax.servlet.ServletException;</p><p>  import javax.servlet.http.HttpServletRequest;</p><p>  import javax.servlet.http.HttpSe

100、rvletResponse;</p><p>  import javax.servlet.http.HttpSession;</p><p>  import com.csms.check.bean.CheckDTO;</p><p>  import com.csms.power.dao.impl.StaffDaoImpl;</p><p&g

101、t;  import com.csms.stock.bean.FactoryDTO;</p><p>  import com.csms.stock.bean.StockListDTO;</p><p>  import com.csms.stock.dao.impl.StockListDaoImpl;</p><p>  import com.softstone.

102、mvc.controller.Action;</p><p>  import com.softstone.mvc.dao.DAOFactory;</p><p>  import com.softstone.mvc.model.DTO;</p><p>  public class stocklistAction extends Action{</p>

103、<p><b>  @Override</b></p><p>  protected String findbyId(HttpServletRequest request,</p><p>  HttpServletResponse response) throws ServletException, IOException {</p>

104、<p>  HttpSession session = request.getSession();</p><p>  int stockId = Integer.parseInt(request.getParameter("stockId"));</p><p>  StockListDTO dto=new StockListDTO();</p>

105、<p>  dto.setStockId(stockId);</p><p>  System.out.println(stockId);</p><p>  StockListDaoImpl dao=(StockListDaoImpl) DAOFactory.createDAO(StockListDaoImpl.class,conn);</p><p&g

106、t;  List<StockListDTO> dtos=dao.listByPaging(paging);</p><p>  dto = dao.queryById(dto);</p><p>  int facId = dto.getFacId();</p><p>  System.out.println("供貨商Id:"+fa

107、cId);</p><p>  Map<Integer,String> facList=dao.getFacName();</p><p>  request.setAttribute("map", facList);</p><p>  session.setAttribute("facId", facId);&

108、lt;/p><p>  request.setAttribute("stocklist", dto);</p><p>  request.setAttribute("stockList", dtos);</p><p>  return this.SUCCESS;</p><p><b>  }

109、</b></p><p>  @SuppressWarnings("deprecation")</p><p><b>  @Override</b></p><p>  protected String insert(HttpServletRequest request,</p><p>

110、;  HttpServletResponse response) throws ServletException, IOException {</p><p>  StockListDaoImpl dao=(StockListDaoImpl) DAOFactory.createDAO(StockListDaoImpl.class,conn);</p><p>  String carTyp

111、e=request.getParameter("carType");</p><p>  String enterEst=request.getParameter("enterEst");</p><p>  int carSum=Integer.parseInt(request.getParameter("carSum"));&

112、lt;/p><p>  int stockPrice=Integer.parseInt(request.getParameter("stockPrice"));</p><p>  int facId=Integer.parseInt(request.getParameter("facId"));</p><p>  Date s

113、tockTime=new Date(request.getParameter("stockTime"));</p><p>  StockListDTO dto=new StockListDTO();</p><p>  dto.setCarSum(carSum);</p><p>  dto.setCarType(carType);</p

114、><p>  dto.setEnterEst(enterEst);</p><p>  dto.setFacId(facId);</p><p>  dto.setStockPrice(stockPrice);</p><p>  dto.setStockSum(carSum*stockPrice);</p><p>  

115、dto.setStockTime(stockTime);</p><p>  dto.setStaId(((CheckDTO) (request.getSession().getAttribute("check"))).getStaId());</p><p>  int ret=dao.insert(dto);</p><p>  if(ret

116、!=0){</p><p>  return this.SUCCESS;</p><p><b>  }</b></p><p>  return this.FAILURE;</p><p><b>  }</b></p><p><b>  @Override&l

117、t;/b></p><p>  protected String listByPaging(HttpServletRequest request,</p><p>  HttpServletResponse response) throws ServletException, IOException {</p><p>  StockListDaoImpl d

118、ao=(StockListDaoImpl) DAOFactory.createDAO(StockListDaoImpl.class,conn);</p><p>  StaffDaoImpl dao1=(StaffDaoImpl) DAOFactory.createDAO(StaffDaoImpl.class,conn);</p><p>  paging=dao.getPaging();

119、</p><p>  this.initPaging(request);</p><p>  List<StockListDTO> stockList=dao.listByPaging(paging);</p><p>  Map<Integer,String> facList=dao.getFacName();</p><

120、;p>  Map<Integer,String> staList=dao1.queryformap();</p><p>  System.out.println("1234");</p><p>  request.setAttribute("paging",paging);</p><p>  reque

溫馨提示

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

評論

0/150

提交評論