【正文】
17 會(huì) 員管 理 購(gòu) 物 車注 銷登 錄管 理 訂 單修 改 信 息刪 除 商 品創(chuàng) 建 訂 單修 改 商 品 數(shù) 量購(gòu) 買 商 品查 詢 用 戶 信 息修 改 訂 單查 詢 訂 單修 改 用 戶 信 息 圖 43 面向注冊(cè)用戶的信息管理用例圖 系統(tǒng)會(huì)員主要有幾種活動(dòng):購(gòu)買商品、查詢商品和修改信息。購(gòu)買商品中主要是包含對(duì)購(gòu)物車的管理,對(duì)購(gòu)物車中的商品進(jìn)行增加、修改、刪除和購(gòu)買的動(dòng)作。而訂單管理的作用主要是 對(duì)用戶產(chǎn)生的訂單進(jìn)行相應(yīng)的管理,管理員可以對(duì)用戶的訂單進(jìn)行修改和刪除的功能。 計(jì)算機(jī)信息工程學(xué)院畢業(yè)設(shè)計(jì)說明書 18 系統(tǒng) ER 圖 用 戶用 戶 名密 碼 性 別 年 齡地 址訂 單訂 單 編 號(hào) 購(gòu) 買 者狀 態(tài)購(gòu) 買 成 功商 品商 品 名 單 價(jià) 商 品 描 述查 詢屬 于分 類類 別 名 稱 編 號(hào)MN1N1N 圖 44 數(shù)據(jù)庫(kù) ER 圖 數(shù)據(jù)庫(kù)選擇與分析 本次課程設(shè)計(jì)采用的數(shù)據(jù)庫(kù)是 MySQL 數(shù)據(jù)庫(kù), MySQL 是開放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng), MySQL 被廣泛地在 Inter 上的中小型網(wǎng)站中使用。其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇它作為網(wǎng)站數(shù)據(jù)庫(kù) 。 MySQL 具有以下的特點(diǎn): (1)使信息更易于查找和使用 Mysql 繼續(xù)為簡(jiǎn)便地查找信息提供易于使用的工具。 (2)支持 Web 功能的信息共享 Mysql 可以通過企業(yè)內(nèi)部網(wǎng)絡(luò) Inter 很簡(jiǎn)便地實(shí)現(xiàn)信息共享,而且它可以很容易地將數(shù)據(jù)庫(kù)定位到瀏覽器中,它將桌面數(shù)據(jù)庫(kù)的功能和網(wǎng)站的功能結(jié)合在一起。 (3)用于信息管理的強(qiáng)大解決方案 高級(jí)用戶和開發(fā)人員可以創(chuàng)建那些將 Mysql 界面 (客戶端 )的易用性和 SQL 服務(wù)器的可擴(kuò)展性和可靠性結(jié)合在一起的解決方案。 (4)改變了數(shù)據(jù)庫(kù)窗口 可在 Mysql 容納并顯示新的對(duì)象,增強(qiáng)了 Mysql 數(shù)據(jù)庫(kù)的易用性。 (5)提供名稱自動(dòng)更正功能 自動(dòng)解決當(dāng)用戶重新命名數(shù)據(jù)庫(kù)對(duì)象時(shí)出現(xiàn)的常見負(fù)面效應(yīng)。例如,當(dāng)用戶重命名表中的字段時(shí),將自動(dòng)在諸如查詢的相關(guān)對(duì)象中進(jìn)行相應(yīng)的更改。 (6)具有子數(shù)據(jù)表功能 計(jì)算機(jī)信息工程學(xué)院畢業(yè)設(shè)計(jì)說明書 19 子數(shù)據(jù)表在同一窗口中,提供了嵌套式的視圖,這樣就可以在同一窗口中專注于相關(guān)的數(shù)據(jù)并對(duì)其進(jìn)行編輯。 (7) 用戶只需簡(jiǎn)單地將 Mysql 對(duì)象 (表、查詢等 )從數(shù)據(jù)庫(kù)放到 ODBC 數(shù)據(jù)源中,即可從 Mysql 中將數(shù)據(jù)導(dǎo)出到其他數(shù)據(jù)庫(kù)中。 (8)數(shù)據(jù)訪問頁(yè)功能 該功能可使用戶快捷方便地創(chuàng)建數(shù)掂 HTML 頁(yè),并通過數(shù)據(jù) HTML 頁(yè),將數(shù)據(jù)庫(kù)應(yīng)用擴(kuò)展到企業(yè)內(nèi)部網(wǎng)絡(luò) Inter 上。這將幫助用戶比以往更快捷、高效的方式共享信息。 (9)共享組件的集成 Mysql 利用新的 Web 組件和位于瀏覽器中的 COM 控件,為用戶提供了多種查看和分析數(shù)據(jù)的方式。 (10)交互性 Mysql 支持 OLE DB,使用戶可以將 Mysql 界面的易用性與諸如 SQL Server2020的后端企業(yè)數(shù)據(jù)庫(kù)的可升級(jí)性相結(jié)合。 數(shù)據(jù)表的結(jié)構(gòu) “ admin”表的設(shè)計(jì)如下所示: 表 41 admin 表 列名 數(shù)據(jù)類型 長(zhǎng)度 允許空 id int 4 否 username varchar 50 是 password varchar 50 是 realname varchar 50 是 sex varchar 50 是 age varchar 50 是 address varchar 50 是 tel varchar 50 是 admin 表用于存儲(chǔ)管理員的信息。 “ ddinfo” 表的設(shè)計(jì)如下所示: 表 42 ddinfo 表 列名 數(shù)據(jù)類型 長(zhǎng)度 允許空 id int 4 否 ddbh varchar 50 是 計(jì)算機(jī)信息工程學(xué)院畢業(yè)設(shè)計(jì)說明書 20 spid varchar 50 是 dj varchar 50 是 sl varchar 50 是 member varchar 50 是 spmember varchar 50 是 ddinfo 表用于存儲(chǔ)用戶產(chǎn)生的訂單信息 。 “ guestbook”表的設(shè)計(jì)如下所示: 表 43 guestbook 表 列名 數(shù)據(jù)類型 長(zhǎng)度 允許空 id int 4 否 nickname varchar 100 是 content varchar 500 是 addtime varchar 50 是 addtime varchar 50 是 guestbook 表用于存儲(chǔ)用戶對(duì)商品的評(píng)論信息。 “ member”表的設(shè)計(jì)如下所示: 表 44 member 表 列名 數(shù)據(jù)類型 長(zhǎng)度 允許空 id int 4 否 username varchar 50 是 password varchar 50 是 realname varchar 50 是 sex varchar 50 是 age varchar 50 是 address varchar 50 是 varchar 50 是 regtime varchar 50 是 member 表用戶存儲(chǔ)注冊(cè)用戶的信息。 “ news”表的設(shè)計(jì)如下所示: 表 45 news 表 列名 數(shù)據(jù)類型 長(zhǎng)度 允許空 id int 4 否 mc varchar 100 否 nr text 0 否 計(jì)算機(jī)信息工程學(xué)院畢業(yè)設(shè)計(jì)說明書 21 sj varchar 50 否 news 表用于存儲(chǔ)商城的動(dòng)態(tài)信息。 “ gg”表的設(shè)計(jì)如 下所示: 表 46 gg 表 列名 數(shù)據(jù)類型 長(zhǎng)度 允許空 id int 4 否 title varchar 50 是 nr varchar 500 是 sj varchar 50 是 gg 表用于存儲(chǔ)商城的活動(dòng)公告信息。 “ sp”表的設(shè)計(jì)如下所示: 表 47 sp 表 列名 數(shù)據(jù)類型 長(zhǎng)度 允許空 id int 4 否 mc varchar 50 是 pic varchar 150 是 pp varchar 50 是 jg varchar 50 是 content text 0 是 sj varchar 50 是 member varchar 50 是 dj int 11 是 sp 表用于存儲(chǔ)商城中的商品信息。 “ dd”表的設(shè)計(jì)如下所示: 表 48 dd 表 列名 數(shù)據(jù)類型 長(zhǎng)度 允許空 id int 4 否 ddbh varchar 50 是 member varchar 50 是 sj varchar 50 是 spmember varchar 50 是 計(jì)算機(jī)信息工程學(xué)院畢業(yè)設(shè)計(jì)說明書 22 zt varchar 50 是 dd 表用于存儲(chǔ)用戶的訂單信息。 “ fenlei”表的設(shè)計(jì)如下所示: 表 49 fenlei 表 列名 數(shù)據(jù)類型 長(zhǎng)度 允許空 id int 4 否 mc varchar 50 是 fenlei 表用于存儲(chǔ)商品的分類信息。 選題相關(guān)支持條件 本系統(tǒng)采用 B/S(瀏覽器 /服務(wù)器 )結(jié)構(gòu)設(shè)計(jì),隨著 Inter 技術(shù)的興起,是對(duì) C/S 結(jié)構(gòu)的改進(jìn),用戶只需要從瀏覽器上就能訪問系統(tǒng),邏輯處理的部分基本不在前段( Browser)實(shí)現(xiàn),二是全部都放置在服務(wù)器端( Server),實(shí)現(xiàn)了所謂的三層結(jié)構(gòu)。 圖 45 B/S 結(jié)構(gòu)圖 B/S 結(jié)構(gòu)的工作流程: 網(wǎng)頁(yè)( Browser) 應(yīng)用服務(wù)器( Server) 數(shù)據(jù)庫(kù)( DB)。 本系統(tǒng)使用的環(huán)境如下所示: 數(shù)據(jù)庫(kù): MySQL 開發(fā)工具: MyEclipse 開發(fā)環(huán)境: windows7 應(yīng)用服務(wù)器: Tomcat 本系統(tǒng)是在 MyEclipse 平臺(tái)下利用 Java 語(yǔ)言完成的。通過 J2EE 技術(shù)提供相關(guān)的數(shù)據(jù)訪問類對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。 J2EE 平臺(tái)是目前很成熟的 B/S 平臺(tái),系統(tǒng)通過 J2EE 來實(shí)現(xiàn) B/S 結(jié)構(gòu)是比較適合的。系統(tǒng)實(shí)現(xiàn)依靠相對(duì)熟悉的 Java 語(yǔ)言和 MySQL 數(shù)據(jù)庫(kù)系統(tǒng),其基本操作實(shí)質(zhì)還是對(duì)數(shù)據(jù)庫(kù)進(jìn)行增加、刪除、查找等操作,暫不存在技術(shù)問題。基于 J2EE 和 MySQL 的應(yīng)用程序,需要的 硬件及軟件環(huán)境較為寬松(服務(wù)器 +服務(wù)器操作系統(tǒng)),采用 MySQL 數(shù)據(jù)庫(kù),其成本接近于 0 。 B/S 應(yīng)用程序無(wú)需用戶安裝任何客戶端軟件,僅僅需要一個(gè)能瀏覽普通網(wǎng)頁(yè)的瀏覽器,能實(shí)現(xiàn)網(wǎng)上商品購(gòu)物交易系統(tǒng)進(jìn)行管理。 HTM 返回 HTTP 請(qǐng)求 Browse 瀏覽器 DATA BASE WEB 服務(wù)器 計(jì)算機(jī)信息工程學(xué)院畢業(yè)設(shè)計(jì)說明書 23 文件夾結(jié)構(gòu)圖 圖 46 文件夾結(jié)構(gòu)圖 因?yàn)楸鞠到y(tǒng)采用 MVC 設(shè)計(jì)模式,所以將模型( Model)、視圖( View)、控制器( Controller)分離開,這樣可以讓代碼的的功能細(xì)分的很專一,專門做一種功能,這樣修改代碼會(huì)非常方便。 計(jì)算機(jī)信息工程學(xué)院畢業(yè)設(shè)計(jì)說明書 24 系統(tǒng) 開發(fā)路線 頁(yè) 面 設(shè)計(jì)后 臺(tái) 開發(fā)測(cè) 試圖 標(biāo) 設(shè) 計(jì)頁(yè) 面 布 局商 品 展 示動(dòng) 態(tài) 文 本前 臺(tái) 功 能前 臺(tái) 版 塊系 統(tǒng) 需 求數(shù) 據(jù) 庫(kù) 數(shù) 據(jù) 存 儲(chǔ)數(shù) 據(jù) 測(cè) 試功 能 測(cè) 試邏 輯 測(cè) 試 圖 47 系統(tǒng)開發(fā)路線圖 上圖是系統(tǒng)的開發(fā)路線圖,是典型的三層架構(gòu)的設(shè)計(jì),從整體上將系統(tǒng)分為三層。第一層是表示層的界面邏輯、第二層是業(yè)務(wù)邏輯、第三層是數(shù)據(jù)存儲(chǔ)邏輯。用戶通過瀏覽器輸入地址欄訪問系統(tǒng)的用戶界面層,該層負(fù)責(zé)向用戶展示數(shù)據(jù),根據(jù)用戶的輸入數(shù)據(jù)對(duì)數(shù)據(jù)庫(kù)進(jìn)行相應(yīng)的增刪改查的操作。數(shù)據(jù)的格式化和驗(yàn)證都在該層完成。 在服務(wù)器端包括業(yè)務(wù)邏輯和數(shù)據(jù)交換,從用戶接口層獲得數(shù)據(jù),將數(shù)據(jù)進(jìn)行邏輯處理,將對(duì)應(yīng)的數(shù)據(jù)格式轉(zhuǎn)換為數(shù)據(jù)庫(kù)存儲(chǔ)的格式,再由數(shù)據(jù)交換層將數(shù)據(jù)存入到數(shù)據(jù)庫(kù)中。數(shù)據(jù)交換層是專門用來與數(shù)據(jù)庫(kù)打交道的,所有對(duì)數(shù)據(jù)庫(kù)的操作都由該層來完成。以上架構(gòu)的好處就是能各部分的工作分配到各個(gè)層次,這樣每個(gè)層次的功能不會(huì)重合。 以查詢商品為例:用戶通過瀏覽器訪問系統(tǒng)的 web 頁(yè)面 ,輸入查詢的條件和內(nèi)容 ,然后這些條件會(huì)被發(fā)送到服務(wù)器端 ,在服務(wù)器端會(huì)有相應(yīng)的程序?qū)τ脩糨斎氲臈l件進(jìn)行處理 ,找到對(duì)應(yīng)的商品信息 ,并將這些信息返回到瀏覽器 ,用戶的瀏覽器解析這些信息后生成一個(gè) HTML 的頁(yè)面展現(xiàn)出來,這樣用戶就能看到查詢后的結(jié)果。 體現(xiàn)整體架構(gòu)設(shè)計(jì)的包圖 進(jìn)行面向?qū)ο蟮姆治雠c設(shè)計(jì)時(shí) ,需要組織開發(fā)的過程,從而顯示出問題的分析和相關(guān)的設(shè)計(jì)。一般使用 UML 的包圖來展現(xiàn)。包圖可以被用來進(jìn)行數(shù)據(jù)的存儲(chǔ)、訪問控制、配置管理和構(gòu)建可重用的部件庫(kù)。一旦將包圖構(gòu)建的合理,就能反映系統(tǒng)的框架結(jié)構(gòu)。包與包之間的依賴關(guān)系概括出了包的內(nèi)容的依賴關(guān)系。本系統(tǒng)的包圖如下所示。 計(jì)算機(jī)信息工程學(xué)院畢業(yè)設(shè)計(jì)說明書 25 業(yè) 務(wù) 邏 輯 層A d m in A c t io n C o m A c t io nG b o o k A c t io n M e m b e r A c t io nN e w s A c t io n U p lo a d A c t io n表 示 層W e b R o o t 下 的 js p 頁(yè) 面數(shù) 據(jù) 訪 問 層D A O 圖 48 系統(tǒng)包圖 以上三個(gè)包的關(guān)系如下 ,表示層依賴控制層 ,控制層依賴業(yè)務(wù)邏輯層 ,業(yè)務(wù)邏輯層依賴數(shù)據(jù)訪問層 ,控制層沒有給出 ,主要包括前端控制器 ( 和 )和過濾器組件。系統(tǒng)中關(guān)鍵的代碼集中在業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。 體現(xiàn)整體架構(gòu)設(shè)計(jì)的類圖 在本系統(tǒng)的邏輯層中,類圖可以用于表示類之間的關(guān)系,類圖用來說明實(shí)體的角色與責(zé)任。這些類的實(shí)體提供了系統(tǒng)的所有行為。類圖中的基本元素是類和他們之間的關(guān)系。經(jīng)過分析得出系統(tǒng)的類圖模型如圖 49 所示。系統(tǒng)中一共涉及到 18 個(gè)類。其中主要的類有 7 個(gè)。 計(jì)算機(jī)信息工程學(xué)院畢業(yè)設(shè)計(jì)說明書 26 + l o g i n C h a n g e ( ) : S t r i n g+ a d m i n P w d ( ) : S t r i n g+ a d m i n E x i t ( ) : S t r i n g+ a d d M a n a g e ( ) : S t r i n g+ d e l M a n a g e ( ) : S t r i n