劉瑾
摘要:該系統(tǒng)基于B/S架構,采用Spring+SpringMVC+Mybatis框架。購物平臺主要實現(xiàn)用戶登錄注冊、查詢商品信息、商品詳細信息介紹、加入購物車、下訂單以及支付等功能。后臺管理員主要職責是用戶管理,商品管理,訂單管理等。該系統(tǒng)性能穩(wěn)定、易擴展,易維護。
關鍵詞:Spring;SpringMVC;Mybatis;購物平臺
中圖分類號:TP393 文獻標識碼:A
1背景
隨著互聯(lián)網(wǎng)的迅速普及以及電子商務的飛速發(fā)展,網(wǎng)上購物已經(jīng)成為很多消費者,尤其是年輕一代消費群體所接受和青睞的消費模式。本網(wǎng)絡購物平臺采用主流的MVC模式和Spring+SpringMVC+Mybatis框架,SSM的配置越來越輕量級,注解開發(fā)發(fā)揮到極致,ORM實現(xiàn)更加靈活,且SQL優(yōu)化更簡便。三層架構使顯示模塊與功能模塊分離,提高了程序的可維護性、可移植性、可擴展性與可重用性,具備了良好的容錯能力和負載平衡能力。
2系統(tǒng)的分析和設計
2.1開發(fā)技術分析
本系統(tǒng)是基于MVC模式下的多層結構應用系統(tǒng)。主要使用Spring+SpringMVC+Mybatis框架開發(fā)。
MVC是模型(model)-視圖(view)-控制器(controller)的縮寫,用一種業(yè)務邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務邏輯。
Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。其大小與開銷是輕量的。Spring通過控制反轉(IoC)的技術促進了松耦合。Spring提供了面向切面編程的豐富支持,允許通過分離應用的業(yè)務邏輯與系統(tǒng)級服務進行內聚性的開發(fā)。Spring包含并管理應用對象的配置和生命周期,可以配置每個bean如何被創(chuàng)建。Spring可以將簡單的組件配置組合成為復雜的應用。
MyBatis是一款優(yōu)秀的持久層框架,它支持定制化SQL、存儲過程以及高級映射。MyBatis避免了幾乎所有的JDBC代碼和手動設置參數(shù)以及獲取結果集。MyBatis可以使用簡單的XML或注解來配置和映射原生信息,將接口和Java的POJOs映射成數(shù)據(jù)庫中的記錄。
2.2需求分析
網(wǎng)上購物平臺主要由前臺買家購物模塊和后臺管理員管理模塊組成。買家注冊后可以瀏覽商品,當看到心儀的商品后可以點擊商品進入詳細頁面,在商品詳細頁面里可以添加商品到購物車,或者直接購買商品。訂單提交完成后,用戶可以查看訂單,取消訂單,付款。后臺管理員登錄后,可以對商品信息進行增、刪、改、查操作,也可以查看訂單信息和用戶信息,對訂單信息進行狀態(tài)修改,設置網(wǎng)站前臺的廣告內容。管理員是不需要注冊的,其賬號是系統(tǒng)設置的。
系統(tǒng)具體功能如下:
1)用戶注冊、登錄;
2)瀏覽、搜索商品,查看商品詳細信息;
3)加入購物車;
4)提交訂單、取消訂單、付款;
5)用戶評價;
6)管理員對用戶信息、訂單信息進行查看和修改;
7)管理員對商品信息進行增加、刪除、修改、查詢等管理。
2.3數(shù)據(jù)庫設計
數(shù)據(jù)庫是軟件開發(fā)系統(tǒng)的基礎及核心,設計的質量直接關系到軟件系統(tǒng)開發(fā)的成敗。本系統(tǒng)選擇mysql數(shù)據(jù)庫,數(shù)據(jù)庫主要由7張表組成,分別是:
1)用戶表(user):該表用于存儲用戶信息,包括用戶id、用戶名、登錄密碼、電話、郵箱、注冊時間、使用狀態(tài)、賬戶余額、地址等字段。
2)商品分類表(category):該表用于存放商品的分類信息,包括類目id、類目名稱、父類id等字段。
3)商品表(product):該表用于存放商品的基本信息,包括商品id、商品名稱、類別id、商品狀態(tài)、數(shù)量、單價等字段。
4)訂單表(order):該表用于存放每個用戶的訂單信息,包括訂單id、用戶id、訂單明細id,金額、創(chuàng)建時間,付款時間、發(fā)貨時間、狀態(tài)、評價、收貨人姓名、收貨人電話、收貨人地址、物流編號等字段。
5)訂單明細表(item):該表用于存放訂單的商品明細,包括訂單明細id、訂單id、商品id、數(shù)量等字段。
6)支付表(payment):該表用于存放訂單支付的詳細信息,包括支付單號,訂單號、日期、用戶id、交易狀態(tài)、支付類型等字段。
7)廣告表(ad):該表用于存放網(wǎng)站前臺的廣告鏈接和圖片鏈接,包括id、標題、內容、鏈接、圖片、狀態(tài)、排序等字段。
3系統(tǒng)實現(xiàn)
3.1用戶注冊登錄
在用戶注冊頁面,用戶輸入用戶名和密碼,瀏覽器會通過Ajax將用戶名和密碼傳到后臺控制器,后臺調用userAdd方法,在數(shù)據(jù)庫中查找該用戶名是否已經(jīng)被注冊。如果已存在,提示注冊失敗;如果不存在,則數(shù)據(jù)被保存到數(shù)據(jù)庫中。用戶登錄時,后臺調用Controller中對應的方法在數(shù)據(jù)庫中進行數(shù)據(jù)的查找,如果用戶名、密碼一致則登錄成功,否則登錄失敗。
3.2商品搜索
在商品搜索中,引入了PageHelper包,代碼通過findPage方法,把查詢條件封裝成TbBrand類,這樣減少了代碼的重復率,大大增加了開發(fā)效率。TbBrandExample是PageHelper提供的查詢條件類,原理就是根據(jù)設置的屬性去拼接SQL,達到條件查詢的目的。
3.3加入購物車
用戶在選擇加入購物車時會出現(xiàn)兩種情況,一種是已經(jīng)登錄的情況,另一種是沒有登錄的情況。如果用戶沒有登錄,系統(tǒng)進入登錄頁面提示登錄。如果用戶已登錄,系統(tǒng)判斷cookie里是否存在購物車數(shù)據(jù),如果有就拿出來放到redis里。
3.4管理員管理
管理員的賬號設置并沒有選擇在數(shù)據(jù)庫里,而是使用SpringSecurity設置在XML里。管理員對數(shù)據(jù)的管理主要實現(xiàn)了數(shù)據(jù)的增、刪、改、查和分頁查詢,增刪改查是通過Mybatis的逆向工程生成mapper和SQL,通過創(chuàng)建criteria對象進行條件查詢;另外后端分頁采用PageHelper插件,只需要前臺傳來pageNum和PageSize參數(shù)即可快速實現(xiàn)分頁,簡化了開發(fā)步驟。
4結束語
本文主要針對網(wǎng)絡購物平臺的開發(fā)進行了技術和需求的分析、結構和數(shù)據(jù)庫的設計,介紹了具體實現(xiàn)過程。通過測試,該系統(tǒng)性能穩(wěn)定、可靠,具有較強的可擴展性。