freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于ssh的體育用品銷售管理系統(tǒng)開發(fā)畢業(yè)論文(設(shè)計(jì))-閱讀頁

2024-09-14 14:17本頁面
  

【正文】 ibernate+STRUTS2 ● 邏輯結(jié)構(gòu):用戶界面開發(fā)、業(yè)務(wù)邏輯處理和數(shù)據(jù)存儲 (2) 該系統(tǒng)聯(lián)合 使 用業(yè)務(wù)代理和 DAO 模式 系統(tǒng)的層次結(jié)構(gòu)設(shè)計(jì) 系統(tǒng)從邏輯上分為顯示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層。 數(shù)據(jù)庫設(shè)計(jì) 數(shù)據(jù)庫技術(shù)是信息資源管理最有效的手段。數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)的好壞直接對應(yīng)用系統(tǒng)的效率及實(shí)現(xiàn)效果產(chǎn)生影響。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 10 基于系統(tǒng)的功能分析, 其 ER圖 如圖 。如果某個(gè)地方出現(xiàn)錯(cuò)誤不會影響其他層。 為體現(xiàn) Struts 框架結(jié)構(gòu)的設(shè)計(jì)思想,可采用以下的包結(jié)構(gòu)的設(shè)計(jì)思想。這樣以來, View只使用或調(diào)用 action里的服務(wù),而action和 service也只調(diào)用 dao里面的方法。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 14 系統(tǒng)文件的組織 如圖 所示 : 圖 系統(tǒng)文件的組織 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 15 第四章 詳細(xì)設(shè)計(jì) 詳細(xì)設(shè)計(jì)是對系統(tǒng)架構(gòu)設(shè)計(jì)的精化,主要是在系統(tǒng)需求規(guī)格和架構(gòu)設(shè)計(jì)的基礎(chǔ)上,對系統(tǒng)用例中使用的類和對象進(jìn)行進(jìn)一步 的 精化,確定每一個(gè)類的屬性和方法。 系統(tǒng)部署架構(gòu) 整個(gè)應(yīng)用部署在一臺應(yīng)用服務(wù)器、一臺數(shù)據(jù)庫服務(wù)器上。 系統(tǒng)時(shí)序圖 在 體育用品銷售管理 系統(tǒng)設(shè)計(jì)過程中 , 時(shí)序圖如 圖 所示。 ( 2) Action:指 Struts 中的 Action 的具體實(shí)現(xiàn)類,在具體的時(shí)序圖中被實(shí)際的類所替代。 ( 3) BO:業(yè)務(wù)邏輯操作對象( Bussiness Object),執(zhí)行功能的業(yè)務(wù)邏輯職責(zé),在具體的時(shí)序圖中被實(shí)際的類所替代。 ( 4) DAO:為數(shù)據(jù)操作類處理相應(yīng)的數(shù)據(jù)庫操作。 系統(tǒng)的持久化層具體實(shí)現(xiàn) 定義 Hibernate 工廠類 本系統(tǒng)采用 Struts 和 Hibernate 技術(shù)進(jìn)行開發(fā),由 Hibernate 進(jìn)行數(shù)據(jù)庫連接和數(shù)據(jù)對象的操作 ,這里定義一個(gè) HibernateSessionFactory類去負(fù)責(zé)初始化 Hibernate。這樣在使用 hibernate 時(shí)更加方便 ,不用每次為創(chuàng)建 SessionFactory 實(shí)例, Session 實(shí)例或者關(guān)閉 Session 實(shí)例 ,打開 /關(guān)閉,事物操作單獨(dú)這些代碼,只要調(diào)用上面的類的方法就可以了,從而簡化了操作。主要是在業(yè)務(wù)核心方法和具體數(shù)據(jù)源之間增加一層 ,這樣就減少了兩者的耦合。本系統(tǒng)所有與數(shù)據(jù)庫邏輯有關(guān)的方法都在 IDao 接口中,在 包下創(chuàng)建一個(gè) Dao 的接口,并在 包下創(chuàng)建一個(gè) impl 繼承 Dao 接口實(shí)現(xiàn)具體的操作。業(yè)務(wù)邏輯層的實(shí)現(xiàn)需要調(diào)用持久化層和數(shù)據(jù)庫交互功能的支持。 系統(tǒng)接口及映射文件的實(shí)現(xiàn)設(shè)計(jì) 本系統(tǒng)的持久化邏輯采用 Hibernate 作為中間件 ,并使用 DAO 設(shè)計(jì)模式實(shí)現(xiàn)。 每個(gè)持久化類對應(yīng)一個(gè) DAO,它實(shí)現(xiàn)了持久化類的創(chuàng)建、查詢、更新及刪除方法,即CRUD(create 、 retrieve、 update、 delete)方法,以及其他訪問持久化機(jī)制方法。 為了使用 Hibernate 來持久化對象 ,首先要根據(jù)數(shù)據(jù)庫的各個(gè)表創(chuàng)建映射文件 .每個(gè)類都對應(yīng)的 Hibernate 映射文件,且都放到 bean 包下。 在登錄界面上用戶可以輸入用戶名和密碼進(jìn)行登錄,在登錄時(shí)用戶可以選擇以不同的角色身份登錄。具體實(shí)現(xiàn)思想 :首先客戶端驗(yàn)證通過 JavaScript 來完成,比如用戶沒有輸入用戶名時(shí)提示客戶用戶名不能為空,密碼為空時(shí)提示密碼不能為空。當(dāng)數(shù)據(jù)提交以后,表單中的數(shù)據(jù)將經(jīng)過攔截 器,它的作用是為參數(shù)作類型轉(zhuǎn)換,這個(gè)過程是自動完成的,無須我們?nèi)プ鬟@部分工作。 然后判斷登錄的身份為普通用戶還是管理員,輸入的用戶名和密碼是否正確,action 里面的 execute 方法調(diào)用 IUserService 接口中的 login(Customer c)方法實(shí)現(xiàn)登錄的合法性驗(yàn)證。如果是管理員,我們將把 servletContext 里面的 admin鍵值對讀出,如果用戶密碼都正確跳轉(zhuǎn)到管理界面否則提示出錯(cuò)。 遇到的問題:在寫 action 的時(shí)候總是忘記把屬性的 set/get 方法寫上,這樣作的后果是 struts是沒法給屬性賦值的,可能會產(chǎn)生空指針異常。 注冊功能 任何第一次登陸的用戶必須先注冊,與注冊界面有關(guān)的為 ,在完成注冊功能時(shí)需要為注冊功能的實(shí)現(xiàn)定義一個(gè) action 名字為 RegisterAction,在execute()方法中調(diào)用相應(yīng)的 Dao 和 Service 方法實(shí)現(xiàn)注冊。用戶名作為用戶登錄的唯一標(biāo)識。只由在滿足這一系列條件的情況下才能正常地注冊,否則重新注冊。在 JavaScript 文件的 中定義了一個(gè)函數(shù),專門對注冊界面提交的表單進(jìn)行合法性驗(yàn)證,如果驗(yàn)證通過,轉(zhuǎn)回 form 中執(zhí)行的 action 屬性,跳轉(zhuǎn)到RegisterAction 的 execute 方法中,在 execute 中接收到從注冊頁面的表單中的提交的相關(guān)數(shù)據(jù),創(chuàng)建 User 對象并將提交的數(shù)據(jù)封裝在此 User 類中,調(diào)用 service 中的registerUser 方法對業(yè)務(wù)邏輯進(jìn)行進(jìn)一步的驗(yàn)證,完全符合條件的情況下才能注冊成功,否則繼續(xù)進(jìn)行注冊。實(shí)現(xiàn)購物車中的添加體育用品、修改購買的數(shù)量,以及清空購物車的功能。具體實(shí)現(xiàn):在 listener 包中創(chuàng)建一個(gè) ApplicationListener 類,繼 承系統(tǒng)提供的 ServletContextListener 類,定義 contextIntialized 方法對體育用品列表信息進(jìn)行初始化工作,在此方法中新建一個(gè) products 類型的對象,該對象的構(gòu)造方法就有從數(shù)據(jù)庫中查詢出所有的商品,然后把 products 的對象存放在 ServletContext范圍內(nèi)的 application 對象中,存放在 ServletContext 范圍內(nèi)的對象的生命周期為從web 的啟動到 web 服務(wù)器的關(guān)閉時(shí)注銷,因此解決了在整個(gè)系統(tǒng)運(yùn)行的過程中都有體育用品信息的存在,而且不用在每次用到體育用品信息的時(shí)候去數(shù)據(jù)庫中查詢調(diào)用數(shù)據(jù),減少了與數(shù)據(jù)庫的交互性并能提高系統(tǒng)的運(yùn)行效率。 購物車的創(chuàng)建是在 listener 包中創(chuàng)建一個(gè) ShopCartListener 類,繼承系統(tǒng)提供的HttpSessionListener 類,從 HttpSessionListener 中獲取 session 對象,創(chuàng)建一個(gè)shopcart 對象,并把它放在 session 范圍內(nèi),以供用戶使用。核心代碼如下: listener listenerclass/listenerclass /listener 體育用品信息在 jsp頁面上的動態(tài)顯示使用了在 jsp 的腳本中使用 jstl 標(biāo)簽結(jié)合EL 表達(dá)式來處理。 ${} 等于 ((name))。然后這個(gè)表單轉(zhuǎn)向AddProductAction來處理 。execute 方法中新建一個(gè) product 對象,然后從 session 對象中獲得 shopcart對象,并調(diào)用其中的 addProduct 方法往購物車中添加一條 product 對象。 在購物車中點(diǎn)擊清除按鈕時(shí)可以從購物車中刪除指定的 products 對象。 同理,我們也可以體育用品清空購物車時(shí),把 shopcart 所維護(hù)的那個(gè) Map 給清空掉,購物車清空就這樣實(shí)現(xiàn)了,具體方法為調(diào)用 shopcart 的 removeAll()方法。將使用 listOrdersOfUser 查找出來的訂單信息存放在 session 對象中,在顯示用戶訂單信息的 頁面中使用 el 表達(dá)式獲取到存放在 session 對象中的訂單信息,使用 jstl 標(biāo)簽來遍歷集合,將所有的訂單信息顯示在頁面上。將此確定的訂單明細(xì)信息存放在 request 中,在 頁面中使用 el表達(dá)式 ${}獲取 request 對象中的訂單明細(xì)信息,輸出到頁面上。具體實(shí)現(xiàn)思想:在 OrderDetailAction 中創(chuàng)建execute 方法,從 session 中獲得 shopcart 對象并將它的 product 對象轉(zhuǎn)換為 order對象,再封裝一個(gè)訂單對象,然后調(diào)用 IOrderService 接口的 saveOrder 方法實(shí)現(xiàn)將訂單信息保存到數(shù)據(jù)庫中。 用戶信息修改 在整個(gè)銷售系統(tǒng)中還可以對用戶的個(gè)人信息進(jìn)行修改,用戶可以只修改密碼也可以修改其他信息。增加的商品會及時(shí)的保存到數(shù)據(jù)庫中,但是由于用戶所看到的商品是在系統(tǒng)啟動的時(shí)候加載進(jìn)內(nèi)存的,所以要多刷新幾次或者下次登錄時(shí),用戶才會看到。 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 20 系統(tǒng)業(yè)務(wù)流程圖 圖 系統(tǒng)業(yè)務(wù)流程圖 本章小結(jié) 本章主要參考概要設(shè)計(jì)所提出的軟件架構(gòu),用分層的思想實(shí)現(xiàn)了銷售管理的基本功能。在管理層方面實(shí)現(xiàn)了添加物品,修改庫存,物品信息管理模塊。軟件測試是保證軟件質(zhì)量的關(guān)鍵,也是發(fā)現(xiàn)軟件中錯(cuò)誤和缺陷的主要手段。 測試過程中我們能發(fā)現(xiàn)體育用品銷售管理系統(tǒng)的每個(gè)功能是否都能正常使用,檢查程序功能是否按照需求分析的規(guī)定正 常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生預(yù)期的輸出信息。 三、功能測試簡介 功能測試,又稱黑盒測試或數(shù)據(jù)驅(qū)動測試,是指已知產(chǎn)品所應(yīng)具有的功能,通過測試來檢測每個(gè)功能是否都能正常使用。 系統(tǒng)功能測試 本銷售管理系統(tǒng)分為客戶端的功能測試和服務(wù)端的功能測試。為了方便服務(wù)端的測試系統(tǒng)在啟動時(shí)讀取配置文件獲得默認(rèn)的管理員帳號和密碼,在登錄時(shí)可以選擇此帳戶并以管理員身份登錄進(jìn)行后臺數(shù)據(jù)的管理。 測試數(shù)據(jù)如表 所示: 表 用戶注冊數(shù)據(jù)如下 用戶名 宋志鵬 密碼 123456 確認(rèn)密碼 123456 所在地區(qū) 中國山西省朔州 聯(lián)系地址 1 太原理工大 學(xué) 聯(lián)系地址 2 迎澤西大街 79號 Zip(郵政編碼 ) 030024 家庭電話 000000 辦公室電話 000000 手機(jī) 12345678912 Email 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 22 預(yù)期結(jié)果:使用測試數(shù)據(jù)能夠完成用戶的注冊模塊,并且跳入商品顯示頁面。 ,進(jìn)行測試,并記錄測試結(jié)果 輸入的數(shù)據(jù)如圖 : 圖 注冊信息數(shù)據(jù)圖 如果注冊成功系統(tǒng)會提示您注冊成功,并需要輸入已注冊的用戶名和密碼 ,登陸成功后跳入商品展示,效果如圖 所示 : 圖 系統(tǒng)首頁 如果用戶名已經(jīng)存在則 ajax 驗(yàn)證會提示用戶該用戶名已經(jīng)被注冊,用戶必須重新選擇用戶名。根據(jù)返回的對象是否為 null 返回不同的語句到瀏覽器端,這就是 ajax 的異步驗(yàn)證。然后, Action 的 result 會把頁面跳到系統(tǒng)主頁面去。 表 購買體育用品功能測試數(shù) 據(jù)表 購買的體育用品名 數(shù)量 紅雙喜乒乓球 3 李寧羽毛球 1 預(yù)期結(jié)果:如果成功購買則共需花費(fèi) 1640 元,用戶需要先加入購物車才能提交訂單。 ,進(jìn)行測試,并記錄測試結(jié)果 用戶可以在系統(tǒng)首頁的商品展 示上,選擇自己需要購買的產(chǎn)品,購買測試數(shù)據(jù)中的商品后可以在購物車上查看,如圖 所示。 當(dāng)用戶點(diǎn)擊購買商品時(shí)會往用戶所對應(yīng)的購物車上添加一條記錄。 三、購物車管理 ,并預(yù)測結(jié)果 , 如表 所示 測試數(shù)據(jù)如表 。 ,進(jìn)行測試,并記錄測試結(jié)果 用戶可以修改購物車中購買的商品數(shù)量,刪除購買的商品。一條記錄代表著一個(gè) product對象 ,一個(gè)購物車又由多個(gè) product構(gòu)成。 修改后的購物車如圖 。 四、訂單管理 ,并記錄測試結(jié)果 在測試 2的購物車管理中我們修改并確定我們最終要購買的商品,此時(shí)可以點(diǎn)擊提交訂單按鈕了,生成的訂單信息如圖 所示??梢孕薷娜珉娫?、地址信息,確??蛻裟苁盏截浳铮爝f公司能正確地發(fā)送貨物, 還可以選擇自己的付款方式。值得注意的是訂單表中有一個(gè)字段名為“ pending ” ,代表此訂單是否支付過,默認(rèn)值為 true。 從測試結(jié)果圖中可以看出只要輸入的數(shù)據(jù)合理就能提交訂單,提交訂單時(shí)需要選擇自己的付款方式。 五、管理員庫存管理 庫存管理主要有添加體育用品和修改體育用品 信息,修改庫存三個(gè)模塊。 表 添加體育用品數(shù)據(jù)表 體育用品名 耐克運(yùn)動衣 單價(jià) 368 類型 運(yùn)動服 簡介 Nike 官方商城是 Nike 中國唯一官方購物網(wǎng)站 ,擁有最全最新的 Nike 運(yùn)動商品 ,品質(zhì)保證 ,免配送費(fèi) ,7 天無理由退換 ,便捷又放心 ,JUST DO IT ,進(jìn)行測試,并記錄測試結(jié)果 北京郵電大學(xué)畢業(yè)設(shè)計(jì) 25 輸入的數(shù)據(jù)如圖 所示 圖 系統(tǒng)添加體育用品圖 如圖 所示 ,預(yù)期準(zhǔn)備添加的體育用品已經(jīng)添加到了數(shù)據(jù)庫中,且被及時(shí)地同步顯示在頁面上。認(rèn)真分析了系統(tǒng)的測試結(jié)果和產(chǎn)生原因,對個(gè)別的用戶可能出現(xiàn)非法操作也進(jìn)行了演示,盡量讓系統(tǒng)的功能特性反映出來。相對來講,后臺的管理還是比較簡單的,僅僅圍繞著訂單與用戶展開。實(shí)現(xiàn)時(shí)主要用到了 MVC模型。用 Java語言 開發(fā) ,程序 也具有 很強(qiáng)的可移植性。信息查詢的添加可以方便用戶快速找到自己感興趣的商品
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1