• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于SSH框架的B2C網(wǎng)上書店系統(tǒng)

      2014-05-09 05:59:58
      關(guān)鍵詞:開店數(shù)據(jù)模型數(shù)據(jù)流

      張 蕾

      (河西學(xué)院信息技術(shù)中心 甘肅 734000)

      0 引言

      網(wǎng)上書店系統(tǒng)目前主要是以B2C的方式進(jìn)行經(jīng)營,向讀者出售書籍。本文系統(tǒng)的開發(fā)理念更貼近于消費者,引入C2C的經(jīng)營理念,增加讀者開店的功能,讀者可以將自己不需要的書本或音像資料售給需要它的人,從而吸引更多的消費者,增加用戶粘性,更為書店市場打開一個新的渠道。本系統(tǒng)面向以學(xué)生為主的用戶群體,為他們提供C2C交易的平臺。賣者發(fā)布出售商品的信息,買者也可發(fā)布求購信息。本系統(tǒng)的用戶分為普通用戶、個人店鋪用戶和管理員。通過Struts+Spring+Hibernate架構(gòu)開發(fā)。

      1 系統(tǒng)分析

      1.1 用例圖

      系統(tǒng)中主要的角色包括未注冊用戶、已注冊用戶和管理員。

      未注冊用戶:該角色可以對系統(tǒng)進(jìn)行最基本的查看、搜索商品操作,如果該角色想進(jìn)行更多操作,則需進(jìn)行用戶注冊操作,成為該交易平臺的會員之一。

      已注冊用戶:該角色在未開店之前,角色功能仍是買家,可以進(jìn)行查看/修改個人資料,查看/搜索商品,查看/修改個人收藏夾,查看訂單,購物,留言等操作。而在注冊開店之后,除去買家角色,還增加了個賣家角色,可以上傳自己想賣出的商品,對自己的商品信息進(jìn)行增、刪、改、查等操作,還可以查看有無已購買但未發(fā)貨的商品,并進(jìn)行發(fā)貨確認(rèn)。

      管理員:前2個角色主要體現(xiàn)在前臺,而該角色是在后臺中運行,系統(tǒng)管理員可以對下層管理員進(jìn)行注冊和權(quán)限操作,管理員登陸后臺界面后,可以對應(yīng)自己的權(quán)限進(jìn)行操作,主要起到監(jiān)控、管理和中介的作用。用例圖如下:

      圖1 用例圖

      1.2 頂層數(shù)據(jù)流圖

      平臺主要有2個外部實體:用戶和管理員。這兩個實體是存在于軟件本身系統(tǒng)之外的人員,指出了數(shù)據(jù)信息所需要的發(fā)源地或系統(tǒng)所產(chǎn)生的數(shù)據(jù)的歸屬地。而加工之地就是業(yè)務(wù)中心,描述了輸入數(shù)據(jù)流通過業(yè)務(wù)中心的加工處理后變成了輸出數(shù)據(jù)。本系統(tǒng)的具體頂層數(shù)據(jù)流情況如圖

      圖2 頂層數(shù)據(jù)流

      2 系統(tǒng)設(shè)計

      2.1 數(shù)據(jù)模型設(shè)計

      本系統(tǒng)中所涉及的可以抽象出來的實體模型有用戶(user)、管理員(admin)、商店(shop)、商品(merchandise)、商品類別(kind)、留言(message)、收藏夾(favourite)、訂單(orders)、選購記錄(cartselectedmer)、購物車(cart)、賬戶(account)、公告(affiche),具體的關(guān)系數(shù)據(jù)模型圖如圖。

      圖3 關(guān)系數(shù)據(jù)模型圖

      2.2 店鋪商品管理設(shè)計

      用戶在注冊開店之后,除去買家角色,還增加了個賣家角色,可以上傳自己想賣出的商品,對自己的商品信息進(jìn)行增、刪、改、查等操作。

      增、刪、改和查四個操作是管理系統(tǒng)中最基本的功能。下面以增加商品為例,分析這個操作在系統(tǒng)中是如何設(shè)計和實現(xiàn)的。

      視圖層上,增加商品操作在JSP頁面addMerchandise.jsp中實現(xiàn),當(dāng)?shù)赇佊脩籼町呄胩砑拥纳唐返男畔⒉⑻峤缓?,Struts把用戶輸入的表單數(shù)據(jù)(包括商品的種類、名稱、價格、存貨數(shù)量和描述等商品信息)保存在merchandiseForm Bean中,通過它來進(jìn)行視圖和控制器之間表單數(shù)據(jù)的傳遞。通過在struts-config.xml配置文件中的這段代碼,可以看出merchandiseForm在經(jīng)過validate后把表單數(shù)據(jù)傳送給了Action類MerchandiseAction。

      attribute="merchandiseForm" parameter="method"path="/add"

      type="com.moon.struts.action.MerchandiseAcion" />

      然后,該Action類會調(diào)用MerService的實現(xiàn)類中的addMer()方法來添加商品,saveImage()方法來保存用戶上傳的圖片。保存圖片的代碼如下:

      //MerchandiseAction類中

      FormFile ff = f.getPic();//定義圖片文件,并賦值

      boolean res = MerService.saveImage(uploadPath,ff);//保存圖片到磁盤

      //MerServiceImpl類中,保存圖片方法

      //參數(shù):保存圖片的物理路徑,封裝圖片的文件

      public boolean saveImage(String path,F(xiàn)ormFile f){

      boolean result = false; //定義返回類型,并賦值為false;

      try { //定義輸出流對象,并實例化

      OutputStream out = new FileOutputStream(new File(path));

      byte[]b = f.getFileData();//獲取圖片文件的字節(jié)數(shù);

      out.write(b); //向磁盤寫入圖片

      out.close(); //關(guān)閉輸出流

      result = true;

      } catch(Exception e){

      result = false; // TODO Auto-generated catch block

      e.printStackTrace();

      }

      return result;

      }

      這里的上傳文件用到了struts技術(shù),首先在jsp文件中使用標(biāo)記生成文件上傳控件。由于Struts針對上傳文件進(jìn)行了相應(yīng)的處理,所以,在MerchandiseAction中對上傳文件的訪問也就變得異常簡單了,直接通過MerchandiseForm中所定義的Formfile對象就可以操作用戶所上傳的文件。

      通過上面的代碼實現(xiàn)可以看到,通過FormFile對象可以得到用戶上傳文件/圖片的字節(jié)數(shù)。此外,還可以得到文件的名稱、類型,如果是一般文件,還能得到文件的內(nèi)容信息。在本系統(tǒng)實現(xiàn)中,將用戶上傳的文件保存到指定的磁盤上。

      因為系統(tǒng)統(tǒng)一使用了struts+spring+hibernate框架,所以這里在編寫代碼時的原則仍不變,即利用Spring框架,方便地把執(zhí)行業(yè)務(wù)邏輯(這里是增加商品)、調(diào)用持久層方法、從表示層獲得用戶請求、進(jìn)行數(shù)據(jù)庫事務(wù)處理和異常處理這幾個任務(wù)通過Bean管理器進(jìn)行管理,使系統(tǒng)可以在最大程度上降低程序的復(fù)雜度和耦合度。Spring通過反轉(zhuǎn)控制(IoC)或者設(shè)置依賴注入(Dependency Injection)將配置在擴展的XML文件中的這些對象聯(lián)系起來,這樣可以自由地創(chuàng)建各種對象以及降低系統(tǒng)的耦合度。

      圖4 時序圖

      MerchandiseAction類調(diào)用了業(yè)務(wù)邏輯接口的實現(xiàn)類中的方法后,MerServiceImpl實現(xiàn)類分別調(diào)用了MerchandiseDao接口、ShopDao接口和UserDao接口來進(jìn)行實際的添加商品操作。具體的操作是首先由實現(xiàn)后兩個接口的Support類取得添加商品的用戶帳號和商店id信息,然后把這2個參數(shù)傳給MerchandiseDao接口實現(xiàn)類,通過sql語句和Merchandise數(shù)據(jù)表進(jìn)行實際添加操作。如果保存圖片成功且添加商品成功,則會給出成功提示,否則就彈出對話框告知用戶添加失敗,但是不論失敗還是成功,事務(wù)完成后都仍跳轉(zhuǎn)到添加商品頁面。具體時序圖如圖4所示:

      [1][美]Xin Chen 著,溫昱,靳向陽譯,應(yīng)用框架的設(shè)計與實現(xiàn).電子工業(yè)出版社.2006.

      [2]陳天河 等著,Struts,Hibernate,Spring集成開發(fā)寶典.電子工業(yè)出版社.2007.

      [3]陽雪峰,陳文臣著,Java Web 2.0:基于Spring、Struts、Hibernate輕量級架構(gòu)開發(fā).機械工業(yè)出版社.2009.

      [4]劉乃麗.精通Java EE項目案例.人民郵電出版社.2008.

      猜你喜歡
      開店數(shù)據(jù)模型數(shù)據(jù)流
      汽車維修數(shù)據(jù)流基礎(chǔ)(下)
      蜘蛛開店
      面板數(shù)據(jù)模型截面相關(guān)檢驗方法綜述
      一種提高TCP與UDP數(shù)據(jù)流公平性的擁塞控制機制
      加熱爐爐內(nèi)跟蹤數(shù)據(jù)模型優(yōu)化
      電子測試(2017年12期)2017-12-18 06:35:36
      小兔開店
      讀寫算(上)(2016年3期)2016-11-07 07:19:30
      在家“開店”記
      小主人報(2016年2期)2016-02-28 20:46:47
      基于數(shù)據(jù)流聚類的多目標(biāo)跟蹤算法
      北醫(yī)三院 數(shù)據(jù)流疏通就診量
      面向集成管理的出版原圖數(shù)據(jù)模型
      葵青区| 云和县| 德阳市| 郓城县| 汝阳县| 习水县| 曲松县| 阜新| 藁城市| 勐海县| 涟源市| 临安市| 东海县| 闸北区| 潼关县| 康乐县| 普宁市| 桃园市| 北流市| 拜泉县| 新营市| 商洛市| 高州市| 汕尾市| 韶关市| 开化县| 龙陵县| 东宁县| 华蓥市| 于都县| 甘洛县| 波密县| 南召县| 柏乡县| 应城市| 昌平区| 廉江市| 名山县| 河间市| 平阴县| 会东县|