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