汽車銷售管理系統(tǒng)(含代碼)_第1頁(yè)
汽車銷售管理系統(tǒng)(含代碼)_第2頁(yè)
汽車銷售管理系統(tǒng)(含代碼)_第3頁(yè)
汽車銷售管理系統(tǒng)(含代碼)_第4頁(yè)
汽車銷售管理系統(tǒng)(含代碼)_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、汽車銷售系統(tǒng)設(shè)計(jì) 【摘 要】本系統(tǒng)是為解決汽車銷售公司的管理問題而設(shè)計(jì)。隨著經(jīng)濟(jì)的發(fā)展和國(guó)內(nèi)汽車市場(chǎng)的不斷擴(kuò)大,某汽車銷售公司定單成倍增加,各項(xiàng)業(yè)務(wù)更加細(xì)化,各部門分工更加明確。而目前的人工管理方式顯然已是不符合現(xiàn)代企業(yè)的管理要求?;谡w考慮,本次課程設(shè)計(jì)任務(wù)就是設(shè)計(jì)一個(gè)管理系統(tǒng),利用計(jì)算機(jī)來代替人工操作。減輕了員工的勞動(dòng)強(qiáng)度,提高了勞動(dòng)質(zhì)量和效率,減少了錯(cuò)誤的發(fā)生。本次設(shè)計(jì),從需求分析,概念設(shè)計(jì),邏輯設(shè)計(jì),物理設(shè)計(jì),到數(shù)據(jù)庫(kù)的建立、運(yùn)行,再到數(shù)據(jù)庫(kù)的安全維護(hù)等各個(gè)方面進(jìn)行了詳細(xì)的分析設(shè)計(jì)。并且值得一提的是,我認(rèn)真分析了企業(yè)的業(yè)務(wù)需求,公司的主要職責(zé)和主要結(jié)構(gòu)等信息,從而保證了設(shè)計(jì)出比較符合

2、公司需要的管理系統(tǒng)?!娟P(guān)鍵詞】數(shù)據(jù)庫(kù);課程設(shè)計(jì);轎車銷售管理 JAVACar sales system 【Abstract】 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, the business is more refined, more explici

3、t division of labor. The current manual management is not clearly meet therequirements of modern enterprise management.Based on overall consideration, this task is to design a curriculum management system, using computer to replace manual operation. Reduce the labor intensity of the employees, impro

4、ve labor quality and efficiency, reduced errors.The design, from requirements analysis, conceptual design, logical design, physical design, to database development, operation, maintenance, security of the databaseand then to various aspects of the detailed analysis of the design. And worth mentionin

5、g is that I carefully analyzed the company's business needs, the company'smain responsibilities and main structure information, thus ensuring the need to designmore in line with the company's management system. 【Keywords】Database; curriculum design; car sales management JAVA 目 錄第一章緒論11.1

6、 課題來源11.2 國(guó)內(nèi)現(xiàn)狀11.3 研究意義1第二章需求分析32.1 系統(tǒng)定義32.2 功能需求32.3 數(shù)據(jù)需求3第三章數(shù)據(jù)庫(kù)設(shè)計(jì)43.1 數(shù)據(jù)庫(kù)的概念43.2 數(shù)據(jù)庫(kù)的選擇43.3 數(shù)據(jù)庫(kù)表的描述4第四章技術(shù)介紹114.1 JAVA開發(fā)語言的選擇114.2 MVC設(shè)計(jì)模式124.3 Struts,Hibernate,Spring技術(shù)134.4 SQL語言154.5 開發(fā)環(huán)境15第五章系統(tǒng)實(shí)現(xiàn)165.1網(wǎng)站總體架構(gòu)及實(shí)現(xiàn)165.2 查看公司信息185.3 投遞簡(jiǎn)歷205.4 查看個(gè)人簡(jiǎn)歷225.5 求職者查看來自公司的回復(fù)245.6 其他功能26第六章結(jié)論31致 謝32參考文獻(xiàn)33附錄一

7、數(shù)據(jù)庫(kù)連接34附錄二 聲明式事務(wù)管理35III第一章 緒論1.1 1.1 課題來源汽車產(chǎn)業(yè)的興旺發(fā)展帶動(dòng)顧客對(duì)于汽車類型選擇的大步前進(jìn),目前大多數(shù)汽車銷售連鎖店的銷售管理是用簡(jiǎn)易進(jìn)行的。隨著汽車款式的不斷更新,汽車各項(xiàng)功能配置會(huì)不斷的增多,簡(jiǎn)易工作已不能適應(yīng)時(shí)代的發(fā)展需求,由于各銷售店每天的銷售量很大,難免會(huì)在業(yè)務(wù)方面及財(cái)務(wù)方面出現(xiàn)漏洞,給企業(yè)的經(jīng)營(yíng)帶來種種弊端,有時(shí)還會(huì)帶給客戶不必要的麻煩。要想解決這些難題,就必須有一套科學(xué)、高效、嚴(yán)密汽車銷售管理系統(tǒng)作為依托進(jìn)行和客戶的交易。當(dāng)今的中小企業(yè),一般應(yīng)具有產(chǎn)品開發(fā)、生產(chǎn)、銷售、服務(wù)的能力,為此企業(yè)都設(shè)有相應(yīng)的機(jī)構(gòu),以管理各個(gè)環(huán)節(jié)的業(yè)務(wù)。以此前提

8、作為系統(tǒng)設(shè)計(jì)的基礎(chǔ),開發(fā)一個(gè)更適合客戶和銷售人員交流的這樣一個(gè)汽車銷售系統(tǒng),來滿足日益發(fā)展的汽車銷售業(yè).的要求。 1.2 國(guó)內(nèi)現(xiàn)狀汽車產(chǎn)業(yè)的興旺發(fā)展帶動(dòng)顧客對(duì)于汽車類型選擇的大步前進(jìn),目前大多數(shù)汽車銷售連鎖店的銷售管理是用簡(jiǎn)易進(jìn)行的。隨著汽車款式的不斷更新,汽車各項(xiàng)功能配置會(huì)不斷的增多,簡(jiǎn)易工作已不能適應(yīng)時(shí)代的發(fā)展需求,由于各銷售店每天的銷售量很大,難免會(huì)在業(yè)務(wù)方面及財(cái)務(wù)方面出現(xiàn)漏洞,給企業(yè)的經(jīng)營(yíng)帶來種種弊端,有時(shí)還會(huì)帶給客戶不必要的麻煩。要想解決這些難題,就必須有一套科學(xué)、高效、嚴(yán)密汽車銷售管理系統(tǒng)作為依托進(jìn)行和客戶的交易。當(dāng)今的中小企業(yè),一般應(yīng)具有產(chǎn)品開發(fā)、生產(chǎn)、銷售、服務(wù)的能力,為此企業(yè)

9、都設(shè)有相應(yīng)的機(jī)構(gòu),以管理各個(gè)環(huán)節(jié)的業(yè)務(wù)。以此前提作為系統(tǒng)設(shè)計(jì)的基礎(chǔ),開發(fā)一個(gè)更適合客戶和銷售人員交流的這樣一個(gè)汽車銷售系統(tǒng),來滿足日益發(fā)展的汽車銷售業(yè).的要求。 1.2 1.3 研究意義為了更好的適應(yīng)汽車銷售管理市場(chǎng)發(fā)展的不平衡性,更好的為客戶在選擇汽車類型方面便利,為更多不了解汽車的客戶提供一個(gè)交流平臺(tái),我們選擇這樣一個(gè)信息管理系統(tǒng)來進(jìn)行。 第二章 需求分析1.3 2.1 系統(tǒng)定義 汽車銷售系統(tǒng)的出現(xiàn)代替了人工記錄。那么本系統(tǒng)作為汽車銷售行業(yè)的一個(gè)系統(tǒng),為公司和客戶雙方都提供了方便。1.4 2.2 功能需求汽車銷售系統(tǒng)一個(gè)最主要的目的就是為銷售公司和客戶提供方便快捷的雙向選擇服務(wù),因此其主要

10、的使用者有兩類,即客戶和汽車銷售公司,并且其功能主要實(shí)現(xiàn)雙方交易的透明化和人性化。一、從信息需求的角度分析信息注冊(cè)主要包括客戶個(gè)人信息的采集和公司現(xiàn)有信息情況的采集。信息交互管理,主要包括客戶向公司下訂單過程的記錄和公司對(duì)客戶對(duì)車輛要求的滿足。二、從用戶的角度分析客戶首次買車要注冊(cè)個(gè)人信息。系統(tǒng)管理員要賦予部門管理員的一定權(quán)限才能方便各個(gè)模塊的管理。子管理員在得到系統(tǒng)管理員的授權(quán)后可以對(duì)所負(fù)責(zé)部門實(shí)行所有的操作1.5 2.3 數(shù)據(jù)需求一、 客戶的個(gè)人信息客戶要在首次購(gòu)車時(shí)注冊(cè)個(gè)人信息(姓名、性別、身份證號(hào)、聯(lián)系方式、學(xué)歷、家庭住址等)二、 供貨商的詳細(xì)信息供貨商信息包括供貨商的自然信息(公司名

11、稱、公司地址、聯(lián)系方式等)三、 單輛車的基本信息單輛車的基本信息包括汽車的(發(fā)動(dòng)機(jī)編號(hào),汽車類型,汽車價(jià)格,汽車外觀,汽車排量,供應(yīng)商等)四、 倉(cāng)庫(kù)的基本信息 倉(cāng)庫(kù)的基本信息包括(倉(cāng)庫(kù)編號(hào),倉(cāng)庫(kù)最大庫(kù)存量,現(xiàn)存量等)第三章 數(shù)據(jù)庫(kù)設(shè)計(jì)1.6 3.1 數(shù)據(jù)庫(kù)的概念當(dāng)人們從不同的角度來描述這一概念時(shí)就有不同的定義。例如,稱數(shù)據(jù)庫(kù)是一個(gè)“記錄保存系統(tǒng)”(該定義強(qiáng)調(diào)了數(shù)據(jù)庫(kù)是若干記錄的集合)。又如稱數(shù)據(jù)庫(kù)是“人們?yōu)榻鉀Q特定的任務(wù),以一定的組織方式存儲(chǔ)在一起的相關(guān)的數(shù)據(jù)的集合”(該定義側(cè)重于數(shù)據(jù)的組織)。更有甚者稱數(shù)據(jù)庫(kù)是“一個(gè)數(shù)據(jù)倉(cāng)庫(kù)”。當(dāng)然,這種說法雖然形象,但并不嚴(yán)謹(jǐn)。嚴(yán)格地說,數(shù)據(jù)庫(kù)是“按照數(shù)據(jù)

12、結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)”。本系統(tǒng)將使用一直以來使用都最為廣泛的關(guān)系模型作為數(shù)據(jù)庫(kù)的建設(shè)依據(jù)。在用戶的觀點(diǎn)下,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,一個(gè)關(guān)系對(duì)應(yīng)通常說的一張表,并且關(guān)系的每一個(gè)分量必須是一個(gè)不可分的數(shù)據(jù)項(xiàng)。而一個(gè)基于關(guān)系模型的數(shù)據(jù)庫(kù)則是由若干個(gè)二維表組成的。對(duì)于一些大型和中型的數(shù)據(jù)庫(kù),如Oracle,SQL Server 2005等都屬于關(guān)系型數(shù)據(jù)庫(kù),同時(shí)它們所帶有的數(shù)據(jù)庫(kù)管理工具是其他小型數(shù)據(jù)庫(kù)所沒有的,而同時(shí)這些工具又為管理員的工作節(jié)省了很多的時(shí)間和財(cái)力。1.7 3.2 數(shù)據(jù)庫(kù)的選擇本系統(tǒng)使用SQLserver2005實(shí)現(xiàn)關(guān)系型數(shù)據(jù)庫(kù)。SQL Server 2005

13、 是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),使用集成的商業(yè)智能 (BI) 工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。SQL Server 2005 數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。SQL Server 2005 數(shù)據(jù)引擎是本企業(yè)數(shù)據(jù)管理解決方案的核心。此外 SQL Server 2005 結(jié)合了分析、報(bào)表、集成和通知功能。這使您的企業(yè)可以構(gòu)建和部署經(jīng)濟(jì)有效的 BI 解決方案,幫助您的團(tuán)隊(duì)通過記分卡、Dashboard、Web services 和移動(dòng)設(shè)備將數(shù)據(jù)應(yīng)用推向業(yè)務(wù)的各個(gè)領(lǐng)域。與 Microsoft Visual Studio、Mi

14、crosoft Office System 以及新的開發(fā)工具包(包括 Business Intelligence Development Studio)的緊密集成使 SQL Server 2005 與眾不同。無論您是開發(fā)人員、數(shù)據(jù)庫(kù)管理員、信息工作者還是決策者,SQL Server 2005 都可以為您提供創(chuàng)新的解決方案,幫助您從數(shù)據(jù)中更多地獲益。 3.3 數(shù)據(jù)庫(kù)表的描述概念模型是對(duì)信息世界建模,其表示方法有很多,其中最為常用的是實(shí)體聯(lián)系模型,即ER模型,它是用ER圖來描述現(xiàn)實(shí)世界的概念模型。 3.3.1進(jìn)貨訂單表(汽車4s店向廠商進(jìn)貨)(stockList_table)該表主要完成公司向供應(yīng)

15、商進(jìn)貨的基本清單錄入等功能。在此表中定義了9個(gè)字段來進(jìn)行進(jìn)貨清單的信息存儲(chǔ)。見表31。表31字段英文名類型是否主鍵外鍵關(guān)聯(lián)長(zhǎng)度備注清單編號(hào)stockIdIntYes無汽車類型carTypevarcharNo關(guān)聯(lián)汽車信息表255汽車數(shù)量caiSumintNo無 只能大于零進(jìn)貨單價(jià)stockPriceIntNo無只能大于零進(jìn)貨日期stockTimedateTimeNo無進(jìn)貨總價(jià)stockSumintNo無由單價(jià)和數(shù)量計(jì)算入庫(kù)狀態(tài)enterEstvarcharNo無255默認(rèn)未入庫(kù)供應(yīng)廠商facIdVarchar No關(guān)聯(lián)廠商表255進(jìn)貨管理員staIdintNo關(guān)聯(lián)員工表255 3.3.2倉(cāng)庫(kù)表(

16、汽車4s店的倉(cāng)庫(kù))(depot_table)該表主要完成求公司倉(cāng)庫(kù)添加功能。在此表中定義了4個(gè)字段來進(jìn)行倉(cāng)庫(kù)信息的存儲(chǔ)。見表32。表32字段英文名類型是否主鍵外鍵關(guān)聯(lián)長(zhǎng)度備注倉(cāng)庫(kù)編號(hào)depotIdIntYes 無倉(cāng)庫(kù)管理員staIdvarcharNo關(guān)聯(lián)員工表255現(xiàn)存量liveSumintNo無不能小于零最大庫(kù)存量maxSumintNo無不能小于等于零 3.3.3財(cái)務(wù)支出表(汽車4s店進(jìn)貨的花費(fèi))(payout_table)該表主要完成公司財(cái)務(wù)的支出功能。在此表中定義了5個(gè)字段來進(jìn)行財(cái)務(wù)的信息存儲(chǔ)。見表33。字段英文名類型是否主鍵外鍵關(guān)聯(lián)長(zhǎng)度備注支出編號(hào)payIdInt Yes無進(jìn)貨訂單號(hào):

17、stockIdintNo關(guān)聯(lián)進(jìn)貨訂單表支出總額payCouintNo無由進(jìn)貨單得到支出時(shí)間payTimevarcharNo無255財(cái)務(wù)管理員staIdintNo關(guān)聯(lián)員工表 3.3.4財(cái)務(wù)收入表(每完成一次交易所得金額 非利潤(rùn))(income_table)該表主要完成公司財(cái)務(wù)的收入功能。在此表中定義了6個(gè)字段來進(jìn)行財(cái)務(wù)的信息存儲(chǔ)。見表34。字段英文名類型是否主鍵外鍵關(guān)聯(lián)長(zhǎng)度備注收入編號(hào)incomeIdIntYes客戶訂單編號(hào)orderIdintNo關(guān)聯(lián)汽車信息表應(yīng)收金額accMoneyintNo關(guān)聯(lián)汽車信息表從汽車信息表中能到實(shí)收金額factMoneyIntNo收款時(shí)間receTimedateT

18、imeNo收款人staIdintNo關(guān)聯(lián)員工表 3.3.5廠商信息表(汽車4s店進(jìn)車所選廠商)(factory_table)該表主要對(duì)供應(yīng)商信息的管理。在此表中定義了4個(gè)字段來進(jìn)行信息存儲(chǔ)。見表35。表35字段英文名類型是否主鍵外鍵關(guān)聯(lián)長(zhǎng)度備注廠商編號(hào)facIdIntYes無廠商名稱facNamevarcharNo無255廠商地址facAddrvarcharNo無255廠商聯(lián)系方式facTelvarcharNo無255 3.3.6汽車基本信息表表(本4s店所經(jīng)營(yíng)的汽車信息)(car_table)該表主要記錄對(duì)汽車的基本信息進(jìn)行錄入和修改功能。在此表中定義了9個(gè)字段來進(jìn)行信息存儲(chǔ)。見表36。表3

19、6字段英文名類型是否主鍵外鍵關(guān)聯(lián)長(zhǎng)度備注發(fā)動(dòng)機(jī)編號(hào)engineIdvarcharYes無255汽車類型carTypeVarcharNo無255汽車外觀carShowVarcharNo無255汽車售價(jià)carPriceIntNo無汽車排量carPaivarcharNo無255供應(yīng)商facIdintNo關(guān)聯(lián)與廠商信息表進(jìn)貨訂單號(hào)stockIdintNo關(guān)聯(lián)與進(jìn)貨訂單表倉(cāng)庫(kù)編號(hào)depotIdintNo關(guān)聯(lián)與倉(cāng)庫(kù)表出售狀態(tài) carStatevarcharNo255默認(rèn)未售出 3.3.7客戶信息表(凡是來本店買車或有買車意向的都成為客戶)(client_table)該表的主要功能是對(duì)客戶的基本信息進(jìn)行登記

20、。在此表中定義了7個(gè)字段來進(jìn)行信息存儲(chǔ)。見表37。表37字段英文名類型是否主鍵外鍵關(guān)聯(lián)長(zhǎng)度備注客戶身份證號(hào)cliCardVarcharYes無50客戶姓名cliNameVarcharNo無255客戶性別cliSexVarcharNo無50客戶聯(lián)系方式cliTelVarcharNo無255客戶住址cliAddVarcharNo無255客戶職業(yè)cliWorkVarcharNo無255客戶學(xué)歷cliXueliVarcharNo無255 3.3.8客戶訂單表(客戶下的買車訂單)(orderList_table)該表的主要功能是記錄客戶下訂單表的信息。在此表中定義了8個(gè)字段來進(jìn)行信息存儲(chǔ)。 見表38。表

21、38字段英文名類型是否主鍵外鍵關(guān)聯(lián)長(zhǎng)度備注訂單編號(hào)orderIdIntYes客戶身份證號(hào):cliCardvarcharNo關(guān)聯(lián)客戶表50銷售人員:staIdintNo關(guān)聯(lián)員工表汽車類型:carTypeVarcharNo關(guān)聯(lián)汽車信息表255汽車數(shù)量:carSumIntNo只能為1訂單時(shí)間:orderTimedateTimeNo訂單狀態(tài):orderEstVarcharNo50默認(rèn)未交易發(fā)動(dòng)機(jī)編號(hào)3.3.9角色表(公司的職位有哪些)(role_table)該表的主要功能是記錄公司職位的信息。在此表中定義了2個(gè)字段來進(jìn)行信息存儲(chǔ)。 見表39。表39字段英文名類型是否主鍵外鍵關(guān)聯(lián)長(zhǎng)度備注角色編號(hào)rIdI

22、ntYes無角色名rNameVarcharNo無2553.3.10員工表(公司員工)(staff_table)該表的主要功能是記錄公司員工的信息。在此表中定義了5個(gè)字段來進(jìn)行信息存儲(chǔ)。 見表310。表310字段英文名類型是否主鍵外鍵關(guān)聯(lián)長(zhǎng)度備注員工編號(hào)staIdIntYes員工登錄密碼staPassVarcharNo255員工姓名staNameVarcharNo255員工性別staSexVarcharNo50聯(lián)系方式staTelVarcharNo2553.3.11權(quán)限表(對(duì)表的操作)(power_table)該表的主要功能是記錄管理員權(quán)限的信息。在此表中定義了3個(gè)字段來進(jìn)行信息存儲(chǔ)。 見表31

23、1。表311字段英文名類型是否主鍵外鍵關(guān)聯(lián)長(zhǎng)度備注權(quán)限編號(hào)pId IntYes無權(quán)限名pNameVarcharNo無255權(quán)限路徑pURIVarcharNo無2553.3.12角色權(quán)限對(duì)應(yīng)表(不同職位只能操縱相應(yīng)表)(power_table)該表的主要功能是記錄角色對(duì)應(yīng)權(quán)限的信息。在此表中定義了2個(gè)字段來進(jìn)行信息存儲(chǔ)。 見表312。表312字段英文名類型是否主鍵外鍵關(guān)聯(lián)長(zhǎng)度備注角色編號(hào)rIdIntyes關(guān)聯(lián)角色表權(quán)限編號(hào)rIdIntyes關(guān)聯(lián)權(quán)限表1. 3.3.13角色員工對(duì)應(yīng)關(guān)系表(power_table)該表的主要功能是記錄員工與角色對(duì)應(yīng)關(guān)系的信息。在此表中定義了2個(gè)字段來進(jìn)行信息存儲(chǔ)。

24、見表313。表313字段英文名類型是否主鍵外鍵關(guān)聯(lián)長(zhǎng)度備注角色編號(hào)ridIntYes關(guān)聯(lián)角色表員工編號(hào)staIdIntyes關(guān)聯(lián)員工表第四章 技術(shù)介紹4.1 JAVA開發(fā)語言的選擇現(xiàn)在,市場(chǎng)上可以選購(gòu)的應(yīng)用開發(fā)產(chǎn)品很多,流行的也有數(shù)十種。目前在我國(guó)市場(chǎng)上最為流行,使用最多,最為先進(jìn)的可用作企業(yè)級(jí)開發(fā)語言的產(chǎn)品有:SUN公司的JavaMicrosoft公司的Visual BasicMicrosoft公司的Visual CBorland公司的DelphiPowersoft公司的PowerBulider在目前市場(chǎng)上這些眾多的程序開發(fā)工具中,有些強(qiáng)調(diào)語言的彈性與執(zhí)行效率;有些偏重于可視化程序開發(fā)工具所

25、帶來的便利性與效率的提高,各有各的優(yōu)點(diǎn)和特色,也滿足了不同用戶的不同需求。我的網(wǎng)站選擇Java語言開發(fā),其原因基于以下幾點(diǎn):Java是一種簡(jiǎn)單的、面向?qū)ο蟮?、分布式的、健壯的、安全的、結(jié)構(gòu)中立的、可移植的、性能很優(yōu)異的、多線程的、動(dòng)態(tài)的語言。 一、簡(jiǎn)單 Java的風(fēng)格類似于C+,并且摒棄了C+中容易引發(fā)程序錯(cuò)誤的地方,如指針和內(nèi)存管理。 此外Java提供了豐富的類庫(kù)。 二、面向?qū)ο?面向?qū)ο罂梢哉f是Java最重要的特性。Java語言的設(shè)計(jì)完全是面向?qū)ο蟮?。Java支持靜態(tài)和動(dòng)態(tài)風(fēng)格的代碼繼承及重用。 三、分布式 Java包括一個(gè)支持HTTP和FTP等基于TCP/IP協(xié)議的子庫(kù)。因此,Java應(yīng)

26、用程序可憑借URL打開并訪問網(wǎng)絡(luò)上的對(duì)象,其訪問方式與訪問本地文件系統(tǒng)幾乎完全相同。四、健壯 Java致力于檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤。Java自己操縱內(nèi)存減少了內(nèi)存出錯(cuò)的可能性。Java提供Null指針檢測(cè)數(shù)組邊界、檢測(cè)異常出口、字節(jié)代碼校驗(yàn)。 五、安全 Java的安全性可從兩個(gè)方面得到保證。一方面,在Java語言里,像指針和釋放內(nèi)存等C+功能被刪除,避免了非法內(nèi)存操作。另一方面,當(dāng)Java用來創(chuàng)建瀏覽器時(shí),語言功能和瀏覽器本身提供的功能結(jié)合起來,使它更安全。六、結(jié)構(gòu)中立 為了建立Java作為網(wǎng)絡(luò)的一個(gè)整體,Java將它的程序編譯成一種結(jié)構(gòu)中立的中間文件格式。只要有Java運(yùn)行系統(tǒng)的機(jī)器都

27、能執(zhí)行這種中間代碼。Java源程序被編譯成一種高層次的與機(jī)器無關(guān)的byte-code格式語言,這種語言被設(shè)計(jì)在虛擬機(jī)上運(yùn)行,由機(jī)器相關(guān)的運(yùn)行調(diào)試器實(shí)現(xiàn)執(zhí)行。 七、可移植的 Java的可移植性一直是Java程序設(shè)計(jì)師們的精神指標(biāo),也是Java之所以能夠受到程序設(shè)計(jì)師們喜愛的原因之一,最大的功臣就是JVM的技術(shù)。JAVA編譯器產(chǎn)生的目標(biāo)代碼(J-Code) 是針對(duì)一種并不存在的CPU-JAVA虛擬機(jī)(JAVA Virtual Machine),而不是某一實(shí)際的CPU。JAVA虛擬機(jī)能掩蓋不同CPU之間的差別,使J-Code能運(yùn)行于任何具有JAVA虛擬機(jī)的機(jī)器上。 八、高性能 Java可以在運(yùn)行時(shí)直

28、接將目標(biāo)代碼翻譯成機(jī)器指令。Sun用直接解釋器一秒鐘內(nèi)可調(diào)用300,000個(gè)過程。翻譯目標(biāo)代碼的速度與C/C+的性能沒什么區(qū)別。 九、多線程 Java支持多線程,多線程功能使得在一個(gè)程序里可同時(shí)執(zhí)行多個(gè)小任務(wù)。線程,有時(shí)也稱小進(jìn)程,是一個(gè)大進(jìn)程里分出來的小的獨(dú)立的進(jìn)程。十、動(dòng)態(tài) Java的動(dòng)態(tài)特性是其面向?qū)ο笤O(shè)計(jì)方法的發(fā)展。它允許程序動(dòng)態(tài)地裝入運(yùn)行過程中所需要的類,這是C+語言進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)所無法實(shí)現(xiàn)的。Java編譯器不是將對(duì)實(shí)例變量和成員函數(shù)的引用編譯為數(shù)值引用,而是將符號(hào)引用信息在字節(jié)碼中保存下傳遞給解釋器,再由解釋器在完成動(dòng)態(tài)連接類后,將符號(hào)引用信息轉(zhuǎn)換為數(shù)值偏移量。1.8 4.2

29、 MVC設(shè)計(jì)模式MVC是Model-View-Controller的簡(jiǎn)稱,它是一種設(shè)計(jì)模式,它把應(yīng)用程序分成三個(gè)核心模塊:模型、視圖、控制器,它們各自處理自己的任務(wù)。視圖是用戶看到并與之交互的界面,作用包括向用戶顯示相關(guān)的數(shù)據(jù)、接受用戶的輸入、向模型查詢業(yè)務(wù)狀態(tài)、接受模型發(fā)出的數(shù)據(jù)更新事件,從而對(duì)用戶界面進(jìn)行同步更新。模型表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)邏輯,是應(yīng)用程序的主體部分。一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù),因此提高了代碼的可重用性。控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。當(dāng)Web用戶單擊Web頁(yè)面中的遞交按鈕來發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何處理。控制器接收請(qǐng)求并決定調(diào)

30、用哪個(gè)模型組件去處理請(qǐng)求,然后決定調(diào)用哪個(gè)視圖來顯示模型處理返回的數(shù)據(jù)。MVC的優(yōu)點(diǎn)表現(xiàn)在如下幾個(gè)方面:一、 首先,最重要的一點(diǎn)是多個(gè)視圖能共享一個(gè)模型。同一個(gè)模型可以被不同的視圖重用,大大提高了代碼的可重用性。二、 由于MVC的三個(gè)模塊相互獨(dú)立,改變其中一個(gè)不會(huì)影響其他兩個(gè),所以依據(jù)這種設(shè)計(jì)思想能構(gòu)造良好的松偶合的構(gòu)件。三、 此外,控制器提高了應(yīng)用程序的靈活性和可配置性??刂破骺梢杂脕砺?lián)接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構(gòu)造應(yīng)用程序提供強(qiáng)有力的手段。MVC處理過程的結(jié)構(gòu)圖,見圖41。圖411.9 4.3 Struts,Hibernate,Spring技術(shù) 4.3.1 Str

31、utsStruts 是目前Java Web MVC框架中不爭(zhēng)的王者。Struts由一組相互協(xié)作的類(組件)、Serlvet以及jsp tag lib組成。由于Struts 實(shí)質(zhì)上就是在JSP Model2的基礎(chǔ)上實(shí)現(xiàn)的一個(gè)MVC框架,所以基于struts構(gòu)架的web應(yīng)用程序基本上符合JSP Model2即MVC的設(shè)計(jì)標(biāo)準(zhǔn)。其中的模型是JavaBean,控制器是ActionServlet、Action,視圖是JSP、Struts客戶化標(biāo)簽。Struts 控制器組件主要包括:充當(dāng)Struts框架的中央控制器的ActionServlet組件、充當(dāng)每個(gè)

32、子應(yīng)用模塊的請(qǐng)求處理器的RequestProcessor組件、負(fù)責(zé)處理一項(xiàng)具體的業(yè)務(wù)的Action組件。其工作流程如圖42圖42Struts 的另一特點(diǎn)是使用ActionForm Bean,ActionForm Bean也是一種JavaBean,除了具有一些JavaBean的常規(guī)方法,還包含一些特殊的方法,用于驗(yàn)證HTML表單數(shù)據(jù)以及將其屬性重新設(shè)置為默認(rèn)值。Struts框架利用ActionForm Bean來進(jìn)行View組件和Controller組件之間表單數(shù)據(jù)的傳遞。JSP文件使用Struts標(biāo)簽讀取修改后的ActionForm Bean的信息,重新設(shè)置HTML表單。 4.3.2

33、 HibernateHibernate是連接Java應(yīng)用程序和關(guān)系數(shù)據(jù)庫(kù)的中間件,它封裝了JDBC,實(shí)現(xiàn)了Java對(duì)象的持久化;封裝了所有數(shù)據(jù)訪問細(xì)節(jié),使業(yè)務(wù)邏輯層專注于業(yè)務(wù)邏輯。并且通過對(duì)象關(guān)系映射(Object Relational Mapping,簡(jiǎn)稱ORM)解決了面向?qū)ο笈c關(guān)系數(shù)據(jù)庫(kù)之間存在的互不匹配的現(xiàn)象。如圖43 4.3.3 SpringSpring是為了降低企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring只使用基本的JavaBeans就能完成以前必須通過EJB來完成的事情,而與EJB是相比,Spring 的核心是個(gè)輕量級(jí)的容器,它是實(shí)現(xiàn)IoC(Inversion of Control控

34、制反轉(zhuǎn))容器,是非侵入性的框架,并提供AOP(Aspect-oriented programming面向方面編程)概念的實(shí)現(xiàn)方式,提供對(duì)持久層和事務(wù)的支持,提供MVC Web 框架的實(shí)現(xiàn),并對(duì)一些常用的企業(yè)服務(wù)API提供一致的模型封裝,是一個(gè)全方位的應(yīng)用程序框架。圖431.10 4.4 SQL語言SQL(Structure Query Language結(jié)構(gòu)化查詢語言)自1974年被提出,至今已經(jīng)是世界上最流行的關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語言。SQL語言的分類一、DDL(Data Definition Language)數(shù)據(jù)定義語言,其作用包括創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象、刪除數(shù)據(jù)庫(kù)對(duì)象、修改數(shù)據(jù)庫(kù)對(duì)象(create、

35、drop、alter)。二、DML(Data Manipulation Language)數(shù)據(jù)操縱語言,其作用包括查找數(shù)據(jù)信息、插入數(shù)據(jù)信息、刪除數(shù)據(jù)信息、更改數(shù)據(jù)信息(select、 insert、 delete、 update)。三、DCL(Data Control Language)數(shù)據(jù)控制語言,作用主要對(duì)是授權(quán)數(shù)據(jù)庫(kù)對(duì)象(grant, revoke)。1.11 4.5 開發(fā)環(huán)境操作系統(tǒng):WINDOWS XP;運(yùn)行工具:IE 7.0開發(fā)工具:Eclipse 數(shù)據(jù)庫(kù):MySQL 5.12服務(wù)器: Tomcat 6.0輔助工具:Adobe Photoshop CS, Flash V8.0第五

36、章 系統(tǒng)實(shí)現(xiàn)1.12 5.1系統(tǒng)總體架構(gòu)及實(shí)現(xiàn) 5.1.1系統(tǒng)總體結(jié)構(gòu)圖圖51 5.1.2 用戶首頁(yè)界面風(fēng)格汽車銷售系統(tǒng)的主頁(yè)面可以4大管理模塊,如果想了解具體的信息或進(jìn)行相對(duì)的操作,就必須具有相應(yīng)的權(quán)限。通過身份登錄以后,可以實(shí)現(xiàn)相關(guān)的功能的操作。對(duì)于沒有權(quán)限的用戶,本系統(tǒng)將不提供任何服務(wù)。1.13 5.2 進(jìn)貨管理 5.2.1 功能描述進(jìn)貨管理只有進(jìn)貨管理員才可以登錄在登錄后可顯示“進(jìn)貨管理” ,選擇“查看進(jìn)貨訂單”“增加進(jìn)貨訂單”“查看汽車基本信息”“查看供應(yīng)商信息”“添加廠商信息”等操作,可以對(duì)相應(yīng)的功能進(jìn)行操作。 5.2.2 模塊流程圖進(jìn)貨管理流程圖汽車信息增查改廠商信息增查改進(jìn)貨訂

37、單表廠商信息表汽車信息表倉(cāng)庫(kù)模塊財(cái)務(wù)模塊進(jìn)貨單信息增查改 提交數(shù)據(jù)是否實(shí)現(xiàn)否是數(shù)據(jù)庫(kù)圖53 5.2.3 界面風(fēng)格 5.2.4 代碼實(shí)現(xiàn)(部分) DAO實(shí)現(xiàn)方法:package com.csms.stock.dao.impl;import java.sql.SQLException;import java.util.HashMap;import java.util.List;import java.util.Map;import com.csms.stock.bean.CarDTO;import com.csms.stock.bean.FactoryDTO;import com.csms.sto

38、ck.bean.StockListDTO;import com.csms.stock.dao.StockListDAO;import com.softstone.mvc.dao.DAOFactory;import com.softstone.mvc.dao.DaoSupport;import com.softstone.mvc.dao.DefaultParams;import com.softstone.mvc.model.Paging;public class StockListDaoImpl extends DaoSupport implements StockListDAO privat

39、e static final String SQL_insert="insert into stockList_table( carType, carSum,stockPrice,stockSum,stockTime,facId,enterEst,staId) values(?,?,?,?,?,?,?,?)"private static final String SQL_select="select stockId,carType,carSum,stockPrice,stockSum,stockTime,facId,enterEst,staId from stoc

40、kList_table"private static final String SQL_selectById="select * from stockList_table where stockId=?"private static final String SQL_update="update stockList_table set carType=?,enterEst=?,stockTime=?,carSum=?,facId=?,stockPrice =?,stockSum=? where stockId=?"private static

41、final String SQL_selectFactory="select facId from factory_table"private static final String SQL_selStaId="select staId from staff_table"private static final String SQL_FindId="select stockId,carType,carSum,stockPrice,stockSum,stockTime from stockList_table where enterEst=

42、9;未入庫(kù)'"private static final String SQL_Findengine = "select * from car_table where stockId=?"private static final String SQL = "select * from stockList_table where enterEst='未入庫(kù)'"private int ret=0;DefaultParams params=new DefaultParams();public List<StockListD

43、TO> SQL(Paging paging) try return this.queryForList(SQL, StockListDTO.class,paging); catch (SQLException e) e.printStackTrace();return null;public int insert(StockListDTO stockList) try params.addParam(stockList.getCarType();params.addParam(stockList.getCarSum();params.addParam(stockList.getStock

44、Price();params.addParam(stockList.getStockSum();params.addParam(stockList.getStockTime();params.addParam(stockList.getFacId();params.addParam(stockList.getEnterEst();params.addParam(stockList.getStaId();ret=this.execute(SQL_insert, params); catch (SQLException e) e.printStackTrace();return ret;/不分頁(yè)顯

45、示所有進(jìn)貨單信息/分頁(yè)顯示所有進(jìn)貨單信息public List<StockListDTO> listByPaging(Paging paging) try return this.queryForList(SQL_select, StockListDTO.class,paging); catch (SQLException e) e.printStackTrace();return null;/根據(jù)進(jìn)貨單編號(hào)查詢public StockListDTO queryById(StockListDTO dto) try dto=this.get(SQL_selectById, dto.g

46、etStockId(), dto.getClass();return dto; catch (SQLException e) e.printStackTrace();return null;/更新修改進(jìn)貨單public int update(StockListDTO stockList) try params.addParam(stockList.getCarType();params.addParam(stockList.getEnterEst();params.addParam(stockList.getStockTime();params.addParam(stockList.getCa

47、rSum();params.addParam(stockList.getFacId();params.addParam(stockList.getStockPrice();params.addParam(stockList.getStockSum();params.addParam(stockList.getStockId();System.out.println(": "+stockList.getStockId();System.out.println("getCarType: "+stockList.getCarType();ret=this.ex

48、ecute(SQL_update, params);System.out.println("winfakg"+ret); catch (SQLException e) e.printStackTrace();return ret;/查詢供應(yīng)商名稱public List<FactoryDTO> listFactory() try return this.queryForList(SQL_selectFactory, FactoryDTO.class); catch (SQLException e) e.printStackTrace();return null;/

49、查詢員工信息表中所有的員工編號(hào)/public List<StaffDTO> listStaff() /try /return this.queryForList(SQL_selStaId, StaffDTO.class);/ catch (SQLException e) /e.printStackTrace();/return null;/ Overridepublic List<StockListDTO> queryByName(Paging paging) try return this.queryForList(SQL_FindId, StockListDTO.c

50、lass, paging); catch (SQLException e) e.printStackTrace();return null; public Map<String,CarDTO> carMap() return this.queryForMap("engineId", SQL_Findengine, CarDTO.class); /根據(jù)廠商的編號(hào)得到廠商的名字public Map<Integer,String> getFacName()Map<Integer,String> map=new HashMap<Intege

51、r, String>();FactoryDaoImpl dao=(FactoryDaoImpl) DAOFactory.createDAO(FactoryDaoImpl.class,conn);List<FactoryDTO> list=dao.list();for(FactoryDTO dep:list)map.put(dep.getFacId(), dep.getFacName();return map;Overridepublic List<StockListDTO> list() / TODO Auto-generated method stubretur

52、n null;Action:package com.csms.stock.action;import java.io.IOException;import java.util.Date;import java.util.List;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.csms.check.bean.CheckDTO;import com.csms.power.dao.impl.StaffDaoImpl;import com.csms.stock.bean.FactoryDTO;import com.csms.stock.bean.StockListDTO;import com.csms.stock.dao.impl.StockListDaoImpl;import com.softsto

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論