基于WEB的網(wǎng)上書城管理系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
基于WEB的網(wǎng)上書城管理系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
基于WEB的網(wǎng)上書城管理系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
基于WEB的網(wǎng)上書城管理系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
基于WEB的網(wǎng)上書城管理系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要本課題搭建了皖北書城的網(wǎng)絡(luò)管理平臺,它集銷售與管理于一體,共分七個模塊,實現(xiàn)功能如下:銷售管理,主要進行前臺的用戶管理和圖書銷售工作,采購管理,主要是對貨物進行采集,繼而對定單進行各個方式的查詢,財務(wù)管理,主要是負責員工工資的發(fā)放,人員管理,主要是負責公司內(nèi)部人員的考勤,工資信息計算以及基本信息的操作,客服管理,主要負責處理用戶的留言工作,庫存管理,主要是用于存放各類圖書,進行入庫和出庫操作,系統(tǒng)管理,主要用于數(shù)據(jù)庫的恢復與備份。該系統(tǒng)采用基于JAVA開發(fā)的WEB平臺,后臺數(shù)據(jù)庫采用MySQL。本系統(tǒng)嚴格的按照MVC開發(fā)模式,使各個層面相互獨立,便于系統(tǒng)的維護以及以后系統(tǒng)的業(yè)務(wù)修改。本文主要介紹使用JAVA語言構(gòu)建皖北書城網(wǎng)絡(luò)管理平臺的詳細過程,包括可行性研究、需求分析、總體設(shè)計、詳細設(shè)計、測試五個階段。重點介紹MVC開發(fā)的具體操作方式及其思想。。關(guān)鍵詞:B/S、JAVA、MVC、MySQL

Abstract

ThesubjectofWanbeiBookstorebuiltanetworkmanagementplatform,itsetsalesandmanagementinone,consistsofsevenmodules,andfunctionsasfollows:salesmanagement,theprospectsforthemainusermanagementandbooksales,procurementmanagement,themainAcquisitionofgoods,thentheordersforallmannerofenquiries,financialmanagement,ismainlyresponsibleforthewagesofemployees,personnelmanagement,ismainlyresponsibleforthecompany'sinternalstafftimeandattendance,wagecalculationandbasicinformationofinformationoperations,customerservicemanagement,Isresponsibleforhandlingtheuser'smessages,inventorymanagement,ismainlyusedforstoringallkindsofbooks,alibraryandstorageoperations,systemsmanagement,mainlyfortherehabilitationanddatabasebackup.

ThesystemisbasedontheJAVAplatformforthedevelopmentoftheWEB,backgrounddatabaseusingMySQL.ThissystemstrictlyinaccordancewiththeMVCdevelopmentmodel,sothatalllevelsofmutualindependence,forthemaintenanceandoperationsafterthemodifiedsystem.ThispaperdescribestheuseoflanguageJAVAConstructionofWanbeiBookstorenetworkmanagementplatformforthedetailedprocess,includingfeasibilitystudies,needsanalysis,design,detaileddesign,testingfivestages.MVCfocusonthedevelopmentofspecificoperationsandtheirthinking..Keywords:B/S,JAVA,MVC,MySQL目錄TOC\o"1-3"\h\u1開發(fā)背景 11.1課題的目的及意義 11.2現(xiàn)狀分析 12.可行性研究 22.1功能需求 22.2可行性研究 22.2.1技術(shù)可行性 22.2.2操作可行性 22.2.3經(jīng)濟可行性 23相關(guān)知識和開發(fā)工具簡介 33.1JAVA的面向?qū)ο筇匦?33.2Hibernate技術(shù)介紹 33.3Struts技術(shù)介紹 33.4開發(fā)工具的選擇 43.4.1應(yīng)用程序開發(fā)環(huán)境—Eclipse3.2.2+MyEclipse5.5.1 43.4.2Tomcat應(yīng)用服務(wù)器 43.4.3MySQL數(shù)據(jù)庫 43.5MVC開發(fā)模式介紹 53.5.1為什么要用MVC 54需求分析 64.1運行環(huán)境的配置 64.2MVC開發(fā)模式定位 64.3系統(tǒng)流程設(shè)計 64.3.1系統(tǒng)模塊劃分 64.3.2功能模型分析(DFD) 74.3.3書城管理系統(tǒng)E-R圖 105總體設(shè)計 135.1總體功能模塊圖 135.2業(yè)務(wù)總體設(shè)計 155.2.1業(yè)務(wù)總體設(shè)計用例 155.2.2模塊總體設(shè)計 165.3數(shù)據(jù)庫邏輯設(shè)計 166詳細設(shè)計 186.1Model層設(shè)計 186.1.1采購管理 186.1.2財務(wù)管理 186.1.3客服管理 196.2View層設(shè)計 206.2.1登陸管理 206.2.2采購管理 236.1.2財務(wù)管理 246.1.3客服管理 256.3Contoller層設(shè)計 256.4數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計 277軟件測試 297.1什么是軟件測試 307.2軟件測試的規(guī)則 307.3軟件測試的對象 307.4單元測試 307.4.1登陸測試 307.4.2采購管理測試測試 317.4.3財務(wù)管理測試測試 337.4.4客服管理測試測試 347.5集成測試 357.5.1測試流程圖 357.5.2集成測試 36結(jié)論 37致謝 39參考文獻 40附錄1主要代碼部分 41附錄2中英文資料翻譯部分 49緒論

自從1946年世界上第一臺電子計算機旦生,70年代第一個計算機網(wǎng)絡(luò)ARPANET實現(xiàn)互聯(lián);隨后在計算機技術(shù)與網(wǎng)絡(luò)技術(shù)發(fā)展的基礎(chǔ)上,根據(jù)人們信息交換的需要,產(chǎn)生了Internet,從此標志著人類進入了電子信息化時代。九十年代后期計算機與Internet的普及逐漸進入了企業(yè)、普通百姓家庭;企業(yè)為了探求新的管理及經(jīng)營模式,在企業(yè)內(nèi)部建立起自己的網(wǎng)絡(luò)并與Internet互聯(lián)起來,實現(xiàn)了同外界信息交換,同時創(chuàng)造了網(wǎng)絡(luò)營銷模式;人們對信息與新產(chǎn)品的需求促使了他們網(wǎng)上購物的欲望。由于網(wǎng)絡(luò)市場存在著需求與供給關(guān)系,第一代的電子商務(wù)模式——-企業(yè)對消費者(BtoC)隨即產(chǎn)生。電子商務(wù)出現(xiàn)初期存在著許多制約其發(fā)展的因素,如安全保障、支付手段與法律保障等,但今天網(wǎng)絡(luò)信息技術(shù)不斷發(fā)展與法律法規(guī)不斷完善、人們教育水平提高與傳統(tǒng)經(jīng)濟觀念向新網(wǎng)絡(luò)經(jīng)濟的轉(zhuǎn)變,制約網(wǎng)絡(luò)商務(wù)活動的因素得到了有效解決,從而促使電子商務(wù)逐步走向成熟,并出現(xiàn)了多種新的發(fā)展模式,包括企業(yè)間營銷(BtoB)模式等。在傳統(tǒng)經(jīng)濟模式里,人們購物跑商場,為了購得心愉的商品不得不累半天;企業(yè)為了贏得合同不得不圍在談判桌上群雄論戰(zhàn)。如今人們可以通過網(wǎng)絡(luò)坐在家中瀏覽網(wǎng)上商店,選擇合適的產(chǎn)品,還可以貨比三家,自已完成購物過程,進入自由輕松購物新時代;企業(yè)通過網(wǎng)絡(luò)洽談業(yè)務(wù),網(wǎng)上采購與接受定單,企業(yè)在網(wǎng)上設(shè)置了商店,不由得會發(fā)現(xiàn)世界就像在面前。企業(yè)與客戶通過網(wǎng)上訂購,電子支付等,使他們的關(guān)系變得如此貼近,從而使商務(wù)活動發(fā)生深刻變革。改變企業(yè)的生產(chǎn)與經(jīng)營活動,也帶來了人們的生活方式、文化教育、政府職能等的轉(zhuǎn)變,電子商務(wù)的出現(xiàn)將真正把人類帶入信息社會。1開發(fā)背景1.1課題的目的及意義就書城系統(tǒng)而言,由于網(wǎng)絡(luò)已經(jīng)覆蓋全球,信息量大而獨具優(yōu)勢。售書的理念也很簡單,就是讀者可以自己尋找自己的所愛。換句話說,網(wǎng)上書城近在咫尺,并且永不下班關(guān)門,讀者可以隨時隨地自由地查詢和訂購圖書,讀者無需親臨書城,一檔一檔地找,一本一本地翻,只要坐在電腦前,開機上網(wǎng)即可買到所需書籍,而且讀者的挑選余地也大多了,檢索也很方便。另外,我們應(yīng)該感受的到,圖書選購必得翻閱詳看,耗時費力,特別是熱衷于圖書的朋友,大多的愛好者還是奮力開拓事業(yè)或者苦心求學的深造者,時間對他們而言無比寶貴,網(wǎng)上書城節(jié)省了大量時間,這對于那些沒有時間經(jīng)常逛傳統(tǒng)書城或其住所離傳統(tǒng)書城較遠的讀者來說,具有實際意義。因此網(wǎng)上售書必將有長足的發(fā)展。開辦網(wǎng)上書城系統(tǒng)也可以為在校大學生提供方便、廉價、高效的服務(wù),促進文化傳播,幫助國家和學校培養(yǎng)優(yōu)秀的人才,具有長遠的社會效益和經(jīng)濟效益。本次畢業(yè)設(shè)計所從事的課題題目是基于WEB的網(wǎng)上書城管理系統(tǒng)的設(shè)計與實現(xiàn)。課題的目的:應(yīng)用當前高速發(fā)展的計算機技術(shù),組建網(wǎng)上書城管理系統(tǒng)。隨著計算機及網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,Internet/Intranet應(yīng)用在全球范圍內(nèi)日益普及,當今社會正快速向信息化社會前進,信息自動化的作用也越來越大。從而使我們從繁雜的事務(wù)中解放出來,提高了我們的工作效率。

計算機信息化管理有著儲存量大,速度快等許多優(yōu)點,提供給我們的處理信息及時快捷,因此我們利用計算機提供給我們的信息對在線網(wǎng)上購書進行管理,經(jīng)過對多個開發(fā)軟件及數(shù)據(jù)庫軟件的優(yōu)越性進行評估之后,最終選擇MVC架構(gòu),Java+MySQL+Hibernate+Struts開發(fā)一個B/S結(jié)構(gòu)的皖北書城管理系統(tǒng)。1.2現(xiàn)狀分析網(wǎng)上書城是隨著網(wǎng)絡(luò)技術(shù)的發(fā)展而出現(xiàn)的一種新型圖書銷售渠道。它通過人與電子通信方式的結(jié)合,依靠計算機網(wǎng)絡(luò),以通訊技術(shù)為基礎(chǔ),實現(xiàn)圖書銷售的網(wǎng)上交易。網(wǎng)上書城同傳統(tǒng)的店面書城相比,網(wǎng)上書城的經(jīng)營方式和銷售渠道是全新的;它24小時的全天候和全方位服務(wù)是店面書城所不能比及的;成本低廉更是開設(shè)網(wǎng)上書城的主要原因。而與其他商品相比,書籍運送幾乎不怕碰撞碎裂,不具時效性;同時書本具有功能單一,形式簡單,易于判斷和選擇而獨具優(yōu)勢,最適合于網(wǎng)上交易;再次是單價低,降低了消費者第一次在網(wǎng)絡(luò)購物的門檻。由于電子商務(wù)的迅猛發(fā)展,功能集中于一體化似乎越來越方便,前臺用于銷售,后臺用于服務(wù)的各個管理,無需辦公室,無需擔心喧鬧的環(huán)境,一臺電腦,一個瀏覽器外加一個工作密碼,便可以將大家集中到同一個管理平臺中,避免了現(xiàn)實中各個方面帶來的不便,工作效率也會大大的得到提高。2.可行性研究2.1功能需求皖北書城管理系統(tǒng),同時為客戶和服務(wù)人員服務(wù),在前臺,用戶可以通過注冊信息而登陸到本系統(tǒng)中進行圖書的采購,在后臺,通過人員管理模塊可以分配用戶名與密碼,然后各個模塊的服務(wù)人員通過自己的密碼和用戶名登陸,進而在自己所管轄的管理模塊中進行業(yè)務(wù)的相關(guān)操作。2.2可行性研究可行性研究分為技術(shù)可行性研究、操作可行性研究、經(jīng)濟可行性研究。2.2.1技術(shù)可行性該系統(tǒng)選擇主體語言為Java,因為學習這門語言已經(jīng)有了相當長的一段時間,對于語言上的一般問題都能夠解決,并且電子購物的資源在網(wǎng)絡(luò)上相當?shù)呢S富,當遇到困難時,我們可以向網(wǎng)絡(luò)尋求幫助.本系統(tǒng)采用的數(shù)據(jù)庫是MYSQL,該數(shù)據(jù)庫簡單實用,書寫SQL語言方便易行,是我們該系統(tǒng)的最佳選擇,在業(yè)務(wù)層與控制層我們選用Hibernate和Struts,這兩門技術(shù)我們的培訓課程都有涉及到,因此在整體部署上面應(yīng)該不存在問題,通過以上的理論分析,可得知完成此系統(tǒng)的開發(fā)在記述上是可行的.2.2.2操作可行性本書城管理系統(tǒng)的開發(fā)環(huán)境為Linux,在業(yè)務(wù)需求中我們只是實現(xiàn)大體的基本業(yè)務(wù)操作,對于普通業(yè)務(wù)的增,刪,改,查,我們有了一定的理論和實踐基礎(chǔ),因此在實現(xiàn)該系統(tǒng)的業(yè)務(wù)方面,操作是可行的2.2.3經(jīng)濟可行性雖然該系統(tǒng)用于畢業(yè)設(shè)計課題,不應(yīng)考慮經(jīng)濟可行性問題,,但從理論上看,該系統(tǒng)功能簡單,實現(xiàn)了銷售管理一體化服務(wù),業(yè)務(wù)操作也只是基本的數(shù)據(jù)庫操作而已,成本的花費應(yīng)該不會過高,并且若該書城實現(xiàn)了該平臺的開發(fā),可省去大量現(xiàn)實銷售管理中的好多開銷,更有甚于提高贏利額度和業(yè)務(wù)范圍,因此該系統(tǒng)在網(wǎng)絡(luò)上是現(xiàn)實可行的.

3相關(guān)知識和開發(fā)工具簡介3.1JAVA的面向?qū)ο筇匦訨ava吸取了C++面向?qū)ο蟮母拍?,它主要具有四個顯著特點:封裝,抽象,繼承和多態(tài)。封裝,它是指隱藏對象的屬性和實現(xiàn)細節(jié),僅僅對外公開接口,這樣做的優(yōu)點是便于使用者正確,方便地理解和使用系統(tǒng),防止使用者錯誤的修改系統(tǒng)的屬性。降低各個系統(tǒng)之間的松藕合關(guān)系,提高軟件的可重用性。抽象,是指從特定角度出發(fā),從現(xiàn)實存在的一些事物中抽取我們所關(guān)注的特性,形成一個新的事物的思維過程。在JAVA中抽象體現(xiàn)在三個方面,從問題領(lǐng)域的事物到軟件模型中對象的抽象,從對象到類的抽象和從子類到父類的抽象。繼承,是指子類和父類之間存在的擴展關(guān)系,子類繼承了父類的屬性和方法,同時,子類還可以擴展出新的屬性和方法,并且還可以覆蓋父類中方法的實現(xiàn)方式。JAVA力求簡單,只實現(xiàn)單繼承,但是可通過接口實現(xiàn)不同的方法,繼承提高了系統(tǒng)的可重用性和可擴展性,現(xiàn)在社會上流行的所謂開源框架便是利用了代碼的可重用,可擴展這一特性。多態(tài),是指當系統(tǒng)A訪問系統(tǒng)B的服務(wù)時,系統(tǒng)B可以通過多種實現(xiàn)方式來提供服務(wù),而著一切對系統(tǒng)A是透明的,它實現(xiàn)了方法的動態(tài)綁定。3.2Hibernate技術(shù)介紹Hibernate是一種Java語言下的對象關(guān)系映射解決方案。它是一種自由、開源的軟件。它用來把對象模型表示的對象映射到基于SQL的關(guān)系模型結(jié)構(gòu)中去,為面向?qū)ο蟮念I(lǐng)域模型到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的映射,提供了一個使用方便的框架。Hibernate不僅管理Java類到數(shù)據(jù)庫表的映射(包括從Java數(shù)據(jù)類型到SQL數(shù)據(jù)類型的映射),還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度減少開發(fā)時人工使用SQL和JDBC處理數(shù)據(jù)的時間。它的設(shè)計目標是將軟件開發(fā)人員從大量相同的數(shù)據(jù)持久層相關(guān)編程工作中解放出來.它的優(yōu)點是:

a.Hibernate使用Java反射機制而不是字節(jié)碼增強程序來實現(xiàn)透明性。

b.Hibernate的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。

c.它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復雜關(guān)系3.3Struts技術(shù)介紹Struts是在JSPModel2的基礎(chǔ)實現(xiàn)了MVC設(shè)計模式的WEBFramework。基于Struts構(gòu)架的WEB應(yīng)用程序基本上符合JSPModel2的設(shè)計標準,可以說是MVC設(shè)計模式的一種變化類型。它的目的是為了減少在運用MVC設(shè)計模型來開發(fā)Web應(yīng)用的時間,它將可以完成其中一些繁重的工作。如果想混合使用Servlets和JSP的優(yōu)點來建立可擴展的應(yīng)用,Struts是一個不錯的選擇。Struts由一組相互協(xié)作的類、Serlvet以及豐富的標記庫(jsptaglib)和獨立于該框架工作的實用程序類(Validator)組成。

Struts有其自己的控制器(Controller),同時整合了其他的一些技術(shù)去實現(xiàn)模型層(Model)和視圖層(View)。在模型層,Struts可以很容易的與數(shù)據(jù)訪問技術(shù)相結(jié)合,包括EJB,JDBC和ObjectRelationBridge。在視圖層,Struts能夠與JSP,VelocityTemplates,XSL等等這些表示層組件想結(jié)合。3.4開發(fā)工具的選擇3.4.1應(yīng)用程序開發(fā)環(huán)境—Eclipse3.2.2+MyEclipse5.5.1 Eclipse是一個開放源代碼的,基于Java的可擴展開發(fā)平臺。就其本身而言,他只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運的是,Eclipse附帶了一個標準的插件集,其中就包括Java開發(fā)工具(JavaDevelopmentTools,JDT).Eclipse3.2.2是目前的最新版,我們可以在其官方網(wǎng)站/eclipse/downloads/index.php上下載,。MyEclipse是Eclipse的插件,集成了對Spring,Struts,Hibernate等主流JavaEE組件開發(fā)插件的支持,大大簡化了JavaEE應(yīng)用的開發(fā)。不同版本的MyEclipse都要求與特定版本的Eclipse配合,這在下載MyEclipse時都能看到,與Eclipse3.2.2配套使用的是MyEclipse5.5.1,Eclipse5.5.1的試用版本可以在其官方網(wǎng)站上下載。3.4.2Tomcat應(yīng)用服務(wù)器目前支持JSP的應(yīng)用服務(wù)器是較多的,Tomcat是其中較為流行的一個Web服務(wù)器,Tomcat是一個免費的開源的Serlvet容器,在Tomcat中,應(yīng)用程序的部署很簡單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會自動檢測到這個文件,并將其解壓。你在瀏覽器中訪問這個應(yīng)用的Jsp時,通常第一次會很慢,因為Tomcat要將Jsp轉(zhuǎn)化為Servlet文件,然后編譯。編譯以后,訪問將會很快。Tomcat也具有傳統(tǒng)的Web服務(wù)器的功能:處理Html頁面。但是與Apache相比,它的處理靜態(tài)Html的能力就不如Apache。我們可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)Html,而Tomcat處理Jsp和Servlet。Tomcat是一個很好的工具,不僅僅因為其免費,功能強大,更因為其開放性,越來越受到人們的重視。3.4.3MySQL數(shù)據(jù)庫MySQL是由MySQLAB公司開發(fā),發(fā)布并支持的全世界最流行的開源SQL數(shù)據(jù)庫管理系統(tǒng),MySQL5.0較以前的版本有了很大的改進,對存儲過程,觸發(fā)器和視圖有了很好的支持,成為開源數(shù)據(jù)庫之首選。3.5MVC開發(fā)模式介紹 MVC是一個設(shè)計模式,它強制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個核心部件:模型(Model)、視圖(View)、控制器(Contoller)。它們各自處理自己的任務(wù).3.5.1為什么要用MVC在MVC模式以前,WEB程序開發(fā)都是將像數(shù)據(jù)庫查詢語句這樣的數(shù)據(jù)層代碼和像HTML這樣的表示層代碼混在一起。經(jīng)驗比較豐富的開發(fā)者會將數(shù)據(jù)從表示層分離開來,但這通常不是很容易做到的,它需要精心的計劃和不斷的嘗試。MVC從根本上強制性的將它們分開。盡管構(gòu)造MVC應(yīng)用程序需要一些額外的工作,但是它給我們帶來的好處是無庸質(zhì)疑的。首先,最重要的一點是多個視圖能共享一個模型,隨著業(yè)務(wù)的發(fā)展,現(xiàn)在需要用越來越多的方式來訪問你的應(yīng)用程序。對此,其中一個解決之道是使用MVC,無論你的用戶想要Flash界面或是WAP界面;用一個模型就能處理它們。由于你已經(jīng)將數(shù)據(jù)和業(yè)務(wù)規(guī)則從表示層分開,所以你可以最大化的重用你的代碼了。因為模型是自包含的,并且與控制器和視圖相分離,所以很容易改變你的應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。如果你想把你的數(shù)據(jù)庫從MySQL移植到Oracle,只需改變你的模型即可。一旦你正確的實現(xiàn)了模型,不管你的數(shù)據(jù)來自數(shù)據(jù)庫或是LDAP服務(wù)器,視圖將會正確的顯示它們。由于運用MVC的應(yīng)用程序的三個部件是相互獨立,改變其中一個不會影響其它兩個,所以依據(jù)這種設(shè)計思想你能構(gòu)造良好的松藕合的構(gòu)件。4需求分析4.1運行環(huán)境的配置硬件需求:PIII/256M/10G及以上配置,要求為皖北管理系統(tǒng)分配足夠內(nèi)存空間。操作系統(tǒng)需求:Windows2000及以上操作系統(tǒng)(推薦),也可以使用SunSolaris等Linux操作系統(tǒng)數(shù)據(jù)庫軟件需求:MySQL中文版數(shù)據(jù)庫(推薦)中間件軟件需求:tomcat系列服務(wù)器(本系統(tǒng)采用5.X版本為宜)4.2MVC開發(fā)模式定位本系統(tǒng)采用B/S設(shè)計模式,利用Java語言開發(fā)Web應(yīng)用程序,提供JSP+Struts+Hibernate框架對系統(tǒng)的程序代碼結(jié)構(gòu)進行分層。分層的策略如下:service表示層service表示層StrutsStrutsAction,ActionForm,Jsp,Struts-config.xml,etc.DAO業(yè)務(wù)層HibernatesessionManagement持久層HibernateDataSource/ConnectionPoolTransactionsBusinessServiceClassesQueryLanguageSupportandotherHibernateServicesJSP--Struts—Hibernate架構(gòu)系統(tǒng)流程圖如圖4-14.3系統(tǒng)流程設(shè)計4.3.1系統(tǒng)模塊劃分本系統(tǒng)由七個模塊組成,分別為銷售管理,系統(tǒng)管理(陶金負責),人事管理,庫存管理(黃修海負責),采購管理,財務(wù)管理,客服管理(邢阿亮負責)。如下圖所示.客服管理財務(wù)管理皖北書城管理系統(tǒng)客服管理財務(wù)管理皖北書城管理系統(tǒng)系統(tǒng)管理采購管理系統(tǒng)管理采購管理庫存管理銷售管理銷售管理庫存管理銷售管理銷售管理人事管理人事管理圖4-1系統(tǒng)模塊圖4.3.2功能模型分析(DFD)繪制數(shù)據(jù)流圖的基本要求:系統(tǒng)的頂層圖使用來表示整個系統(tǒng)的功能結(jié)構(gòu)。隨著需求分析活動的逐漸深入,較高抽象級別上的復雜轉(zhuǎn)換可以精化為一系列的相互關(guān)聯(lián)的數(shù)據(jù)流和子轉(zhuǎn)換。數(shù)據(jù)流圖描述系統(tǒng)的邏輯模型,在設(shè)計數(shù)據(jù)流圖只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮如何具體的實現(xiàn)這些,該系統(tǒng)的數(shù)據(jù)流程圖可確定如下:系統(tǒng)頂層圖如圖4-2所示:第0第0層皖北書城管理管理員管理事務(wù)管理事務(wù)回應(yīng)更改信息業(yè)務(wù)操作圖4-2數(shù)據(jù)流圖——頂層圖系統(tǒng)一層圖如圖4-3所示:皖北書城管理1皖北書城管理1銷售管理2人員管理3庫存管理4采購管理5財務(wù)管理6客服管理人員信息等庫存信息財務(wù)信息部門信息采購信息客服信息銷售事務(wù)流人員事務(wù)流庫存事務(wù)流采購事務(wù)流財務(wù)事務(wù)流客服事務(wù)流銷售信息人員信息庫存信息采購信息財務(wù)信息客服信息考勤專員考勤信息7系統(tǒng)管理系統(tǒng)管理事務(wù)流系統(tǒng)管理信息系統(tǒng)信息圖4-3數(shù)據(jù)流圖——一層圖系統(tǒng)二層圖如圖4-4至圖4-6所示:處理1采購管理細化如圖4-4采購管理4采購管理4.1定單添加4.2定單刪除4.3定單查詢定單信息圖4-4數(shù)據(jù)流圖——二層圖處理2財務(wù)管理細化如圖4-5財務(wù)管理5財務(wù)管理5.1帳號添加5.2帳號查詢5.3帳號修改銀行帳號圖4-5數(shù)據(jù)流圖——二層圖處理3客服管理細化如圖4-6客服管理6客服管理6.1添加留言6.2查看留言6.4回復留言6.3刪除留言留言信息圖4-6數(shù)據(jù)流圖——二層圖4.3.3書城管理系統(tǒng)E-R圖圖書定單實體如圖4-7:圖書定單編號圖書定單編號圖書訂單圖書訂單信息采購總額圖書類型負責人定單ID采購時間圖4-7圖書定單實體E-R圖價錢總額圖書單價圖書實體如圖4-8:價錢總額圖書單價圖書名稱所屬定單ID圖書名稱所屬定單ID圖書編號負責人圖書編號負責人圖書ID圖書描述圖書ID圖書描述圖書信息圖書信息圖書數(shù)量圖書出版社圖書數(shù)量圖書出版社作者出版日期作者出版日期圖4-8圖書實體E-R圖管理員實體如圖4-9:密碼用戶名密碼用戶名IDID部門ID管理員信息部門ID管理員信息圖4-9管理員實體E-R圖

留言實體如圖4-10:昵稱留言ID留言時間昵稱留言ID留言時間回復時間回復時間郵箱郵箱留言內(nèi)容留言內(nèi)容回復內(nèi)容回復內(nèi)容留言信息留言信息留言實體圖4-10金額流動資金帳號實體如圖4-11:金額帳號ID流動資金帳號帳號ID流動資金帳號圖4-11流動資金帳號實體E-R圖員工銀行帳號實體如圖4-11:用戶帳號持有者用戶帳號持有者余額帳號ID余額帳號ID員工銀行帳號員工銀行帳號圖4-11員工銀行帳號實體E-R圖

5總體設(shè)計經(jīng)過需求分析階段的工作,系統(tǒng)必須“做什么”已經(jīng)清楚了,現(xiàn)在是決定“怎樣做”的時候。總體設(shè)計的基本目的就是回答“從總體上說,系統(tǒng)應(yīng)該如何實現(xiàn)?”這個問題,因此,總體設(shè)計又稱為概要設(shè)計或初步設(shè)計。通過這個階段的工作將劃分出組成系統(tǒng)的物理元素程序、文件、數(shù)據(jù)庫、人工過程和文檔等等,但是每個物理元素仍然處于黑盒子級,這些黑盒子里的具體內(nèi)容將在以后進行詳細的設(shè)計。總體設(shè)計階段的另一項重要任務(wù)是設(shè)計軟件的結(jié)構(gòu),也就是要確定系統(tǒng)中每個程序是由哪些模塊組成的,以及這些模塊相互間的關(guān)系??傮w設(shè)計是軟件設(shè)計階段的第一步,在軟件開發(fā)時期中,設(shè)計階段是最富有活力,最需要發(fā)揮創(chuàng)造精神的階段。在本階段,主要就是得用面向?qū)ο蠓治龇椒ò逊治鲭A段產(chǎn)生的軟件需求說明轉(zhuǎn)換為用適當手段表示的軟件概要設(shè)計文檔,從而得出本模塊的具體實現(xiàn)方案與總體結(jié)構(gòu)以及各組成部分之間的關(guān)系。5.1總體功能模塊圖系統(tǒng)功能模塊圖如圖5-1:皖北書城管理系統(tǒng)皖北書城管理系統(tǒng)銷售管理人員管理庫存管理采購管理財務(wù)管理系統(tǒng)設(shè)置客服管理圖5-1系統(tǒng)功能模塊圖

采購管理模塊細化如圖5-2:采購管理采購管理個體圖書信息錄入成組圖書信息錄入圖書定單錄入定單信息查詢管理人員登錄定單信息刪除圖5-2采購管理模塊細化圖財務(wù)管理模塊細化如圖5-3:財務(wù)管理財務(wù)管理管理人員登錄員工工資發(fā)放流動帳號資金查詢流動帳號資金轉(zhuǎn)存工資發(fā)放設(shè)置圖5-3財務(wù)管理模塊細化圖

客服管理模塊細化如圖5-4:客服管理客服管理管理人員登錄刪除留言簽寫留言回復留言查看留言圖5-4客服管理模塊細化圖5.2業(yè)務(wù)總體設(shè)計5.2.1業(yè)務(wù)總體設(shè)計用例從客戶角度來說,有以下功能:用戶注冊→用戶登陸→用戶查詢圖書→購買圖書→退出登陸 從管理員的角度:有以下功能:管理員登陸→業(yè)務(wù)管理(包括采購管理,財務(wù)管理,客服管理,人員管理,銷售管理,庫存管理,系統(tǒng)管理).5.2.2模塊總體設(shè)計a)采購管理功能:能進行圖書的個體添加,刪除和成組添加,刪除,以及對圖書定單的添加,刪除和各種查詢(可根據(jù)定單編號,負責人,采購單位,日期,價格)并支持模糊查詢b)財務(wù)管理功能: 通過流動資金帳號對員工工資進行發(fā)放,可設(shè)置工資發(fā)放額度和發(fā)放時間,并且可以將發(fā)放余額轉(zhuǎn)存其他流動資金帳號c)客服管理功能: 對于客戶來說,可以直接進行匿名留言簽寫,對于管理員來說,可以進行留言的簽寫,刪除以及回復操作5.3數(shù)據(jù)庫邏輯設(shè)計圖書定單表: Xal_Order(Order_ID,type,collectiedName,priceTotal,collectiedTime,dutyPeople,booksOrderNo,bankOrderNo,rate,examine,userOrderNo);圖書表:Xal_books(Book_ID,bookNo,bookName,bookNum,bookPrice,bookTotal,boolPrint,bookIntroduce,author,printDate,salename,fid,uid);等待確認定單表Nocheck_xal_Order(Order_ID,type,collectiedName,priceTotal,collectiedTime,dutyPeople,booksOrderNo,bankOrderNo,rate,examine,userOrderNo公司流動資金帳號表Bank_account(aid,TotalAccount);公司員工帳號表Employee_bank_account(eid,actNo,owner,balance);管理員列表admin(id,username,password,deptid);留言列表Liuyan_temp(id,ip,email,sj,content,restore,restore_time.xm,ts);6詳細設(shè)計總體設(shè)計階段以比較抽象概括的方式提出了解決問題的辦法。詳細設(shè)計是軟件開發(fā)時期的第三個階段,也是軟件設(shè)計的第二步。其任務(wù)就是把解法具體化,也就是回答下面這個關(guān)鍵的問題:“應(yīng)該怎樣具體地實現(xiàn)這個系統(tǒng)呢?”,通過詳細設(shè)計應(yīng)該得出對目標系統(tǒng)的精確描述,給出各個模塊的詳細過程性描述。從而在編碼階段可以把這個描述直接翻譯成用某種程序設(shè)計語言書寫的程序。6.1Model層設(shè)計6.1.1采購管理在該個管理模塊中主要用到了三個類的實體,它們是整個業(yè)務(wù)流程的關(guān)鍵,圖書定單繼承于普通定單,在圖書定單中存在著圖書對象的集合6.1.2財務(wù)管理該模塊中的主要實體類是員工的工資帳戶儲存,除了系統(tǒng)調(diào)用的GET()和SET()方法外,該實體還應(yīng)具有存款,取款的功能,便于工資的變更。其業(yè)務(wù)圖如下:6.1.3客服管理該模塊的功能是管理員正確登陸后,對留言實體進行業(yè)務(wù)操作,包括留言的添加,刪除,修改和查詢等功能,業(yè)務(wù)圖如下:6.2View層設(shè)計6.2.1登陸管理采購部門的管理員通過系統(tǒng)分配的用戶名與密碼進入系統(tǒng),當部門管理員成功登錄后,方可對采購業(yè)務(wù)進行管理,通過樹型控制來顯示該部門的業(yè)務(wù)信息,.采購管理登錄信息流程圖如6-1:Index.jspIndex.jsp輸入部門輸入部門用戶名和密碼(系統(tǒng)默認輸入該部門的部門號) N是不是和該部門相符合?N是不是和該部門相符合?YY進入業(yè)務(wù)主界面進入業(yè)務(wù)主界面結(jié)束結(jié)束圖6-1采購管理登錄信息流程圖登錄截面流程控制的主要代碼(check_admin.java):packagecom.wbStore.message.servlet;importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;importcom.wbStore.message.bean.messFun;publicclasscheckin_adminextendsHttpServlet{ publicvoidinit()throwsServletException{} publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException { messFunMF=newmessFun();response.setContentType("text/html;charset=GBK"); HttpSessionsession=request.getSession(); Stringyhm1=request.getParameter("yhm"); Stringyhmm1=request.getParameter("yhmm"); Stringdeptid=request.getParameter("deptid"); //讀取session的值 Stringrand=(String)session.getAttribute("rand"); Stringcode=request.getParameter("rand"); Stringmsg=""; if(yhm1=="") msg+="<li>用戶名不能為空</li>"; if(yhmm1=="") msg+="<li>密碼不能為空</li>"; if(!rand.equals(code)) msg+="<li>驗證碼不正確</li>"; if(msg.equals("")) { booleanresult=MF.checkLogin(yhm1,yhmm1,deptid); if(result==true) { session.setAttribute("login","1"); response.sendRedirect("index.jsp"); } else { msg+="<li>用戶名或密碼不對</li>"; request.setAttribute("msg",msg);RequestDispatcherwm=request.getRequestDispatcher("common.jsp"); wm.forward(request,response); } } else { request.setAttribute("msg",msg); RequestDispatcherwm=request.getRequestDispatcher("common.jsp"); wm.forward(request,response); } } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException { doGet(request,response); } publicvoiddestroy() { }}6.2.2采購管理采購部門的管理員通過系統(tǒng)分配的用戶名與密碼進入系統(tǒng),當部門管理員成功登錄后采購管理業(yè)務(wù)信息流程圖如6-2開始開始在定單編號,負責人,采購單位,日期,價格中任選一個輸入進行查詢在定單編號,負責人,采購單位,日期,價格中任選一個輸入進行查詢添加新帳單 添加新帳單 個體添加圖書成組添加圖書個體添加圖書成組添加圖書是否合法是否合法Error.jspError.jspNNYY進入添加定單界面進入歷史定單界面進入添加定單界面進入歷史定單界面選擇刪除帳單通過負責人查詢帳單通過采購單位查詢帳單通過采購單編號查詢帳單選擇刪除帳單通過負責人查詢帳單通過采購單位查詢帳單通過采購單編號查詢帳單刪除圖書添加圖書刪除圖書添加圖書定單進入歷史定單界面進入歷史定單界面返回主界面返回主界面圖6-2采購管理業(yè)務(wù)信息流程圖6.1.2財務(wù)管理該部門服務(wù)人員通過用戶名與密碼驗證登陸后,根據(jù)分配的流動資金帳號可對員工的工資進行發(fā)放。在選擇流動資金帳號時需手動設(shè)置發(fā)放額度和發(fā)放時間財務(wù)管理業(yè)務(wù)流程圖6-3開始開始是否登錄進入員工工資發(fā)放設(shè)置界面工資處理頁面返回主界面是否發(fā)放結(jié)束YNNYY進入員工帳號和工資生成界面進入員工工資發(fā)放界面余額充足?N圖6-3財務(wù)管理業(yè)務(wù)信息流程圖:6.1.3客服管理 該部門負責人成功登陸后,可對留言進行簽寫,刪除和回復,并且可以直接進入客戶端的留言本界面客服管理業(yè)務(wù)流程圖6-4開始開始是否登錄進入服務(wù)器端留言主界面返回主界面YN簽寫留言回復留言查看留言刪除留言進入客戶端圖6-4客服管理業(yè)務(wù)信息流程圖:6.3Contoller層設(shè)計 在該層主要應(yīng)用到了Struts結(jié)構(gòu)的MappingDispatchAction首先將表現(xiàn)層的數(shù)據(jù)通過post或者get方法傳送過來,在傳送數(shù)據(jù)的同時,*.do經(jīng)過web.xml中的過濾器過濾,進入Contoller層數(shù)據(jù)的處理,最后通過Mapping.forword方法跳轉(zhuǎn)到表現(xiàn)層。下面通過一個業(yè)務(wù)的流程演示該過程.(以用戶存取圖書為例):首先,頁面通過web.xml中的下面代碼進行過濾:web.xml中部分代碼:<servlet><servlet-name>ActionServlet</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>ActionServlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>經(jīng)過該過濾器之后,進入Struts-configure.xmlStruts-configure.xml相關(guān)代碼:<actionpath="/collect/booksOrderList_save"type="com.wbStore.collect.web.action.BookOrderAction"parameter="add"><forwardname="addNewOrderList"path="/collect/addNewOrderList.jsp"/><forwardname="error"path="/collect/error.jsp"/></action>通過該配置文件,程序執(zhí)行到BookOrderAction中的add();相關(guān)代碼見下:BookOrderAction相關(guān)代碼:publicclassBookOrderActionextendsMappingDispatchAction{ /** *向預定表單中個體添加圖書 */ publicActionForwardadd(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse) throwsException{ try{ StringbookNo=request.getParameter("bookNo"); StringbookName=request.getParameter("bookName"); intbookNumInteger.parseInt(request.getParameter("bookNum")); doublebookPrice=Double.parseDouble(request.getParameter("bookPrice")); doublebookTotal=bookNum*bookPrice; StringbookPrint=request.getParameter("bookPrint"); Stringauthor=request.getParameter("author"); StringprintDate=request.getParameter("printDate"); StringbookIntroduce=request.getParameter("bookIntroduce"); Stringsalename=request.getParameter("salename"); Booksbook=newBooks(bookNo,bookName,bookNum,bookPrice, bookTotal,bookPrint,salename,author,printDate, bookIntroduce); list.add(book); total+=bookTotal; request.setAttribute("total",total); request.setAttribute("list",list); returnmapping.findForward("addNewOrderList"); }catch(RuntimeExceptione){ returnmapping.findForward("error"); } } 若業(yè)務(wù)沒有運行時異常,則通過returnmapping.findForward("addNewOrderList");跳轉(zhuǎn)至正常頁面,否則執(zhí)行CATCH代碼塊,跳轉(zhuǎn)至錯誤頁面.6.4數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計(1)定單表如表1表1定單表(2)圖書表如表2表2圖書表(3)管理員表如表3 表3管理員表(4)用戶留言表如表4 表4用戶留言表表(5)公司流動帳號表如表5 表5公司流動帳號表(6)員工銀行帳戶表如表6表6員工銀行帳戶表7軟件測試在開發(fā)軟件的過程中,人們使用了許多保證軟件質(zhì)量的方法分析、設(shè)計和實現(xiàn)軟件,但難免還會在工作中犯錯誤。這樣,在軟件產(chǎn)品中就會隱藏許多錯誤和缺陷,尤其是對規(guī)模大、復雜性高的軟件更是如此。所以,必須進行認真、計劃、徹底的軟件測試。7.1什么是軟件測試軟件測試就是在軟件投入運行前,對軟件需求分析、設(shè)計規(guī)格說明書和編碼的最終復審,是軟件質(zhì)量保證的關(guān)鍵步驟。確切的說,軟件測試就是為了發(fā)現(xiàn)錯誤而執(zhí)行的過程。一般分為兩個階段:(1)單元測試:在編完某一模塊后進行測試(2)綜合測試:在開發(fā)完軟件后進行系統(tǒng)測試。即使經(jīng)過最嚴格的測試之后,仍然可能還有沒被發(fā)現(xiàn)的錯誤隱藏在程序中。測試只能查找程序中的錯誤,不能證明程序中沒有錯誤。7.2軟件測試的規(guī)則軟件測試的目的是想以最少的時間和人力找出軟件中潛在的錯誤和缺陷。一個成功的軟件應(yīng)該不怕挑剔的用戶進行測試。如果成功的實施了測試,就能夠發(fā)現(xiàn)軟件存在的錯誤。根據(jù)這樣的測試目的,軟件測試的規(guī)則應(yīng)該是:1.應(yīng)該把“盡早地和不斷地進行軟件測試”作為軟件開發(fā)者的座右銘。2.測試用例應(yīng)由測試輸入數(shù)據(jù)和與之對應(yīng)的預期輸出結(jié)果兩部分組成。3.程序員應(yīng)避免檢查自己的程序。4.在設(shè)計測試用例時,應(yīng)當包括合理的輸入條件和不合理的輸入條件。5.充分注意測試中的群集現(xiàn)象。6.嚴格執(zhí)行測試計劃,排除測試的隨意性。7.應(yīng)當對每一個測試結(jié)果做全面檢查。8.妥善保存測試計劃,測試用例,出錯統(tǒng)計和最終分析報告。7.3軟件測試的對象軟件測試不等于程序測試。軟件測試應(yīng)貫穿于軟件定義與開發(fā)的整個周期。所以,需求分析、概要設(shè)計、詳細設(shè)計以及程序編碼等各階段所得到的文檔都應(yīng)該是軟件測試的對象。7.4單元測試本程序的測試在Linux環(huán)境下進行。7.4.1登陸測試測試用例:1)用戶名:xingal密碼:123456屬于正確的所屬部門驗證通過2)用戶名:xingal密碼:123456屬于不正確的所屬部門驗證不通過 3)用戶名:密碼:123456用戶名為空驗證不通過 4)用戶名:xingal密碼:123密碼或用戶名錯誤驗證不通過 7.4.2采購管理測試個體添加圖書測試用例:1)個體添加:正常操作驗證通過2)個體添加:數(shù)量輸入字母:操作失敗,頁面跳轉(zhuǎn)至錯誤頁面 3)個體添加,輸入空字段彈出不能為空提示窗口.7-2個體添加圖書界面成組添加圖書界面圖測試用例:1)成組添加:正常操作驗證通過2)成組添加:數(shù)量輸入字母:操作失敗,頁面跳轉(zhuǎn)至錯誤頁面 3)成組添加,輸入空字段彈出不能為空提示窗口. 添加訂單圖書界面圖測試用例:1)添加訂單:正常操作驗證通過,數(shù)據(jù)正常插入2)添加訂單,輸入空字段彈出不能為空提示窗口. 3)刪除圖書正常操作驗證通過,圖書被刪除7-4添加訂單圖書界面7.4.3財務(wù)管理測試圖7-5流動工資帳號的選擇及設(shè)置界面員工工資發(fā)放界面圖測試用例:1)工資發(fā)放正常操作,頁面跳轉(zhuǎn)至“確認發(fā)放頁面” 2)讓余額小于某一員工工資,跳轉(zhuǎn)至“余額不足頁面”7-6員工工資發(fā)放界面圖7-7員工工資發(fā)放確認界面7.4.4客服管理測試測試用例:1)單擊“回復”,跳轉(zhuǎn)至“留言”界面,正確輸入則可進行留言 2)單擊”刪除”,跳出信息提示框,正確操作則可刪除留言.圖7-8查看留言界面簽寫留言界面測試用例:1)正確輸入昵稱和郵箱,操作成功,跳轉(zhuǎn)至[查看頁面] 2)呢稱為空,操作失敗,跳轉(zhuǎn)至[查看頁面],但看不到信息 3)郵箱輸入不合法,操作失敗,跳轉(zhuǎn)至[查看頁面],但看不到信息圖7-9簽寫留言界面至此,單元測試完畢。7.5集成測試本程序的測試在Linux環(huán)境下進行。7.5.1測試流程圖YYYY系統(tǒng)主界面(1)系統(tǒng)初始化初始化系統(tǒng)模塊主界面成功登錄成功開始結(jié)束NNYN圖7-10集成測試流程圖7.5.2集成測試測試用例:1)用戶名:xingal密碼:123456屬于正確的所屬部門驗證通過2)用戶名:xingal密碼:123456屬于不正確的所屬部門驗證不通過 3)用戶名:密碼:123456用戶名為空驗證不通過 4)用戶名:xingal密碼:123密碼或用戶名錯誤驗證不通過圖7-11系統(tǒng)初始化設(shè)置界面系統(tǒng)安裝好之后,所有的一切都如單元測試所料。故系統(tǒng)測試省略。結(jié)論經(jīng)過三個多月的努力,對JAVA一系列的東西有了進一步的認識,可謂收獲頗豐,在最后的兩個星期時間里,對畢業(yè)的課題進行了代碼的編寫,當真正把技術(shù)應(yīng)用于實踐時,才發(fā)現(xiàn)昔日的好多知識點已經(jīng)忘記的差不多了,這才意識到,如果不能將理論應(yīng)用于實踐,那些知識永遠不會成為自己頭腦中知識體系的一部分。最后的這兩個星期里,日子是痛苦的,每天從早上到晚上,不停的敲擊著鍵盤,但是到最后當我們看到畢業(yè)設(shè)計課題完成的那一刻,我們是欣慰的,想想兩個星期里,我們把學到的理論知識應(yīng)用在了我們的課題中,我們更加深刻的理解了WEB開發(fā)中的MVC模式,我們更多的體會到了面向?qū)ο蟮镊攘?。兩個星期的時間讓我真正的明白了為什么應(yīng)聘時,有工作經(jīng)驗者悠閑,因為這就是財富,就是自身從理論上永遠無法領(lǐng)悟的知識。在做畢業(yè)設(shè)計的過程中,我切身感受了軟件開發(fā)設(shè)計的全過程。從最底層的實體類到最表面的JSP,嚴格按照軟件開發(fā)中MVC模式的三層結(jié)構(gòu)的要求一步步設(shè)定目標,完成了畢業(yè)設(shè)計,這為今后的工作學習提供了寶貴的經(jīng)驗。由于時間倉促,設(shè)計中難免不盡人意,因此本系統(tǒng)中還存在很多不足的地方。但是,與畢業(yè)設(shè)計結(jié)果相比,設(shè)計的過程更使我受益匪淺,因為畢業(yè)設(shè)計就是要求我們將所學的理論知識融會貫通并加以應(yīng)用的過程。就我個人來說,大學階段所學的是理論知識,從未真正將它們付諸實踐。因此,為了很好地完成畢業(yè)設(shè)計,其中的艱難相信大家都能體會出來。在做畢業(yè)設(shè)計期間,遇到了很多問題,比如說:數(shù)據(jù)的轉(zhuǎn)換異常,配置文件的讀取錯誤以及對象結(jié)構(gòu)的傳遞等。皖北書誠管理系統(tǒng)是由陶金,黃修海,和我,共同完成的。通過對皖北書城管理系統(tǒng)的設(shè)計和開發(fā),鍛煉了我的實際動手能力,和團隊合作精神,這次的畢業(yè)設(shè)計,使我的計算機水平又上了新的臺階,使我受益匪淺??傊?,多學習,多思考,多練習,多敲代碼,一定會提高自己水平的。

致謝論文工作即將結(jié)束,我在安徽工業(yè)大學的學習也近四年了,回首這四年的日子,我深刻感受到老師、同學給予我的真誠的關(guān)心,正是在他們的幫助下我順利完成了學業(yè)和論文工作。在本次畢業(yè)設(shè)計過程中,首先要特別感謝我的指導老師葉紅老師,在整個設(shè)計過程中對我們要求很嚴格,從而能順利完成系統(tǒng)的設(shè)計以及論文的書寫。每次在遇到問題時,她都會及時地提出我們設(shè)計過程中的不足,指導我們?nèi)绾稳ソ鉀Q問題,從中我們也學到了解決問題的方法。設(shè)計過程中老師教授的知識,我們將終身受用。其次,要感謝的是我的校外指導老師戰(zhàn)文備工程師,在畢業(yè)設(shè)計期間,他給予了我很多技術(shù)方面的支持,并再三囑咐我們,需求分析,ER圖和系統(tǒng)功能描述是軟件開發(fā)中最重要的環(huán)節(jié),同時建議系統(tǒng)要有錯誤處理機制等等。在此表示感謝。再次,要感謝的是我的好同學們,他們把學校的信息第一時間轉(zhuǎn)達給我,在此表示感謝。同時還要感謝我的同事們,和他們的探討使我對問題的看法更加深入,向我提出了許多建設(shè)性的意見。同時也幫助我做了很多實際的工作。最后,要感謝安徽工業(yè)大學這個大家庭,謝謝她給了我一個良好的學習環(huán)境,我在學校階段的任何成績,任何榮譽都與這個大家庭分不開。在此表示感謝。再次向所有幫助過我的人表示我最誠摯的謝意!

參考文獻1.《數(shù)據(jù)庫系統(tǒng)概論(第三版)》薩師煊,王珊,北京:高等教育出版杜2002.22.《數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)案例與實踐教程》潘文林,清華大學出版社,2005年3.《Java面向?qū)ο缶幊獭穼O衛(wèi)琴電子工業(yè)出版社2007.94.《Java辦公自動化項目方案精解》邢素萍航空工業(yè)出版社2006.95《TomcatWeb開發(fā)及整合應(yīng)用[M]》張洪偉清華大學出版社.2007.96(displaytag官方網(wǎng)站)7(Apache軟件Jakarta項目組官方網(wǎng)站)8(hibernate官方網(wǎng)站)9《Servlet與JSP權(quán)威指南[M]》.(美)MartyHall機械工業(yè)出版社2007.510

Mcleod.ManagementInformationsystem.ManagementinPractice,PrenticeHall,11

CassidyA.InformationsystemsstrategicPlanning.Bocaraton.Florida,St.luicePress,12.達內(nèi)科技相關(guān)教材

附錄1主要代碼部分HibernateUtil的實現(xiàn):packagecom.wbStore.collect.util;importorg.hibernate.HibernateException;importorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.hibernate.cfg.Configuration;publicclassHibernateUtil{ privatestaticSessionFactorysf; static{ Configurationcfg=null; try{ cfg=newConfiguration().configure(); sf=cfg.buildSessionFactory(); }catch(HibernateExceptione){ e.printStackTrace(); } } publicstaticSessiongetCurrentSession(){ Sessions=(Session)sf.getCurrentSession(); returns; } }圖書定單業(yè)務(wù)的實現(xiàn):packagecom.wbS;importjava.util.List;importorg.hibernate.HibernateException;importorg.hibernate.Session;importorg.hibernate.Transaction;importcom.wbStore.collect.dao.OrderDAO;importcom.wbStore.collect.dao.Impl.OrderDAOImplement;importcom.wbStore.collect.entity.Order;importcom.wbStore.collect.util.HibernateUtil;publicclassBookOrderServiceImplimplementsOrderService{ privatestaticOrderDAOdao=newOrderDAOImplement(); /** *查詢歷史帳單 */ publicListHistoryOrder(Orderorder){ Sessionsession=null; Transactiontran=null; ListOrder=null; try{ session=HibernateUtil.getCurrentSession(); dao.setSession(session); tran=session.beginTransaction(); Order=dao.find(order); mit(); }catch(HibernateExceptione){ tran.rollback(); e.printStackTrace(); } returnOrder; } /** *添加新帳單 */ publicvoidaddNewOrder(Orderorder){ Sessions=null; Transactiontran=null; try{ s=HibernateUtil.getCurrentSession(); dao.setSession(s); tran=s.beginTransaction(); dao.save(order); mit(); }catch(HibernateExceptione){ tran.rollback(); e.printStackTrace(); } } /** *通過ID進行查詢 */ publicOrderHistorOrderById(Orderorder){ Sessionsession=null; Transactiontran=null; Orderorders=null; try{ session=HibernateUtil.getCurrentSession(); dao.setSession(session); tran=session.beginTransaction(); orders=dao.findById(order); mit(); }catch(HibernateExceptione){ tran.rollback(); e.printStackTrace(); } returnorders; } /** *字段模糊查詢 */ publicListHistoryOrderLike(Orderorder,Stringstr2){ Sessionsession=null; Transactiontran=null; ListOrder=null; try{ session=HibernateUtil.getCurrentSession(); dao.setSession(session); tran=session.beginTransaction(); Order=dao.likeFind(order,str2); mit(); }catch(HibernateExceptione){ tran.rollback(); e.printStackTrace(); } returnOrder; }/**通過日期進行查詢*/ publicListHistoryOrderByDate(Orderorder,Stringstart,Stringend){ Sessionsession=null; Transactiontran=null; ListOrder=null; try{ session=HibernateUtil.getCurrentSession(); dao.setSession(session); tran=session.beginTransaction(); Order=dao.findByDate(order,start,end); mit(); }catch(HibernateExceptione){ tran.rollback(); e.printStackTrace(); } returnOrder; } /**通過價格進行查詢*/ publicListHistoryOrderByPrice(Orderorder,doublestart,doubleend){ Sessionsession=null; Transactiontran=null; ListOrder=null; try{ session=HibernateUtil.getCurrentSession(); dao.setSession(session); tran=session.beginTransaction(); Order=dao.findByPrice(order,start,end); mit(); }catch(HibernateExceptione){ tran.rollback(); e.printStackTrace(); } returnOrder; }/**刪除訂單*/ publicvoidremoveOrder(Orderorder){ Sessionsession=null; Transactiontran=null; Orderorders=null; try{ session=HibernateUtil.getCurrentSession(); dao.setSession(session); tran=session.beginTransaction(); orders=dao.findById(order); dao.delete(orders); mit(); }catch(HibernateExceptione){ tran.rollback(); e.printStackTrace(); } }}

員工工資發(fā)放業(yè)務(wù)的實現(xiàn):packagecom.wbS;importjava.util.ArrayList;importjava.util.List;importorg.hibernate.HibernateException;importorg.hibernate.Session;importorg.hibernate.Transaction;importcom.wbStore.collect.dao.AccountDAO;importcom.wbStore.collect.dao.Impl.AccountDAOImplement;importcom.wbStore.collect.entity.Account;importcom.wbStore.collect.entity.employeeAccount;importcom.wbStore.collect.util.HibernateUtil;publicclassemployeeAccountServiceImplimplementsAccountService{ privatestaticAccountDAOdao=newAccountDAOImplement(); /** *添加帳戶 */ publicvoidaddAccount(employeeAccountact){ Sessionsession=null; Transactiontran=null; try{ session=HibernateUtil.getCurrentSession(); dao.setSession(session); tran=session.beginTransaction(); dao.save(act); mit(); }catch(HibernateExceptione){ tran.rollback(); e.printStackTrace(); } } /***存款*/ publicdoubledespoint(doublemoney,longaid){ Sessionsession=null; Transactiontran=null; doublebalance=0; try{ session=HibernateUtil.getCurrentSession(); dao.setSession(session); tran=session.beginTransaction(); employeeAccountact=dao.findById(aid); balance=act.getBalance(); balance=balance+money; act.setBalance(balance); dao.update(act); mit(); }catch(HibernateExceptione){ tran.rollback(); e.printStackTrace(); } returnbalance; }/***通過ID查找員工帳號*/ publicemployeeAccountfindById(longeid){ Sessionsession=null; Transactiontran=null; employeeAccountacct=newemployeeAccount(); try{ session=HibernateUtil.getCurrentSession(); dao.setSession(session); tran=session.beginTransaction(); acct=dao.findById(eid); mit(); }catch(HibernateExceptione){ tran.rollback(); e.printStackTrace(); } returnacct; }/***查找所有員工帳號*/ publicListfindacount(){ Sessionsession=null; Transactiontran=null; Listlist=newArrayList(); try{ session=HibernateUtil.getCurrentSession(); dao.setSession(session); tran=session.beginTransaction(); list=dao.findAccount(); mit(); }catch(HibernateExceptione){ tran.rollback(); e.printStackTrace(); } returnlist; }}附錄2中英文資料翻譯部分英文一:AnetizeninJavaEyeaskedabouttheWebsystemofalarge-scalestructureandthedeploymentofselectionproblemsinthehopeofimprovingtheexistingJava-basedWebapplicationoftheservicecapacity.AsframeworkandthedeploymentoftuninghasbeenahottopicintheJavacommunity,thisissuecausedalotofenthusiasticnetizendiscussions,includingsomeoftheviewsofotherlargeW

溫馨提示

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

評論

0/150

提交評論