文/黃琳 林國欽
由于生活水平的提高,養(yǎng)寵物也成為很多人的一種娛樂消遣的方式,寵物在人類生活中扮演著越來越重要的角色,無形中推動寵物行業(yè)的飛速發(fā)展。伴隨著全球信息化的發(fā)展,寵物實體店經(jīng)受著一輪又一輪的沖擊。首先,實體店投入成本高,如裝修、采購、人員雇傭、門面選址、租金等都要花一大筆經(jīng)費;其次,實體店有固定的經(jīng)營場所,受眾范圍較小;再者,實體店推廣方式單一。最后,受信息化銷售產(chǎn)業(yè)的影響,實體店還要面臨著客戶的流失。這時,寵物店的信息化管理和銷售系統(tǒng)呼之欲出,因此,構(gòu)建一個功能強大、可網(wǎng)上進行管理、銷售、推廣的寵物店管理系統(tǒng)勢在必行。因此本文介紹了一種寵物店管理系統(tǒng)的設(shè)計方案,為寵物店的管理和發(fā)展提供強有力支持。
SSM框架,是spring + Spring MVC + MyBatis的縮寫,是目前比較主流的Java EE企業(yè)級框架,適用于搭建各種大型的企業(yè)級應(yīng)用系統(tǒng)。
Spring是一個開源框架,它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。而且Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益。 簡單來說,Spring是一個輕量級的控制反轉(zhuǎn)和面向切面的容器框架,它可以兼容許多框架共同完成功能,如SSM、SSH(Spring、Struts、Hibernate)。
Spring MVC分離了控制器、模型對象、分派器以及處理程序?qū)ο蟮慕巧@種分離讓它們更容易進行定制。它可用于處理用戶請求,當(dāng)接收到一個請求是調(diào)用相應(yīng)的controller方法,最后把輸出結(jié)果返回到UI層,展示給用戶。其主要的責(zé)任就是接收請求和輸出結(jié)果,直接與用戶打交道。
MyBatis 是支持普通 SQL 查詢,存儲過程和高級映射的優(yōu)秀持久層框架。 MyBatis 消除了幾乎所有的 JDBC 代碼和參數(shù)的手工設(shè)置以及對結(jié)果集的檢索。 MyBatis 可以使用簡單的XML 或注解用于配置和原始映射,將接口和 Java 的 POJO( Plain Old Java Objects,普通的Java 對象)映射成數(shù)據(jù)庫中的記錄。Mybatis主要管理數(shù)據(jù)庫訪問,對SQL語句控制比較自由,能較好提高數(shù)據(jù)庫訪問效率。Mybatis以XML文件方式組織管理SQL,而且書寫方便。
三大框架利用Spring容器框架的特性,將Mybatis和SpringMVC通過XML文件的形式整合,形成SSM框架。
對寵物店進行調(diào)研,該系統(tǒng)要實現(xiàn)的功能有:寵物的類別管理、寵物的上架、維護、購買和下架,貓糧狗糧等寵物相關(guān)產(chǎn)品的管理和維護、流浪貓狗收養(yǎng)和認(rèn)領(lǐng)、銷售情況的日報周報月報等。
對寵物店需求進行分析、整合,可設(shè)定若干個功能模塊:分別是用戶管理、商品管理、流浪寵物公益、寵物養(yǎng)護消息和統(tǒng)計功能等模塊。其中用戶管理模塊中有注冊、登陸和個人信息維護等功能。商品管理功能包括類別管理,商品信息瀏覽、查詢、增加、修改、刪除、購買和下架等,購物車管理包括加入、數(shù)量增減、刪除等。流浪寵物公益模塊包括收養(yǎng)登記、領(lǐng)養(yǎng)或認(rèn)領(lǐng)登記和公示等。用戶交流區(qū)平臺功能劃分如圖1所示。

圖1:系統(tǒng)功能

圖2:SSM架構(gòu)圖
考慮系統(tǒng)功能的特點、可定制和可拓展性等,可將系統(tǒng)劃分為4層:表現(xiàn)層,業(yè)務(wù)層和持久層、視圖層等。
表現(xiàn) 層(springMVC):Controller層,它負責(zé)具體的業(yè)務(wù)模塊流程的控制,表現(xiàn)層通過要調(diào)用Service層的接口來控制業(yè)務(wù)流程,控制的配置也在Spring配置文件里面。業(yè)務(wù)層(Spring):Service層,負責(zé)業(yè)務(wù)模塊的邏輯應(yīng)用設(shè)計。首先設(shè)計其接口,然后再實現(xiàn)它的實現(xiàn)類。通過對Spring配置文件中配置其實現(xiàn)的關(guān)聯(lián),完成此步工作,就可以通過調(diào)用Service的接口來進行業(yè)務(wù)處理。最后通過調(diào)用DAO層已定義的接口,去實現(xiàn)Service具體的 實現(xiàn)類。持久層(Mybatis):Dao層。Dao層:負責(zé)與數(shù)據(jù)庫進行交互設(shè)計,用來處理數(shù)據(jù)的持久化工作。DAO層的設(shè)計首先是設(shè)計DAO的接口,然后在Spring的配置文件中定義此接口的實現(xiàn)類,就可在其他模塊中調(diào)用此接口來進行數(shù)據(jù)業(yè)務(wù)的處理,而不用關(guān)心接口的具體實現(xiàn)類是哪個類,這里用到的就是反射機制, DAO層的數(shù)據(jù)源配置,以及有關(guān)數(shù)據(jù)庫連接的參數(shù)都在Spring的配置文件中進行配置。視圖層:View層,負責(zé)前臺Jsp頁面的展示。此層需要與Controller層結(jié)合起來開發(fā)。

圖3:用戶注冊界面

圖4:用戶注冊數(shù)據(jù)處理圖
Service層是建立在DAO層和Controller層之間,因而Service層應(yīng)該既調(diào)用DAO層的接口,又要提供接口給Controller層的類來進行調(diào)用。每個模型都有一個Service接口,每個接口分別封裝各自的業(yè)務(wù)處理方法。Controller層與View層的進行了分離,這些都體現(xiàn)了MVC框架的特性,即結(jié)構(gòu)清晰,耦合度低。系統(tǒng)采用這樣的構(gòu)架能提高移植性和拓展性。該方案的架構(gòu)圖如圖2所示。
根據(jù)系統(tǒng)需求分析和模塊功能對數(shù)據(jù)庫設(shè)計分析,共設(shè)計8張數(shù)據(jù)庫實體表,分別為:用戶信息表(customer)、類別表(typeshop)、商品信息表(goods)、購物車信息表(shopping)、購物記錄表(custshopping)、流浪寵物接受登記信息表(receive)、流浪寵物領(lǐng)養(yǎng)/認(rèn)領(lǐng)登記信息表(adopt)、流浪寵物接收公示信息表(publicity)。
本系統(tǒng)使用Eclipse、PL/SQL developer等開發(fā)軟件, Web服務(wù)器采用Tomcat,數(shù)據(jù)庫為Oracle來實現(xiàn)。下面以用戶注冊功能為例作詳細說明。
用戶注冊需輸入郵箱號、密碼、重復(fù)密碼、寄件地址信息,此外還有隱藏的用戶編號、身份狀態(tài)兩個輸入項。郵箱需要驗證格式,密碼不得少于六位且與寵物密碼要一致。用戶注冊見圖3。
將數(shù)據(jù)插入數(shù)據(jù)庫并返回一個customer(用戶)對象,包含用戶編號、郵箱號、密碼、身份狀態(tài)、寄件地址信息。用戶注冊功能的action代碼如下:


用戶注冊數(shù)據(jù)處理圖如圖4。
該寵物店管理系統(tǒng)從需求到設(shè)計都充分考慮了寵物店網(wǎng)上銷售和推廣等需求,基于Java web、采用SSM框架,充分考慮了功能的個性化和定制,程序的移植性和拓展性,從需求和性能都能滿足不同寵物店的需要,達到優(yōu)化營銷流程,能為廣大寵物店家和寵物主們提供更好更優(yōu)的服務(wù)。