網(wǎng)上拍賣系統(tǒng)設(shè)計與實現(xiàn).doc
網(wǎng)上拍賣系統(tǒng)設(shè)計與實現(xiàn)摘 要進入21世紀后,電子商務憑借互聯(lián)網(wǎng)的支持迅速發(fā)展并逐漸成熟。其中,網(wǎng)上拍賣己經(jīng)成為電子商務的重要組成部分,也是近年來研究的熱點。隨著電子商務、電子政務等應用的快速發(fā)展,以及用戶要求的不斷提高,傳統(tǒng)的電子商務開發(fā)技術(shù),尤其是網(wǎng)上拍賣系統(tǒng)的開發(fā)技術(shù)暴露出許多不足之處,造成了其開發(fā)的效率降低、成本上升、擴充與維護困難、分工合作不好進行等問題,限制了網(wǎng)上拍賣系統(tǒng)的進一步發(fā)展。本文的主要工作是對基于B/S模式及JSP技術(shù)的網(wǎng)上拍賣Web應用系統(tǒng)進行了研究與設(shè)計。本文首先介紹了網(wǎng)上拍賣系統(tǒng)的背景,分析比較了國內(nèi)外相關(guān)網(wǎng)上拍賣系統(tǒng)的運行模式、系統(tǒng)特點與開發(fā)技術(shù)。然后分析了目前熱點的各種Web應用開發(fā)技術(shù)中存在的優(yōu)勢和不足之處,權(quán)衡利弊后,選擇并重點研究了JSP技術(shù)進行開發(fā)。然后根據(jù)Web應用的特點提出了基于B/S模式、采用JSP技術(shù)的Web應用開發(fā)方案。最后對基于該方案的網(wǎng)上拍賣系統(tǒng)進行了功能模塊設(shè)計、體系結(jié)構(gòu)設(shè)計和數(shù)據(jù)庫設(shè)計,提出了網(wǎng)站開發(fā)過程中的關(guān)鍵技術(shù)的研究與選用(如如何獲得“及時”信息等),并給出了相應的實現(xiàn)。在設(shè)計方面,系統(tǒng)采用B/S三層結(jié)構(gòu),同時使用JSP技術(shù)進行動態(tài)頁面的設(shè)計,從系統(tǒng)的安全性和代碼的可重用性方面考慮,運用JavaBean對程序的關(guān)鍵代碼進行封裝。后臺數(shù)據(jù)庫選用MYSQL數(shù)據(jù)庫。關(guān)鍵字: JSP;B/S結(jié)構(gòu);JavaBean;網(wǎng)上拍賣系統(tǒng)ABSTRACTEnter after twenty-first Century, e-commerce has developed quickly and became mature. Among them, the online auction has become an important part of electronic commerce, is the focus of recent research. With the rapid development of e-commerce, e-government applications, and continuously improve the user requirements, development technology of the traditional e-commerce, especially online auction system development technology has exposed many shortcomings, which reduce the efficiency, the development costs, expand and maintenance difficulties, not for division of labor and other issues, limit the further development of the online auction system.The main work of this thesis is the research and design of the online auction application system of Web mode and JSP technology based on B/S. This paper first introduces the background of online auction system, analysis and comparison of the mode of operation, the system characteristic and the development technology of domestic and international relevant online auction system. Then analyzes all kinds of Web application development technology hot spot in current advantages and shortcomings, weigh the advantages and disadvantages, focusing on the study of JSP technology selection and development. Then according to the application characteristics of Web put forward B/S model, using JSP technology application development based on Web. At the end of the online auction system based on the scheme of function module design, system structure design and database design, and puts forward the research and selection of key technology in the web development process ( such as how to obtain the timely information), and gives the corresponding implementation.In terms of design, system uses B/S three layer structure, and dynamic page design using JSP technology, considering system security and code reusability, using the key code of the JavaBean program package. Background database using MYSQL database.Key Words:JSP;B/S structure;JavaBean; Network Auction System目 錄引 言5一 概 述51.1課題研究的目的61.2課題研究的意義61.3國內(nèi)外發(fā)展趨勢61.4課題的可行性分析81.4.1課題調(diào)研81.4.2可行性分析8二 系統(tǒng)需求分析92.1 功能需求描述102.2 非功能需求描述11三 總體設(shè)計113.1系統(tǒng)總體結(jié)構(gòu)設(shè)計113.2軟件模塊高層設(shè)計123.2.1資訊管理123.2.2留言管理123.2.3會員管理123.2.4商品管理133.2.5網(wǎng)站簡介133.2.6資訊瀏覽133.2.7留言發(fā)布133.2.8商品發(fā)布133.2.9商品管理133.2.10商品競價143.2.11競價記錄14四 數(shù)據(jù)庫設(shè)計144.1概念設(shè)計(E-R圖)144.2邏輯結(jié)構(gòu)164.3物理設(shè)計19五 詳細設(shè)計225.1模塊詳細設(shè)計225.1.1資訊管理225.1.2網(wǎng)站簡介235.1.3會員管理245.1.4商品管理255.1.5留言管理275.1.6用戶注冊285.1.7會員登陸295.1.8商品瀏覽305.1.9資訊瀏覽325.1.10商品競價335.1.11我的商品355.1.12我的競價375.2界面設(shè)計385.2.1網(wǎng)站首頁395.2.2后臺管理員界面39六 系統(tǒng)測試396.1測試方法396.2測試用例40總 結(jié)43參考文獻44致 謝45引 言進入21世紀后,電子商務憑借Internet的支持迅速發(fā)展并日漸成熟。其中,網(wǎng)上拍賣模式已經(jīng)成為電子商務中常見的重要業(yè)務之一。由于Internet的世界性、廣泛性、靈活性以及即時性等突出的優(yōu)點,為拍賣商務行為的參與者開創(chuàng)了一個前所未有的巨大市場和交易平臺。一 概 述網(wǎng)絡和電子商務的迅速發(fā)展是世人有目共睹的。商務交易的許多關(guān)鍵部分都己經(jīng)得到支持,比如搜索能力,安全認證,支付過程等。然而,達成合同協(xié)議的談判過程仍然是一個費用昂貴的、需要手動的過程,很難借助網(wǎng)絡和電子商務的支持。電子商務的交易可以分成四個階段:信息階段、談判階段、結(jié)算階段、售后支持階段。信息階段已經(jīng)被當前的技術(shù)很好的支持,結(jié)算階段也可以依賴一套安全支付基礎(chǔ)設(shè)施,售后支持則可以通過一系列的技術(shù)完成。雖然仍存在大量問題,但是電子商務環(huán)境下的這三個階段相對好處理一些。和這三個階段相比,談判階段就相對很難得到支持了。在現(xiàn)實世界中,談判階段可以通過許多方式得到解決,比如固定價格交易方式和復雜的討價還價機制。固定價格交易方式也稱為“接受或離開”方式,即接受這個固定價格從而達成交易,否則離開。一旦價格被確定下來后,策略是很容易實施的。而討價還價則描述了一個公開的來回的談判模式,在這種模式中,兩個或更多的市場參與者對一筆交易的一個或多個屬性有順序的交換出價和還價。買賣雙方之間的討價還價策略是極為復雜的,通常要進行很長時間,而且需要對要揭示的信息量有精明的判斷,以及確定什么時候說謊等。把這么復雜的一個過程全自動化是一項相當復雜的任務,到目前為止還幾乎沒有什么進展和支持。當前在電子商務中進行簡單的固定價格談判過程是可能的,但是要實現(xiàn)全自動的談判,目前還不存在足夠的技術(shù)和理論基礎(chǔ)進行支持。然而,在全自動談判領(lǐng)域中的一個子領(lǐng)域網(wǎng)上拍賣,無論是從理論的角度,還是技術(shù)的角度來看,都是可行的。1.1 課題研究的目的 1.掌握J2EE的工作原理。2.學會使用JAVA開發(fā)工具。3.掌握小型關(guān)系數(shù)據(jù)庫。4.提高邏輯思維能力。5.培養(yǎng)相互合作的精神。1.2 課題研究的意義網(wǎng)上拍賣系統(tǒng)是一個提供給在校大學生交易的平臺,學生們可以將自己的閑置物品發(fā)布出來轉(zhuǎn)讓給有需要的同學,避免了因物品閑置而導致的浪費,而有需要的同學也可以以低的價格淘到所需的物品,這樣一個系統(tǒng)存在于學校必定會為學生帶來收益。隨著科學技術(shù)的不斷提高,計算機科學日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。作為計算機應用的一部分,使用計算機對信息進行管理,有著手工管理所無法比擬的優(yōu)點.例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高人事勞資管理的效率,也是企業(yè)的科學化、正規(guī)化管理,與世界接軌的重要條件。因此,開發(fā)這樣一套軟件成為很有必要的事情。在下面的各章中我們將談談其開發(fā)過程和所涉及到的問題及解決方法。本文中所做的主要工作如下:(1) 闡述整個系統(tǒng)的系統(tǒng)結(jié)構(gòu)及工作原理;分析了系統(tǒng)實現(xiàn)中的特殊性、難點和重點。(2) 設(shè)計實現(xiàn)前臺用戶注冊、物品發(fā)布、拍賣競價、發(fā)表留言、資訊瀏覽,后臺實現(xiàn)用戶管理、商品審核管理、留言管理、資訊管理、網(wǎng)站基本信息管理等。 (3) 分析并解決實現(xiàn)中的若干技術(shù)問題。 (4) 建立完整的拍賣流程系統(tǒng)。1.3 國內(nèi)外發(fā)展趨勢拍賣網(wǎng)站的經(jīng)營者為所有有心成為“買賣人”的網(wǎng)民提供了自由空間,比如有不少熱心旅游的網(wǎng)民就可以將自己周游各地帶回的稀奇物件羅列在網(wǎng)上進行出售。底價可以自己定,限定叫價時間,將商品賣給叫價最高的人,從而獲得利潤和拍賣的樂趣。而對于買家來說,想買二手貨,想買商場中無法找到的稀罕物件,網(wǎng)絡為他們提供了可能。于是,網(wǎng)絡拍賣不出意料地在短時間內(nèi)火了起來。在國內(nèi),在線拍賣業(yè)呈現(xiàn)出強者愈強的局面。著名在線拍賣網(wǎng)站淘寶網(wǎng)公布的業(yè)績顯示,今年第一季度其總成交額突破億元人民幣,同比增長超過。淘寶的不俗表現(xiàn)給海內(nèi)外業(yè)界猜測其將有可能取代無疑又提供了一份依據(jù)。今年月日出版的美國福布斯雜志就曾刊登標題為淘寶反擊的文章,分析了目前中國電子商務市場的競爭局面。認為如果馬云有其后續(xù)發(fā)展之道,那么最終占領(lǐng)全球在線拍賣市場的不會是,而是淘寶。在雅虎于加利福尼亞州桑尼韋爾舉辦的一年一度的分析師大會上,馬云亦對出席會議的華爾街分析師們表示,中國消費者電子商務市場上的戰(zhàn)役已經(jīng)結(jié)束。他透露,在過去的兩年里,旗下的淘寶網(wǎng)已奪下了其競爭對手大部分的網(wǎng)上拍賣市場,現(xiàn)在市場占有率超過。根據(jù)國內(nèi)調(diào)查公司易觀國際以及中國互聯(lián)網(wǎng)絡信息中心發(fā)布的數(shù)據(jù),淘寶網(wǎng)已經(jīng)在市場份額上大大超過了對手。國內(nèi)市場如此,國際市場也不例外。雅虎公司不久前宣布于月日結(jié)束在美國和加拿大的拍賣業(yè)務。在北美的拍賣業(yè)務是雅虎在年前推出的。雅虎在聲明中稱,公司繼續(xù)重組資源以關(guān)注核心戰(zhàn)略,向用戶提供超級體驗,作為這種努力的一部分,公司將優(yōu)先開發(fā)相應產(chǎn)品。顯然,雅虎在這些地方的在線拍賣業(yè)務競爭不過等對手,當?shù)氐脑诰€拍賣市場份額也日益集中。面對淘寶網(wǎng)的強勢地位,后來者要想再涉足大而全的在線拍賣業(yè)務顯然是困難的。但是在線拍賣業(yè)務并沒有因此向后來者關(guān)閉大門,細分的在線拍賣領(lǐng)域就是人們可以選擇的機會。作為專業(yè)化細分市場的服務性網(wǎng)絡拍賣網(wǎng)站,在國內(nèi)外都已經(jīng)出現(xiàn),其優(yōu)勢已經(jīng)得以充分體現(xiàn),比如專業(yè)藝術(shù)品拍賣網(wǎng)站就為藝術(shù)愛好者提供了一個專業(yè)的藝術(shù)品拍賣平臺,拍賣網(wǎng)站的專業(yè)化運作使它可以有效地細分目標市場,以更加專業(yè)的高水準途徑服務該細分市場。目前,已有不少人開始涉足細分在線拍賣業(yè)務。不久前,全國首家化工產(chǎn)品網(wǎng)上在線交易平臺易通盈泰化工交易網(wǎng)在武漢光谷建成。易通盈泰化工交易網(wǎng)是目前國內(nèi)化工行業(yè)首家實現(xiàn)“全程在線”交易的平臺,網(wǎng)站開通后,企業(yè)在網(wǎng)上可完成在線招標、在線拍賣、網(wǎng)上交易等行為,可大大降低交易成本,并可快速獲知行業(yè)內(nèi)供求信息。易通盈泰化工交易網(wǎng)在接受媒體采訪時表示在線拍賣業(yè)務將是網(wǎng)站日后發(fā)展的重點業(yè)務之一。早在去年底,上海機動車拍賣中心有限公司主辦的企業(yè)公務車改革專場拍賣會便率先在國內(nèi)使用了由二度車網(wǎng)開發(fā)的“二手車網(wǎng)絡同步拍賣”系統(tǒng),幾十位來自全國各地的競買者通過互聯(lián)網(wǎng)成功實現(xiàn)了遠程競標,這標志著中國二手車拍賣進入了網(wǎng)絡化時代。據(jù)悉,在未來年內(nèi),上海機動車拍賣中心除了采用“二手車網(wǎng)絡同步拍賣”系統(tǒng)外,部分車輛還特別提供現(xiàn)場拍攝的錄像,并在二度車網(wǎng)上公示,任何地區(qū)的競買者不僅能了解到車輛的注冊和變更情況、客觀科學的車況檢測報告,還可以體驗到接近實地觀看效果的車況視頻服務。今年月日,各地買家在線參與了上海市余輛二手車的拍賣,這是上海市對二手車網(wǎng)絡拍賣的又一次成功嘗試。北京遠方國拍將業(yè)務主要定位于藝術(shù)品在線拍賣,而雅典娜拍賣網(wǎng)則將自己的觸角伸到全球?qū)@I(lǐng)域,專利領(lǐng)域的在線拍賣在全世界都是比較新的事物。國內(nèi)著名房產(chǎn)網(wǎng)站搜房網(wǎng)也于不久前開展了一次在線房產(chǎn)拍賣活動,雖然不能依此判斷搜房網(wǎng)將涉足在線拍賣房產(chǎn)的業(yè)務,但是這樣的嘗試仍然具有不一般的意義?;ヂ?lián)網(wǎng)拍賣細分領(lǐng)域還有很多,只要細心挖掘,人們就不難發(fā)現(xiàn)在線拍賣的機遇。1.4 課題的可行性分析1.4.1 課題調(diào)研(1)與實踐活動和相關(guān)的文件和資料由教師提供。(2)本課題要求學生有較強的自學能力以及一定的關(guān)系數(shù)據(jù)庫理論開發(fā)功底。(3)具有對復雜表進行處理的能力。(4)具體問題再做詳細調(diào)查研究并與指導老師面談。1.4.2 可行性分析鑒于系統(tǒng)是個小型二手商品拍賣系統(tǒng),開發(fā)難度適中。通過對諸多開發(fā)工具和數(shù)據(jù)庫進行比較及指導老師的建議,最終確定采用Eclipse作為前臺開發(fā)工具、Tomcat作為系統(tǒng)測試工具、MYSQL作為關(guān)系數(shù)據(jù)庫,系統(tǒng)設(shè)計語言為JSP。Eclipse是一個開放源代碼的、與NetBeans、Sun ONE Studio和Borland Jbuilder類似的一種基于Java的整合型可擴展開發(fā)平臺,也是目前最著名的開源項目之一,其本身只是一個框架和一組服務,用于通過插件組件構(gòu)建開發(fā)環(huán)境。Eclipse 附帶了一個標準的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。其未來的目標不僅僅是成為專門開發(fā)Java程序的IDE環(huán)境,根據(jù)Eclipse的體系結(jié)構(gòu),通過開發(fā)插件,它能擴展到任何語言的開發(fā),甚至能成為圖片繪制的工具。 MYSQL 數(shù)據(jù)庫引擎提供完整的XML支持。它還具有構(gòu)成最大的 Web 站點的數(shù)據(jù)存儲組件所需的可伸縮性、可用性和安全功能。MYSQL關(guān)系數(shù)據(jù)庫引擎支持當今苛刻的數(shù)據(jù)處理環(huán)境所需的功能。數(shù)據(jù)庫引擎充分保護數(shù)據(jù)完整性,同時將管理上千并發(fā)修改數(shù)據(jù)庫的用戶的開銷減到最小。同時分布式事務支持充分保護任何分布式數(shù)據(jù)更新的完整性。JSP是在普通的Html中嵌入了Java代碼的一個腳本,它由JSP容器(如Tomcat)首先將其轉(zhuǎn)化為Servlet,然后再調(diào)用Javac將Servlet編譯為Class文件,最終,服務器解釋的是Class文件。JSP是Sun公司J2EE架構(gòu)中重要的部分。Tomcat是一個免費的開源Servlet容器?;赥omcat的開發(fā)其時主要是JSP和Servlet的開發(fā),而Tomcat短小精悍,配置方便,能滿足需求,因此在這種情況下選擇Tomcat。同時,Tomcat和Eclipse結(jié)合起來,加上MVC 的框架實現(xiàn)本次畢業(yè)設(shè)計的要求。根據(jù)用戶的要求,系統(tǒng)采用B/S模式。B/S模式是三層體系結(jié)構(gòu),它將表示層、業(yè)務邏輯層層、數(shù)據(jù)服務層分布到不同的單元。表示層由瀏覽器和動態(tài)的Web頁面構(gòu)成,接收和處理用戶的請求,并交給Web應用服務器。業(yè)務邏輯層對應于Web應用服務器,其業(yè)務邏輯處理過程使用數(shù)據(jù)源層的服務來得到必要的信息或存儲、修改相應的數(shù)據(jù)。數(shù)據(jù)服務層對應于數(shù)據(jù)庫服務器,數(shù)據(jù)庫服務器實現(xiàn)對數(shù)據(jù)庫的管理和庫中數(shù)據(jù)的訪問與增加、刪除及修改。二 系統(tǒng)需求分析隨著Internet的迅速普及,目前網(wǎng)上交易己經(jīng)日益成為人們認可的又一種交易方式之一。網(wǎng)上交易不僅讓買家獲得大量商品信息,使他們通過網(wǎng)絡購買價廉物美的各類商品,也讓賣家在網(wǎng)上能以全新的模式銷售商品,在有效控制成本的同時大幅提升銷售量,同時不受地域與時間的限制。一個典型的網(wǎng)上拍賣系統(tǒng)一般都要提供拍賣商發(fā)布拍賣品信息,上傳相關(guān)拍賣品信息,查看競價記錄等功能,同時也應該提供競價人拍賣品搜索,查看拍賣品信息,查看拍賣商情況,參與拍賣品競價等功能。在本系統(tǒng)的設(shè)計中,由于考慮到系統(tǒng)應用的廣泛性和延展性,任何一個用戶應該可以既是拍賣商,又是競拍商。既可以將自己的商品發(fā)布,供其他用戶競拍,又可以參與其他用戶發(fā)布的商品的競拍。所以任何一個注冊的用戶都可以使用競拍商和拍賣商的所有功能。而對于任何一個參與拍賣的活動,系統(tǒng)都應該能以競拍報告的形式自動發(fā)送給用戶,以便用戶及時查閱。經(jīng)過調(diào)研與分析,網(wǎng)上拍賣系統(tǒng)主要應具有以下功能:(1)會員管理。會員管理包括管理員查看各會員信息。(2)資訊管理。資訊管理包括站內(nèi)資訊信息的錄入、修改與刪除等功能。(4)網(wǎng)站簡介管理。網(wǎng)站基礎(chǔ)信息的編輯,如:聯(lián)系方式,EMAIL,地址等(3)商品管理。管理員審核并查看會員發(fā)布的商品。(4)留言管理。管理員管理會員提交的留言信息(5)會員注冊。游客填個人信息以注冊(6)商品發(fā)布。會員發(fā)布二手商品(7)資訊瀏覽。游客或會員瀏覽其它會員發(fā)布的二手商品。(8)競拍競價。會員針對某一商品進行競價。(9)留言。會員提供留言給管理員(6)用戶個人信息修改。2.1 功能需求描述功能性需求 描述了系統(tǒng)與其獨立于系統(tǒng)實現(xiàn)環(huán)境之間的交互。(1)會員前臺需求游客游客希望可以查看會員發(fā)布的商品信息、站內(nèi)資訊;可以注冊會員。會員會員希望可以發(fā)布商品,對其它會員發(fā)布的商品進行競價,而禁止對自己發(fā)布的商品競價;可以管理自己的競價記錄,對于中標的商品能做付款操作;可以管理自己發(fā)的商品,并對其進行管理;可以留言給管理員;(2)后臺管理員需求管理員希望能對站內(nèi)資訊進行編輯;能查詢所有注冊會員的信息;能處理會員的留言;能查詢所有會員發(fā)布的所有商品信息,并可對商品進行審核操作,只有審核通過的商品才可以供會員競價;能編輯網(wǎng)站基礎(chǔ)信息內(nèi)容。(3)界面操作部分所有用戶要求界面友好,功能易理解易操作。2.2 非功能需求描述非功能性需求描述了不直接關(guān)聯(lián)到系統(tǒng)功能行為的系統(tǒng)的方方面面。非功能性需求包括用于系統(tǒng)不同方面的廣大范圍,涉及可用性到性能。l 可用性 用戶可以學會使用操作,提供系統(tǒng)幫助。l 可靠性 系統(tǒng)對操作失敗,能夠檢測錯誤給予用戶提示。l 實現(xiàn)需求 WINXP 以上操作系統(tǒng)10G硬盤 JAVAWEB服務器端。128M內(nèi)存l 界面需求 系統(tǒng)提供合法的系統(tǒng)交互格式。l 數(shù)據(jù)庫安全性 (1)通過對不同用戶設(shè)置不同權(quán)限,保證數(shù)據(jù)庫的安全。 (2)設(shè)計備份與恢復數(shù)據(jù)庫模塊,能更好的維護數(shù)據(jù)庫。 l 數(shù)據(jù)庫完整性 (1) 實體完整性 通過設(shè)置主鍵保證數(shù)據(jù)庫實體完整性 (2) 參照完整性 通過設(shè)置外碼保證數(shù)據(jù)庫參照完整性 (3)用戶定義完整性 通過CHECK約束保證用戶自定義的完整性三 總體設(shè)計3.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計根據(jù)需求分析的結(jié)果,系統(tǒng)可按用戶角色分為兩部分,即管理員模塊、會員模塊。系統(tǒng)功能架構(gòu)圖如下:由上圖可以清楚的看到各角色的功能模塊3.2 軟件模塊高層設(shè)計3.2.1 資訊管理管理員編輯發(fā)布站內(nèi)資訊信息,供游客、會員用戶瀏覽。模塊名:資訊管理參與者:管理員涉從及關(guān)注點:管理員能發(fā)布、修改、刪除、查詢資訊類信息;游客、會員能查詢資訊信息。前置條件:管理員成功登陸后置條件:資訊添加、編輯或刪除成功,更新news表3.2.2 留言管理管理員管理會員發(fā)布的留言信息模塊名:留言管理參與者:管理員涉從及關(guān)注點:管理員能查看會員的留言并可以刪除前置條件:管理員成功登陸后置條件:留言信息查詢成功,若刪除成功則更新msg表3.2.3 會員管理管理員查詢所有會員的信息模塊名:會員管理參與者:管理員涉從及關(guān)注點:管理員能對會員信息進行查詢。前置條件:管理員成功登陸后置條件:會員信息查詢成功3.2.4 商品管理管理員查詢并審核會員發(fā)布的二手商品信息。模塊名:商品管理參與者:管理員涉從及關(guān)注點:管理員能查詢商品信息,并可以對商品信息進行審核。前置條件:管理員成功登陸后置條件:商品信息審核,更新goods表3.2.5 網(wǎng)站簡介管理員編輯網(wǎng)站基礎(chǔ)信息模塊名:網(wǎng)站簡介參與者:管理員涉從及關(guān)注點:管理員能編輯網(wǎng)站基礎(chǔ)信息前置條件:管理員成功登陸后置條件:網(wǎng)站基礎(chǔ)信息更新成功,更新siteinfo表3.2.6 資訊瀏覽會員或游客瀏覽站內(nèi)資訊信息模塊名:資訊瀏覽參與者:管理員涉從及關(guān)注點:會員或游客能瀏覽管理員發(fā)布的站內(nèi)資訊。前置條件:進行網(wǎng)站后置條件:資訊查詢成功,顯示在頁面。3.2.7 留言發(fā)布會員登陸后發(fā)表留言。模塊名:留言發(fā)布參與者:管理員涉從及關(guān)注點:必須登陸后才能發(fā)表留言,管理員在后臺能查詢到會員發(fā)布的留言。前置條件:會員成功登陸后置條件:留言發(fā)表成功,更新msg表3.2.8 商品發(fā)布模塊名:商品發(fā)布參與者:會員涉從及關(guān)注點:會員登陸后發(fā)布二手商品信息供其它會員競拍前置條件:會員成功登陸后置條件:添加成功更新goods表3.2.9 商品管理模塊名:商品管理參與者:會員涉從及關(guān)注點:會員能查詢與自己ID關(guān)聯(lián)的商品。前置條件:會員成功登陸后置條件:從goods表中查詢當前登陸會員所關(guān)聯(lián)的商品,顯示到頁面。3.2.10 商品競價用例名:商品競價參與者:會員涉從及關(guān)注點:會員競價,只能對其它會員發(fā)布的商品進行競價,且每次競價金額不得低于此商品當前最高競價金額。前置條件:會員成功登陸后置條件:競價成功,新增一條競價記錄,更新JJ表3.2.11 競價記錄用例名:我的競價參與者:會員涉從及關(guān)注點:會員登陸后查詢自己所參與的所有競價前置條件:會員成功登陸后置條件:從JJ表中查詢當前登陸者所參與的競價,顯示在頁面。四 數(shù)據(jù)庫設(shè)計4.1 概念設(shè)計(E-R圖)系統(tǒng)各實體間關(guān)系圖:系統(tǒng)用戶實體圖:商品實體圖競價記錄實體圖留言信息實體圖資訊信息實體圖:4.2 邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)設(shè)計階段完成的任務是概念模型向某種數(shù)據(jù)模型的轉(zhuǎn)換。設(shè)計邏輯結(jié)構(gòu)應該選擇最適用于表達相應概念結(jié)構(gòu)的數(shù)據(jù)模型。設(shè)計邏輯結(jié)構(gòu)時,一般需要將概念結(jié)構(gòu)轉(zhuǎn)換為一般的關(guān)系、網(wǎng)狀、層次模型,再將轉(zhuǎn)化來關(guān)系、網(wǎng)狀、層次模型向特定DBMS支持下的數(shù)據(jù)模型轉(zhuǎn)換,并對數(shù)據(jù)模型進行優(yōu)化。關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合,而ER圖則由實體、實體的屬性和實體之間的聯(lián)系三要素組成。將ER圖轉(zhuǎn)換為關(guān)系模型實際上就是將實體,實體屬性和實體之間的聯(lián)系轉(zhuǎn)換為關(guān)系模式。轉(zhuǎn)換過程中常見規(guī)則有:(1)一個實體型轉(zhuǎn)換為一個關(guān)系模式;(2)一個一對一的聯(lián)系可轉(zhuǎn)換成一個獨立的關(guān)系模式,也可與任意一端對應的關(guān)系模式合并;(3)一個一對多的聯(lián)系可以轉(zhuǎn)換成一個獨立的關(guān)系模式,也可與多的那一端對應的關(guān)系模式合并;(4)一個多對多的關(guān)系轉(zhuǎn)換成一個關(guān)系模式。本系統(tǒng)數(shù)據(jù)庫的功能主要是存儲平臺中所有數(shù)據(jù),以便進行操作。本系統(tǒng)數(shù)據(jù)庫采用MYSQL數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫名稱為studentpm_db,共包含6張表。關(guān)于數(shù)據(jù)庫中的數(shù)據(jù)表如下:(1)goods(商品信息表)用于存儲商品數(shù)據(jù)信息,表goods的結(jié)構(gòu)如表B.1所示。表B.1 表goods的結(jié)構(gòu)字段名數(shù)據(jù)類型長度是否主鍵描述idint11序號gnamevarchar500商品名稱yearvarchar500購買年份chengsevarchar500成色pricevarchar500起拍價remarkvarchar500備注shstatusvarchar500審核狀態(tài)pmstatusvarchar500拍賣狀態(tài)savetimevarchar500發(fā)布時間unamevarchar500發(fā)布人imgvarchar500圖片delstatusvarchar500刪除狀態(tài)typevarchar500類別etimevarchar500結(jié)束時間(2)jj(競價信息表)競價信息表主要用來保存會員的競價的信息。表jj的結(jié)構(gòu)如表B.2所示。表B.2 表jj的結(jié)構(gòu)字段名數(shù)據(jù)類型長度是否主鍵描述idint11序號gidvarchar500商品IDjpricevarchar500競價金額unamevarchar500競價人statusvarchar500中標狀態(tài)savetimevarchar500競價日期fkstatusvarchar500付款狀態(tài)(3)msg(留言信息表)用于存放會員的留言信息,表msg的結(jié)構(gòu)如表B.3所示。表B.3 表msg的結(jié)構(gòu)字段名數(shù)據(jù)類型長度是否主鍵描述idint11序號contentvarchar500留言內(nèi)容replyvarchar500回復內(nèi)容savetimevarchar500留言時間unamevarchar500留言人(4)news(資訊信息表)用于存放資訊信息,表news的結(jié)構(gòu)如表B.4所示。表B.4 表news的結(jié)構(gòu)字段名數(shù)據(jù)類型長度是否主鍵描述idid11序號titlevarchar500 標題contentvarchar500內(nèi)容savetimevarchar500發(fā)布日期(5)siteinfo(網(wǎng)站基礎(chǔ)信息表)用于存放網(wǎng)站基礎(chǔ)信息,表siteinfo的結(jié)構(gòu)如表B.5所示。表B.5 表siteinfo的結(jié)構(gòu)字段名數(shù)據(jù)類型長度是否主鍵描述idid11序號infovarchar500 網(wǎng)站信息telvarchar500聯(lián)系電話faxvarchar500傳真emailvarchar500郵箱addrvarchar500地址(6)sysuser(系統(tǒng)用戶信息表)用于系統(tǒng)用戶信息,表sysuser的結(jié)構(gòu)如表B.6所示。表B.6 表sysuser的結(jié)構(gòu)字段名數(shù)據(jù)類型長度是否主鍵描述idint11序號unamevarchar500 用戶名upassvarchar500密碼realnamevarchar500真實姓名sexvarchar500性別telvarchar500電話addrvarchar500地址utypevarchar500用戶類型savetimevarchar500注冊日期4.3 物理設(shè)計基于上面關(guān)系模型,向特定的RDBMS的數(shù)據(jù)模型轉(zhuǎn)換。下面設(shè)計數(shù)據(jù)表,表與表之間相互關(guān)聯(lián),共同存儲著系統(tǒng)所需要的數(shù)據(jù)。在設(shè)計表的過程中,一般要遵循下面原則:數(shù)據(jù)庫的一個表最好只存儲一個實體或?qū)ο蟮南嚓P(guān)信息;不同的實體最好存儲在不同的數(shù)據(jù)表中;如果實體還可以再分,實體的劃分原則是,劃分后的實體比當前系統(tǒng)要開發(fā)的實體復雜度小;數(shù)據(jù)表的信息結(jié)構(gòu)一定要合適,表的字段的數(shù)量一般不要過多;擴充信息和動態(tài)變化的信息一般要分別放在不同的表里;多對多的關(guān)系盡量不出現(xiàn)。根據(jù)上一節(jié)的分析,網(wǎng)上拍賣系統(tǒng)數(shù)據(jù)庫(名稱定為“studentpm_db”)中應該包含6 個數(shù)據(jù)表,分別是用于存放系統(tǒng)用戶信息的系統(tǒng)用戶表“sysuser”、用于存放商品信息的信息表“goods”、用于存放競價信息的信息表“jj”、用于存放留言信息的信息表“msg”、用于存放資訊信息的信息表“news”、用于存放網(wǎng)站基礎(chǔ)信息的信息表“siteinfo”。各數(shù)據(jù)表的結(jié)構(gòu)(包含的表字段、表字段的數(shù)據(jù)類型、大小、約束)及相關(guān)說明如下:商品表設(shè)計競價表設(shè)計留言信息表設(shè)計資訊信息表設(shè)計網(wǎng)站基礎(chǔ)信息表設(shè)計系統(tǒng)用戶表五 詳細設(shè)計5.1 模塊詳細設(shè)計5.1.1 資訊管理流程設(shè)計圖:添加資訊:/資訊發(fā)布public String newsAdd()News news = new News();news.setTitle(title);news.setContent(content);news.setSavetime(Info.getDateStr();commonDAO.update(news);suc=;return success;/資訊編輯public String newsEdit()News news = (News)commonDAO.findById(id, News);news.setTitle(title);news.setContent(content);commonDAO.update(news);suc=;return success;5.1.2 網(wǎng)站簡介流程設(shè)計圖:/網(wǎng)站信息編輯public String siteEdit()Siteinfo s = (Siteinfo)commonDAO.findById(id, Siteinfo);s.setAddr(addr);s.setEmail(email);s.setFax(fax);s.setTel(tel);s.setInfo(info);commonDAO.update(s);suc=;return success;5.1.3 會員管理流程設(shè)計圖:5.1.4 商品管理流程設(shè)計圖:/文件上傳public void upLoadFile(File source,File target) InputStream in=null; OutputStream out=null; try in=new BufferedInputStream(new FileInputStream(source),FILE_SIZE); out=new BufferedOutputStream(new FileOutputStream(target),FILE_SIZE); byte image=new byteFILE_SIZE; while(in.read(image)0) out.write(image); catch(IOException ex) ex.printStackTrace(); finally try in.close(); out.close(); catch(IOException ex) /發(fā)布商品public String GoodsAdd() Map session= ServletActionContext.getContext().getSession(); Sysuser user = (Sysuser)session.get(admin);Goods g = new Goods();g.setGname(gname);g.setYear(year);g.setChengse(chengse);g.setRemark(remark);g.setUname(user.getUname();g.setPrice(price);g.setSavetime(Info.getDateStr();g.setShstatus(待審核);g.setPmstatus(待拍);g.setDelstatus(0);g.setType(type);String hz = upFileFileName.substring(upFileFileName.lastIndexOf(.)+1);String wjmc = Info.getAutoId()+.+hz;String filePath=ServletActionContext.getServletContext().getRealPath(upfile)+/+wjmc;File targetFile=new File(filePath);upLoadFile(upFile,targetFile);g.setImg(wjmc);suc=;commonDAO.save(g);return success;/商品編輯public String GoodsEdit()Goods g=(Goods)commonDAO.findById(id, g);g.setGname(gname);g.setChengse(chengse);g.setYear(year);g.setPrice(price);g.setRemark(remark);g.setType(type);if(!upFileFileName.equals()String hz = upFileFileName.substring(upFileFileName.lastIndexOf(.)+1);String wjmc = Info.getAutoId()+.+hz;String filePath=ServletActionContext.getServletContext().getRealPath(upfile)+/+wjmc;File targetFile=new File(filePath);upLoadFile(upFile,targetFile);g.setImg(wjmc);commonDAO.update(g);suc=;return success;5.1.5 留言管理/發(fā)布留言public String msgAdd()Map session= ServletActionContext.getContext().getSession(); Sysuser user = (Sysuser)session.get(admin);Msg msg = new Msg();msg.setContent(content);reply = ;msg.setReply(reply);msg.setSavetime(Info.getDateStr();msg.setUname(user.getUname();commonDAO.save(msg);suc=;return success;/管理員回復留言public String reply()Msg msg = (Msg)commonDAO.findById(id, Msg);msg.setReply(reply);commonDAO.update(msg);suc=;return success;5.1.6 用戶注冊/用戶注冊public String reg()String hql = from Sysuser where uname=+uname+;List adminList=commonDAO.findByHql(hql);if(adminList.size()!=0)no=;return erro;elseSysuser sysuser=new Sysuser();sysuser.setUname(uname);sysuser.setUpass(upass);sysuser.setRealname(realname);sysuser.setSex(sex);sysuser.setTel(tel);sysuser.setAddr(addr);sysuser.setUtype(utype);sysuser.setSavetime(Info.getDateStr();commonDAO.save(sysuser);suc=;return success;5.1.7 會員登陸/會員登陸public String memberLogin() Map session= ServletActionContext.getContext().getSession();String hql=from Sysuser where uname=+uname+ and upass=+upass+ and utype=會員 ;List adminList=commonDAO.findByHql(hql);if(adminList.size()!=0)Sysuser sysuser=(Sysuser)adminList.get(0); session.put(admin, sysuser); suc=; return success;elseno=;return erro;5.1.8 商品瀏覽% String type = request.getParameter(type)=null?:request.getParameter(type); String gname = request.getParameter(gname)=null?:request.getParameter(gname); String url =/cas/pmz.jsp?1=1; String hql = from Goods where pmstatus=拍賣中 and delstatus=0 ; String f = request.getParameter(f); if(f=null) type = Info.getUTFStr(type); gname = Info.getUTFStr(gname); if(!type.equals() hql+= and (type =+type+ ); url+=&type=+type; if(!gname.equals() hql+= and (gname like%+gname+% ); url+=&gname=+gname; hql += order by id desc; PageManager pageManager = PageManager.getPage(pmz.jsp?1=1,8, request); pageManager.doList(hql); PageManager bean= (PageManager)request.getAttribute(page); ArrayList carlist=( ArrayList)bean.getCollection(); for(Goods car:carlist) % IMG src=upfile/ A href=carx.jsp?id= 購買年限: 起拍價:元 當前最高價: %ArrayList jjlist = (ArrayList)dao.findByHql(from Jj where gid=