畢業(yè)設(shè)計(論文)-電子拍賣系統(tǒng)_第1頁
畢業(yè)設(shè)計(論文)-電子拍賣系統(tǒng)_第2頁
畢業(yè)設(shè)計(論文)-電子拍賣系統(tǒng)_第3頁
畢業(yè)設(shè)計(論文)-電子拍賣系統(tǒng)_第4頁
畢業(yè)設(shè)計(論文)-電子拍賣系統(tǒng)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

PAGE畢業(yè)設(shè)計(論文、作業(yè))題目:電子拍賣系統(tǒng)參考文獻綜述SSH在J2EE項目中表示了3種框架,即Spring+Struts+Hibernate。Struts對Model,View和Controller都提供了對應(yīng)的組件。Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了非常輕量級的對象封裝,可以應(yīng)用在任何使用JDBC的場合,可以在Servlet/JSP的Web應(yīng)用中使用,也可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。MySQL是一個開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng)。目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。摘要隨著市場競爭日益激烈,傳統(tǒng)的由生產(chǎn)企業(yè)定價銷售的方式正面臨巨大挑戰(zhàn):在產(chǎn)品同質(zhì)化程度日益提高、市場信息紛繁復(fù)雜的今天,優(yōu)質(zhì)產(chǎn)品如何快速獲得恰當?shù)氖袌鰞r值定位,從而從眾多同類產(chǎn)品中脫穎而出,成為每個企業(yè)產(chǎn)品銷售面臨的問題。在這樣背景下,越來越多的企業(yè)嘗試以更新、更有效的方式進開展銷售工作,拍賣就是其中的一種手段。然而,傳統(tǒng)拍賣是一項技術(shù)性很強的工作,沒有專業(yè)的人員、沒有專門的實施部門、以及沒有有效的信息傳播渠道,成為傳統(tǒng)企業(yè)實施拍賣銷售的一大障礙。針對這種情況,我們吸取各種商務(wù)系統(tǒng)的經(jīng)驗,根據(jù)中國企業(yè)的實際情況,決定開發(fā)一套全新的電子拍賣系統(tǒng)。本文詳細描述了設(shè)計和實現(xiàn)的一個拍賣系統(tǒng),采用jsp、JavaScript、sitemesh等語言開發(fā)網(wǎng)站頁面,用struts2、Spring、和Hibernate3.0的技術(shù)實現(xiàn)動態(tài)設(shè)計,用Mysql關(guān)系系統(tǒng)數(shù)據(jù)庫。利用軟件工程的原理,從問題定義,需求分析,概要設(shè)計到詳細設(shè)計,編碼到最后的軟件測試的整個過程。友好、簡單易用的Web界面,豐富實用的功能設(shè)置,方便用戶參與競價、及時發(fā)送郵件給競價最高者,當收到用戶的簽字后,拍賣才成功。關(guān)鍵字:JSP;三大框架;SSH;B/SABSTRACTWiththeincreasinglyfiercemarketcompetition,thetraditionalpricingbythemanufacturersarefacingagreatwayofmarketingchallenges:theincreasingdegreeofproducthomogeneity,marketinformation,today'scomplex,high-qualityproductstothemarketvalueofrapidaccesstoappropriateorientation,therebymanysimilarproductsstandout,aseachenterpriseproductsalesproblems.Inthiscontext,moreandmorecompaniestrytonewer,moreeffectivewaytolaunchintothesales,theauctionisoneofthemmeans.However,thetraditionalauctionisahighlytechnicalwork,noprofessionalstaff,nospecificimplementationofthesector,andthelackofeffectiveinformationdisseminationchannelsoftraditionalenterprisesbecomeamajorobstacletotheauctionsale.Inviewofthissituation,welearnfromtheexperienceofvariousbusinesssystems,accordingtotheactualsituationofChineseenterprises,decidedtodevelopanewelectronicauctionsystem.Thispaperdescribesthedesignandimplementationofanauctionsystem,usingjsp,JavaScript,sitemeshwebpagessuchaslanguagedevelopment,withstruts2,Spring,andHibernate3.0dynamicdesigntechnology,relationswiththeMysqldatabase.Usingsoftwareengineeringprinciples,fromproblemdefinition,requirementsanalysis,outlinedesigntodetaileddesign,codingtothefinalsoftwaretestingthroughouttheprocess.Friendly,easy-to-useWebinterface,richfeaturesetofpractical,userparticipationinbidding,timelydeliveryofmailtothehighestbidwho,when,afterreceivingtheuser'ssignature,theauctionwassuccessful.Keywords:JSP;threeframeworks;SSH;B/S東華理工大學(xué)軟件學(xué)院畢業(yè)設(shè)計(論文)目錄目錄緒論 11程序開發(fā)的技術(shù)基礎(chǔ) 21.1Web應(yīng)用的體系結(jié)構(gòu) 21.2概述 21.2.1JSP腳本技術(shù) 21.2.2mvc三層架構(gòu) 21.2.3 mysql 31.2.4Sitemesh 41.2.5Hibernate3.x 41.2.6 Spring2.x 41.2.7 Struts2.0 51.3系統(tǒng)實現(xiàn)手段 51.4開發(fā)環(huán)境 52系統(tǒng)總體分析與設(shè)計 72.1需求分析 72.2系統(tǒng)架構(gòu)設(shè)計 82.3數(shù)據(jù)庫設(shè)計 93系統(tǒng)功能與實現(xiàn) 133.1用戶登陸界面 133.2數(shù)據(jù)庫封裝技術(shù)的實現(xiàn) 143.3添加拍賣物品及代碼實現(xiàn) 234測試 314.1測試與調(diào)試的基本概念 314.2測試時間 314.3測試范圍與主要內(nèi)容 324.3.1所有的實體對象與數(shù)據(jù)庫一一對映的測試 324.3.2業(yè)務(wù)邏輯層的測試表4-2 334.3.3綜合測試表4-3 344.4測試階段心得 34結(jié)論 36致謝 37參考文獻 38PAGE2緒論從接受畢業(yè)設(shè)計任務(wù)到設(shè)計完成用了二個月的時間。整個設(shè)計要求對Mysql數(shù)據(jù)庫應(yīng)用系統(tǒng)的基本實現(xiàn)方法以及實現(xiàn)技術(shù)、工具有一定的了解。而且,在設(shè)計員工培訓(xùn)教材管理子系統(tǒng)時,需要對功能需求考慮完善。雖然我以前也做過類似應(yīng)用系統(tǒng)的設(shè)計開發(fā),但通過本次設(shè)計還是受益匪淺。在整個設(shè)計過程中,系統(tǒng)的整體構(gòu)架很早就完成了,接下來的細節(jié)問題卻使我頗傷腦筋。隨著設(shè)計程度的不斷深入,又遇到了一些早期沒有想到的問題。為了解決這些問題,有時還要對幾個模塊進行大幅度的修改。在設(shè)計中,還需要進行細致的測試工作,以發(fā)現(xiàn)程序的錯誤和功能上的不足。由于時間和個人技術(shù)關(guān)系,本系統(tǒng)還有一些不足和值得改進的地方,比如說查詢功能,可以進行多關(guān)鍵字的匹配功能,這樣查詢的靈活性就會有明顯的提高,同時系統(tǒng)的多個地方還可以應(yīng)用AJAX技術(shù)來減輕系統(tǒng)的負擔(dān)。通過這次畢業(yè)設(shè)計,提高了我在系統(tǒng)整體設(shè)計上的能力,增長了分析、解決問題的經(jīng)驗,對一些知識有了更深一步的掌握??梢哉f,這次畢業(yè)設(shè)計既鍛煉了我動腦分析問題的能力,又鍛煉了我動手解決實際問題的能力,這將對我以后的學(xué)習(xí)起到不可估量的作用。通過畢業(yè)設(shè)計這次磨礪,我的能力也提高了。所以它對于我們來說有著十分重要的意義。我會運用從中得到的寶貴經(jīng)驗來指導(dǎo)我今后的學(xué)習(xí)和工作,不斷的實踐,不斷地學(xué)習(xí),讓自己變得更加充實自己,更適合于軟件行業(yè)發(fā)展的需要。PAGE31程序開發(fā)的技術(shù)基礎(chǔ)1.1Web應(yīng)用的體系結(jié)構(gòu)Web是基于客戶機/服務(wù)器的體系結(jié)構(gòu),客戶機向服務(wù)器發(fā)送請求,要求執(zhí)行某項任務(wù),而服務(wù)器執(zhí)行此項任務(wù),并向客戶機返回響應(yīng)。要構(gòu)造這種結(jié)構(gòu)時,具體工作包括設(shè)計靜態(tài)HTML頁面、JSP頁面、action、配置文件、其他對象(如JavaBean)及相互之間的交互關(guān)系等。1.2概述1.2.1JSP腳本技術(shù)JavaServerPage簡稱JSP,它是運行在服務(wù)器端的腳本語言之一。與其他服務(wù)器端腳本語言一樣,是用來開發(fā)動態(tài)網(wǎng)站的一種技術(shù)。JSP頁面是由傳統(tǒng)的HTML代碼和嵌入到其中的Java代碼組成的。服務(wù)器在接收到客戶端發(fā)來的一個JSP頁請求時,由JSP代碼轉(zhuǎn)換成Servlet代碼,然后由JSP引擎調(diào)用服務(wù)器端的Java編譯器對Servlet代碼編譯,把它編譯成字節(jié)碼文件(.class),再由JVM(Java虛擬機)執(zhí)行此字節(jié)碼文件,最后將執(zhí)行結(jié)果以HTML格式返回給客戶端。JSP可以在大多數(shù)的WebServer上運行,符合“一次編寫,多平臺運行”的JAVA原則,實現(xiàn)了程序與服務(wù)器平臺的獨立性。它具有以下的優(yōu)點:(1)內(nèi)容生成與顯示分離;(2)可重用的組件;(3)采用標識簡化頁面開發(fā);(4)適應(yīng)更廣泛的平臺;(5)易于連接數(shù)據(jù)庫。1.2.2mvc三層架構(gòu)在軟件體系架構(gòu)設(shè)計中,分層式結(jié)構(gòu)是最常見,也是最重要的一種結(jié)構(gòu)。微軟推薦的分層式結(jié)構(gòu)一般分為三層,從下至上分別為:數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層(又或成為領(lǐng)域?qū)樱?、表示層?個層次中,系統(tǒng)主要功能和業(yè)務(wù)邏輯都在業(yè)務(wù)邏輯層進行處理。所謂三層體系結(jié)構(gòu),是在客戶端與數(shù)據(jù)庫之間加入了一個“中間層”,也叫組件層。這里所說的三層體系,不是指物理上的三層,不是簡單地放置三臺機器就是三層體系結(jié)構(gòu),也不僅僅有B/S應(yīng)用才是三層體系結(jié)構(gòu),三層是指邏輯上的三層,即使這三個層放置到一臺機器上。PAGE4三層體系的應(yīng)用程序?qū)I(yè)務(wù)規(guī)則、數(shù)據(jù)訪問、合法性校驗等工作放到了中間層進行處理。通常情況下,客戶端不直接與數(shù)據(jù)庫進行交互,而是通過COM/DCOM通訊與中間層建立連接,再經(jīng)由中間層與數(shù)據(jù)庫進行交互。位于最外層(最上層),離用戶最近。用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面。業(yè)務(wù)邏輯層(BusinessLogicLayer)無疑是系統(tǒng)架構(gòu)中體現(xiàn)核心價值的部分。它的關(guān)注點主要集中在業(yè)務(wù)規(guī)則的制定、業(yè)務(wù)流程的實現(xiàn)等與業(yè)務(wù)需求有關(guān)的系統(tǒng)設(shè)計,也即是說它是與系統(tǒng)所應(yīng)對的領(lǐng)域(Domain)邏輯有關(guān),很多時候,也將業(yè)務(wù)邏輯層稱為領(lǐng)域?qū)?。例如MartinFowler在《PatternsofEnterpriseApplicationArchitecture》一書中,將整個架構(gòu)分為三個主要的層:表示層、領(lǐng)域?qū)雍蛿?shù)據(jù)源層。作為領(lǐng)域驅(qū)動設(shè)計的先驅(qū)EricEvans,對業(yè)務(wù)邏輯層作了更細致地劃分,細分為應(yīng)用層與領(lǐng)域?qū)?,通過分層進一步將領(lǐng)域邏輯與領(lǐng)域邏輯的解決方案分離。業(yè)務(wù)邏輯層在體系架構(gòu)中的位置很關(guān)鍵,它處于數(shù)據(jù)訪問層與表示層中間,起到了數(shù)據(jù)交換中承上啟下的作用。由于層是一種弱耦合結(jié)構(gòu),層與層之間的依賴是向下的,底層對于上層而言是“無知”的,改變上層的設(shè)計對于其調(diào)用的底層而言沒有任何影響。如果在分層設(shè)計時,遵循了面向接口設(shè)計的思想,那么這種向下的依賴也應(yīng)該是一種弱依賴關(guān)系。因而在不改變接口定義的前提下,理想的分層式架構(gòu),應(yīng)該是一個支持可抽取、可替換的“抽屜”式架構(gòu)。正因為如此,業(yè)務(wù)邏輯層的設(shè)計對于一個支持可擴展的架構(gòu)尤為關(guān)鍵,因為它扮演了兩個不同的角色。對于數(shù)據(jù)訪問層而言,它是調(diào)用者;對于表示層而言,它卻是被調(diào)用者。依賴與被依賴的關(guān)系都糾結(jié)在業(yè)務(wù)邏輯層上,如何實現(xiàn)依賴關(guān)系的解耦,則是除了實現(xiàn)業(yè)務(wù)邏輯之外留給設(shè)計師的任務(wù)。數(shù)據(jù)訪問層:有時候也稱為是持久層,其功能主要是負責(zé)數(shù)據(jù)庫的訪問,可以訪問數(shù)據(jù)庫系統(tǒng)、二進制文件、文本文檔或是XML文檔。簡單的說法就是實現(xiàn)對數(shù)據(jù)表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就會包括對象和數(shù)據(jù)表之間的mapping,以及對象實體的持久化。1.2.3 mysqlMySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。在2008年1月16號被Sun公司收購。而2009年,SUN又被Oracal收購.對于Mysql的前途,沒有任何人抱樂觀的態(tài)度.目前MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫PAGE51.2.4SitemeshSitemesh是由一個基于Web頁面布局、裝飾及與現(xiàn)存Web應(yīng)用整合的框架。它能幫助我們再由大量頁面工程的項目中創(chuàng)建一致的頁面布局和外觀,如一致的導(dǎo)航條、一致的banner、一致的版權(quán)等。它不僅能處理動態(tài)的內(nèi)容,如JSP、PHP、ASP、CGI等產(chǎn)生的內(nèi)容,還能處理靜態(tài)的內(nèi)容,比如HTML的內(nèi)容,使得它的內(nèi)容也符合你的頁面結(jié)構(gòu)的要求。甚至它能像include那樣將HTML文件作為一個面板的形式嵌入到別的文件中去。所有的這些,都是GOF的Decorator模式的最生動的實現(xiàn)。裝飾模式是在不必改變原類文件和使用集成的情況下,動態(tài)地擴展一個對象的功能。它能通過創(chuàng)建一個包裝對象,也就是裝飾來包裹的對象。盡管它是由Java語言來實現(xiàn)的,但是它能與其他Web應(yīng)用很好的集成。1.2.5Hibernate3.xHibernate的核心接口一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務(wù)控制。下面對這五個核心接口分別加以介紹。Session接口負責(zé)執(zhí)行被持久化對象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。SessionFactory接口負責(zé)初始化Hibernate。它充當數(shù)據(jù)存儲源的代理,并負責(zé)創(chuàng)建Session對象。這里用到了工廠模式。Configuration接口負責(zé)配置并啟動Hibernate,創(chuàng)建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory對象。1.2.6 Spring2.xSpring是一個開源框架,它由RodJohnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。◆目的:解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性◆功能:使用基本的JavaBean代替EJB,并提供了更多的企業(yè)應(yīng)用功能◆范圍:任何Java應(yīng)用PAGE61.2.7 Struts2.0服務(wù)器啟動后,根據(jù)web.xml加載Struts2.0的配置文件Struts.xml;struts框架具有組件的模塊化,靈活性和重用性的優(yōu)點,同時簡化了基于MVC的web應(yīng)用程序的開發(fā)。struts清晰地區(qū)分控制,事務(wù)邏輯和外觀,從而簡化了開發(fā)應(yīng)用程序過程的。1.3系統(tǒng)實現(xiàn)手段系統(tǒng)采用四層結(jié)構(gòu):(1)客戶端,只需要中文瀏覽器,不需要JAVA虛擬機,也不需要前臺腳本語言。(2)表示層,即客戶端,使用JSP(JavaServerPage)文檔實現(xiàn)動態(tài)頁面以創(chuàng)建、操作業(yè)務(wù)對象。符合JSP1.2和HTML4規(guī)范。由ApacheTomcat6.0提供Web容器運行。(3)連接層,采用hibernate框架進行應(yīng)用和測試。(4)資源層,即數(shù)據(jù)庫服務(wù)器。作為底層數(shù)據(jù)資源,提供業(yè)務(wù)對象數(shù)據(jù)的存儲和管理。目前采用的是MYSQL,數(shù)據(jù)庫設(shè)計獨立于應(yīng)用開發(fā)語言和工具。1.4開發(fā)環(huán)境網(wǎng)絡(luò)操作系統(tǒng)對網(wǎng)絡(luò)的性能有著至關(guān)重要的影響。選擇了一個合適的網(wǎng)絡(luò)操作系統(tǒng),既省錢,省力,又能大大地提高系統(tǒng)的效率,而盲目地選擇一個網(wǎng)絡(luò)操作系統(tǒng),往往事倍功半,甚至?xí)茐脑械臄?shù)據(jù)庫和文件等。通過對現(xiàn)有系統(tǒng)的了解和未來系統(tǒng)的規(guī)劃,以及對當前流行的幾種網(wǎng)絡(luò)操作系統(tǒng)安全性,可擴展性等方面的分析,采用WindowsXP。系統(tǒng)采用Sun公司JSP(JavaServerPages)做為系統(tǒng)的開發(fā)工具。JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且擴展到能夠支持企業(yè)級的分布式應(yīng)用。作為采用Java技術(shù)家族的一部分,以及Java2(企業(yè)版體系結(jié)構(gòu))的一個組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。由于JSP頁面的內(nèi)置腳本語言是基于Java編程語言的,而且所有的JSP頁面都被編譯成為JavaServlet,JSP頁面就具有Java技術(shù)的所有好處,包括健壯的存儲管理和安全性。作為Java平臺的一部分,JSP擁有Java編程語言“一次編寫,各處運行”的特點。隨著越來越多的供應(yīng)商將JSP支持添加到他們的產(chǎn)品中,您可以使用自己所選擇的服務(wù)器和工具,更改工具或服務(wù)器并不影響當前的應(yīng)用。當與Java2平臺,企業(yè)版(J2EE)和EnterpriseJavaBean技術(shù)整合時,JSP頁面將提供企業(yè)級的擴展性和性能,這對于在虛擬企業(yè)中部署基于Web的應(yīng)用是必需的。此外,系統(tǒng)還采用JavaBean技術(shù)來封裝數(shù)據(jù)庫,執(zhí)行SQL語句等功能。JavaBeanPAGE7是一種基于Java的可重復(fù)使用的軟件組件,有點類似于Microsoft的COM組件概念。JSP結(jié)合JavaBean技術(shù)能擴展網(wǎng)頁中程序的功能,它不僅縮短了開發(fā)周期,避免重復(fù)開發(fā),也為JSP應(yīng)用帶來更多的伸縮性。在JSP程序JavaBean常用來封裝事務(wù)邏輯、數(shù)據(jù)庫操作等,可以很好地實現(xiàn)業(yè)務(wù)邏輯和前臺程序的分離,使得系統(tǒng)具有更好的健壯型和靈活性。數(shù)據(jù)庫服務(wù)器采用了MySQL。與其他的大型數(shù)據(jù)庫例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之處,如規(guī)模小、功能有限(MySQLCluster的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。對于一般的個人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。PAGE82系統(tǒng)總體分析與設(shè)計2.1需求分析電子拍賣系統(tǒng)旨在以先進的計算機軟件技術(shù)以及互聯(lián)網(wǎng)技術(shù)為依托,融合傳統(tǒng)拍賣和在線銷售業(yè)務(wù),使廣大傳統(tǒng)企業(yè)不需要專業(yè)的人員就可以通過互聯(lián)網(wǎng)開展在線拍賣銷售工作,使得原本成本很高而遙不可及的事情變得簡單易行。一個標準的電子拍賣系統(tǒng)應(yīng)該包括以下幾大功能,如圖所示電子拍賣系統(tǒng)用戶登錄電子拍賣系統(tǒng)用戶登錄賣場模塊競拍模塊 圖2-1系統(tǒng)總結(jié)構(gòu)圖添加拍賣物品添加拍賣物品登錄用戶瀏覽他人的拍賣物登錄用戶瀏覽他人的拍賣物品瀏覽贏取物品瀏覽贏取物品圖2-2 用戶與物品用例添加競價添加競價登錄用戶登錄用戶瀏覽贏取物品瀏覽贏取物品圖2-3用戶和競價之間的用例PAGE12.2系統(tǒng)架構(gòu)設(shè)計本系統(tǒng)采用javaEE的三層結(jié)構(gòu),分為表現(xiàn)層,業(yè)務(wù)邏輯層和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則,數(shù)據(jù)訪問等工作放到中間處理,客戶端不直接與數(shù)據(jù)庫交互,而是通過控制器與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。表現(xiàn)層禁止jsp內(nèi)嵌java腳本,因而比較簡單,jsp頁面使用struts2標簽來顯示數(shù)據(jù),生成頁面顯示效果。中間層采用struts2+Spring+Hibernate,為了分離控制層與業(yè)務(wù)邏輯層,又可細分為:Web層,就是MVC模式里面的“C”(Controller),負責(zé)表現(xiàn)層與業(yè)務(wù)邏輯層的交互,調(diào)用業(yè)務(wù)邏輯,并將業(yè)務(wù)邏輯返回給變現(xiàn)層來顯示mvc框架菜用流行的Struts2.Service層(業(yè)務(wù)邏輯),負責(zé)實現(xiàn)業(yè)務(wù)邏輯,對DAO對象進行正面模式的封裝。DAO層(數(shù)據(jù)訪問對象層),負責(zé)與持久化對象交互,封裝了數(shù)據(jù)的增、刪、查、改原子操作。、PO層(持久化對象層),通過實體/關(guān)系映射工具將關(guān)系型數(shù)據(jù)的數(shù)據(jù)映射成對象,實現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫,這個系統(tǒng)采用Hibernate作為O/Rmapping框架。通過使用Struts2,提供了良好MVC模式,所有的用戶請求都由Struts2的Action負責(zé)攔截,然后通過Spring提供的自動裝配功能,定位Spring容器中的業(yè)務(wù)邏輯組件,調(diào)用與無邏輯組件方法來處理用戶請求。除此之外,本系統(tǒng)還使用了SiteMesh頁面裝飾,從而提供更統(tǒng)一的整體效果。數(shù)據(jù)服務(wù)層使用Mysql數(shù)據(jù)庫存放數(shù)據(jù)。系統(tǒng)的總體架構(gòu)如圖PAGE9用戶界面負責(zé)業(yè)務(wù)數(shù)據(jù)的收集和表示客戶端MVC架構(gòu)的控制業(yè)務(wù)邏輯層與表現(xiàn)層的交互業(yè)務(wù)邏輯層的實現(xiàn)層數(shù)據(jù)訪問對象-關(guān)系映射由數(shù)據(jù)庫表得來的對象存放數(shù)據(jù)Mysql用戶界面負責(zé)業(yè)務(wù)數(shù)據(jù)的收集和表示客戶端MVC架構(gòu)的控制業(yè)務(wù)邏輯層與表現(xiàn)層的交互業(yè)務(wù)邏輯層的實現(xiàn)層數(shù)據(jù)訪問對象-關(guān)系映射由數(shù)據(jù)庫表得來的對象存放數(shù)據(jù)Mysql圖2-4系統(tǒng)架構(gòu)設(shè)計2.3數(shù)據(jù)庫設(shè)計對于數(shù)據(jù)庫,規(guī)劃工作是十分必要的。規(guī)劃的好壞將直接影響到整個系統(tǒng)的成功與否,數(shù)據(jù)庫設(shè)計中的規(guī)劃階段的主要任務(wù)是建立數(shù)據(jù)庫的必要性及可行性分析,確定數(shù)據(jù)庫在整個系統(tǒng)的地位。數(shù)據(jù)庫設(shè)計要遵循一些規(guī)則,一個好的數(shù)據(jù)庫滿足一些嚴格的約束和要求。針對電子拍賣系統(tǒng)的需求,通過對整個過程的內(nèi)容和數(shù)據(jù)流程分析,根據(jù)上面的設(shè)計規(guī)劃出的實體主要有:用戶實體、物品實體等,設(shè)計如下面所示的數(shù)據(jù)E-R圖:PAGE10N11N1N1ISBN編號物品實體對應(yīng)狀態(tài)實體物品種類實體競價實體圖書名贏取用戶實體包含競價物品_id物品_id狀態(tài)_id狀態(tài)名用戶idN11N1N1ISBN編號物品實體對應(yīng)狀態(tài)實體物品種類實體競價實體圖書名贏取用戶實體包含競價物品_id物品_id狀態(tài)_id狀態(tài)名用戶id用戶名用戶郵件物品描述種類_id種類名種類描述競價結(jié)束時間作者競價時間競價價格物品標記物品添加時間競價_id擁有N1競價NN1用戶密碼圖2-5數(shù)據(jù)庫設(shè)計E-R圖在創(chuàng)建數(shù)據(jù)庫的邏輯表結(jié)構(gòu)之前,首先需要創(chuàng)建數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫有兩種方法,可以在企業(yè)管理器的數(shù)據(jù)庫服務(wù)器組中直接添加,也可以在查詢分析器中編寫創(chuàng)建數(shù)據(jù)庫的腳本。本次設(shè)計選擇利用hibernate正向生成數(shù)據(jù)庫。按照分析,本系統(tǒng)一共需要建立設(shè)置商品訂單信息表和商品訂單詳細信息表兩張表來保存系統(tǒng)中的訂單管理中的有關(guān)數(shù)據(jù),對于系統(tǒng)中的物品狀態(tài)而言,它僅和物品存在一對多關(guān)系。這種一對多的關(guān)聯(lián)關(guān)系,可以通過外鍵約束來實現(xiàn),而外鍵是保存在多的一端的數(shù)據(jù)表里的。故物品的狀態(tài)的數(shù)據(jù)表非常簡單,僅需要兩個字段,狀態(tài)ID和狀態(tài)名。PAGE11表2-1物品表FieldtypeNULLKeyDefaultExtraState_idInt(11)NOPRINULLAuto_incrementState_nameVarchar(10)YESNULL與物品狀態(tài)實體相似的是,系統(tǒng)中的物品類似也只和物品存在一對多的關(guān)聯(lián)關(guān)系,這關(guān)聯(lián)關(guān)系也是通過在物品保存外鍵進行約束的。而物品種類表中只需要保存物品種類名。種類描述兩個字段。表2-2物品種類表FieldtypeNULLKeyDefaultExtraKind_idInt(11)NOPRINULLAuto_incrementkind_nameVarchar(50)NONULLKind_descVarchar(50)NONULL系統(tǒng)中的用戶實體和物品實體,競價實體存在一對多的關(guān)聯(lián)關(guān)系,甚至和物品之間存在兩種一對多的關(guān)聯(lián)關(guān)系(一種是所屬,一種是贏?。驗橛脩舳际且坏哪嵌?,故無需保存外鍵,只需要保存用戶自身屬性即可。表2-3用戶表FieldtypeNULLKeyDefaultExtraUser_idInt(11)NOPRINULLAuto_incrementUser_nameVarchar(50)NONULLUserpassVarchar(50)NONULLemailVbarchar(100)NONULL系統(tǒng)核心就是拍賣,拍賣物品和用戶之間存在兩種多對一的關(guān)聯(lián)關(guān)系,這兩種多對一的關(guān)聯(lián)關(guān)系都需要物品表中保存外鍵。除此之外,拍賣物品好和武平記錄之間存在一對多的關(guān)聯(lián)關(guān)系,但是這種關(guān)聯(lián)關(guān)系通過在競價記錄表中保留外鍵實現(xiàn),故拍賣物品表利只需要保存物品屬性,以及兩個與拍賣用戶關(guān)聯(lián)的外鍵。拍賣物品還和物品種類實體,物品狀態(tài)實體之間存在多對一的關(guān)聯(lián)關(guān)系,這種關(guān)聯(lián)關(guān)系都是通過在物品表增加外鍵來實現(xiàn)的PAGE12表2-4拍賣表FieldtypeNULLKeyDefaultExtraitem_idInt(11)NOPRINULLAuto_incrementitem_nameVarchar(255)NOUnlNULLItem_remarkVarchar(255)NONULLItem_descVbarchar(255)yesNULLKind_idInt(11)noMULNULLaddtimedatenoNULLendtimedatenoNULLInit_pricedoublenoNullMax_pricedoublenonullOwner_idInt(11)noMULnullWiner_idInt(11)YesMULnullState_idInt(11)NOMULNULL系統(tǒng)的競價記錄實體則和拍賣物品,系統(tǒng)用戶存在多對一的關(guān)聯(lián)關(guān)系,故需要在競價記錄表中增加兩列外鍵。表2-5競價表FieldtypeNULLKeyDefaultExtrabid_idInt(11)NOPRINULLAuto_incrementUser_idInt(11)NOMULNULLItem_idInt(11)NOMULNULLBid_pricedoubleNONULLBid_datedatenonull有了上面的表結(jié)構(gòu)后,已經(jīng)可以大致了解系統(tǒng)中po持久化對象的結(jié)構(gòu)了。PAGE133系統(tǒng)功能與實現(xiàn)3.1用戶登陸界面用戶通過主界面來到用戶登入界面后,要輸入帳戶、密碼、驗證碼才能進行下一步的操作。首先判斷用戶輸入用戶名是否為空,然后判斷輸入的密碼是否為空,然后再根據(jù)用戶輸入用戶名和密碼構(gòu)造SQL語句在數(shù)據(jù)庫中查詢記錄,如果找到相符的則可正常登錄系統(tǒng),否則提示帳號或密碼錯誤,重復(fù)以上步驟。PAGE16如管理員后臺登陸效果如圖3-1所示:程序流程圖如圖3-2所示圖3-1用戶登陸圖3-2用戶登陸流程圖3.2數(shù)據(jù)庫封裝技術(shù)的實現(xiàn)利用Spring的配置文件ApplicationContent.Xml建立數(shù)據(jù)源,并且配置事務(wù)管理<beanid="dataSource"class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"> <!--指定連接數(shù)據(jù)庫的驅(qū)動--> <propertyname="driverClass"value="com.mysql.jdbc.Driver"/> <!--指定連接數(shù)據(jù)庫的URL--> <propertyname="jdbcUrl"value="jdbc:mysql://localhost:3309/auction?useUnicode=true&characterEncoding=UTF-8"/> <!--指定連接數(shù)據(jù)庫的用戶名--> <propertyname="user"value="root"/> <!--指定連接數(shù)據(jù)庫的密碼--> <propertyname="password"value="123"/> <!--指定連接數(shù)據(jù)庫連接池的最大連接數(shù)--> <propertyname="maxPoolSize"value="20"/> <!--指定連接數(shù)據(jù)庫連接池的最小連接數(shù)--> <propertyname="minPoolSize"value="1"/> <!--指定連接數(shù)據(jù)庫連接池的初始化連接數(shù)--> <propertyname="initialPoolSize"value="1"/> <!--指定連接數(shù)據(jù)庫連接池的連接的最大空閑時間--> <propertyname="maxIdleTime"value="20"/> </bean>圖3-3spring的運行原理程圖Spring在三大架構(gòu)中處于中間層,起這著連接作用,但也是應(yīng)用的核心層。Struts2的運行原理圖3-4Struts2的運行原理程圖本系統(tǒng)用了自定義的攔截器AuthorityInterceptor,它是用來攔截那些沒有登錄系統(tǒng)而用系統(tǒng)的的所有操作,自定義的Interceptor必須繼承AbstractInterceptor。AuthorityInterceptor被添加到默認攔截器里,所有請求都會被AuthorityInterceptor攔截,PAGE183.3添加拍賣物品及代碼實現(xiàn)圖3-5進入添加物品圖3-6進入你當前拍賣物品圖3-7你選擇競價物品的種類PAGE19圖3-8你的競價是50圖3-9你參與的全部競價PAGE314測試4.1測試與調(diào)試的基本概念軟件測試是整個系統(tǒng)開發(fā)過程中一個重要環(huán)節(jié),是成功開發(fā)本系統(tǒng)的重要保證。軟件測試階段的主要任務(wù)是發(fā)現(xiàn)并排除在分析、設(shè)計、編碼各階段中產(chǎn)生的各種類型的錯誤,以得到可使用的軟件系統(tǒng)。常用的軟件測試方法有兩大類:靜態(tài)測試方法和動態(tài)測試方法。靜態(tài)測試方法是程序員普遍采用的一種方法,其內(nèi)容主要是通過人工模擬軟件系統(tǒng)的執(zhí)行方式,以代碼會審、走查、辦公室檢查的形式分析或核查系統(tǒng)的功能實現(xiàn)、編碼過程的正確性。動態(tài)測試方法是通過輸入一組預(yù)先按照一定的測試準則構(gòu)造的實例數(shù)據(jù)來動態(tài)運行程序,而達到發(fā)現(xiàn)程序錯誤的過程。按照通常的軟件系統(tǒng)測試,可以分別進行單元測試、集成測試、確認測試、系統(tǒng)測試,最后進行驗收測試,即由用戶通過試用系統(tǒng)而進行測試,檢驗系統(tǒng)的可用性及與用戶配合的程度。調(diào)試是軟件開發(fā)過程中最艱巨的腦力勞動,調(diào)試開始時,軟件開發(fā)者僅僅面對著錯誤的征兆,然而在問題的外部現(xiàn)象和內(nèi)在原因之間往往并沒有明顯的聯(lián)系,在組成程序的密密麻麻的元素中,每一個都可能是錯誤的根源。如何能在浩如煙海的程序元素中找到有錯誤的那個(或幾個)元素,這是調(diào)試過程中最關(guān)鍵的技術(shù)問題。本設(shè)計中調(diào)試的方法主要是設(shè)置斷點跟蹤。使用斷點跟蹤可以找到程序的出錯位置,縮小查找錯誤的范圍,提高調(diào)試的效率。調(diào)試的任務(wù)是及時改正測試過程中發(fā)現(xiàn)的軟件錯誤。具體地說,調(diào)試過程由兩個步驟組成,它從表示程序中存在錯誤的某跡象開始,首先確定錯誤的準確位置,也就是找出哪個模塊或哪個語句引起的錯誤。然后仔細研究推斷代碼以確定問題的原因,并設(shè)法改正.現(xiàn)階段己研究出一些幫助調(diào)試的技術(shù),主要有輸出存儲器內(nèi)容、打印語句和自動工具。PAGE324.2測試時間本系統(tǒng)的測試分為以下幾個階段進行:第一階段:根據(jù)需求分析劃定軟件中要測試的功能和性能的范圍,確定測試的內(nèi)容。第二階段:分模塊對系統(tǒng)中的各模塊進行測試,對需求分析中各模塊的功能和性能及用戶的特殊需求進行測試,記下各模塊的所有的問題,及時解決。第三階段:在模塊測試的基礎(chǔ)上將各模塊拼接進行整體功能和性能的測試。第四階段:綜合測試。4.3測試范圍與主要內(nèi)容4.3.1所有的實體對象與數(shù)據(jù)庫一一對映的測試表4-1測試范圍主要內(nèi)容簡要說明用戶列表功能測試測試系統(tǒng)用戶的查詢功能性測試競價列表功能測試測試系統(tǒng)競價的查詢和修改功能性測試物品列表功能測試測試物品的查詢和修改功能性測試物品種類列表功能測試測試物品種類的查詢和修改功能性測試物品狀態(tài)列表功能測試測試物品狀態(tài)的查詢和修改功能性測試用戶列表功能測試圖4-1查詢用戶測試結(jié)果競價列表功能測試PAGE33圖4-2競價查詢測試結(jié)果物品列表功能測試圖4-3物品查詢測試結(jié)果物品種類列表功能測試圖4-4物品種類查詢測試結(jié)果物品狀態(tài)列表功能測試圖4-5物品狀態(tài)查詢測試結(jié)果PAGE344.3.2業(yè)務(wù)邏輯層的測試表4-2測試范圍主要內(nèi)容簡要說明業(yè)務(wù)邏輯的測試測試業(yè)務(wù)邏輯的個種功能功能測試圖4-6業(yè)務(wù)邏輯層測試結(jié)果4.3.3綜合測試表4-3測試范圍主要內(nèi)容簡要說明整個系統(tǒng)測試個模塊測試功能整體測試圖4-7整個系統(tǒng)的測試結(jié)果本系統(tǒng)測試簡單,主要針對所有DAO進行測試,進行各種功能行的測試,最后進行模塊測試,和集成測試,每個測試信息流圖如下:糾錯評價測試再測試測試案例期望結(jié)果糾錯評價測試再測試最后完成所有測試。4.4測試階段心得PAGE2軟件的測試,是軟件穩(wěn)定性和安全性的保證。由于設(shè)計之初,就充分認識到,測試的重要性,所有,在設(shè)計的每個階段,我們都進行了認真的單元測試,功能測試。雖然,在測試過程中遇到了不少的問題,但是,通過認真的排查、收集資料、尋求老師同學(xué)幫助,最終把問題掃除。系統(tǒng)設(shè)計后期,出現(xiàn)了一些問題,不過,由于在單元測試過程中,積累了豐富的經(jīng)驗,問題很快就被解決。測試是個對經(jīng)驗依賴很強的一門技術(shù),只要不斷的實踐與連續(xù),才能有效的提高測試能力。PAGE36結(jié)論信息系統(tǒng)經(jīng)過幾十年的發(fā)展,從單純的數(shù)據(jù)處理到事務(wù)處理,進而到?jīng)Q策支持,越來越智能化,系統(tǒng)化。相應(yīng)的,信息系統(tǒng)的結(jié)構(gòu)與開發(fā)方法也在不斷地進行更新與變化。從單機系統(tǒng)到Client/Server到Browser/Server,以至到可連接全世界計算機的Internet/I

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論