王 楚,陳 蜜,鐘若飛
(首都師范大學資源環境與旅游學院,北京 100048)
2022年1月,中央一號文件明確指出要大力推進數字鄉村建設,推進智慧農業發展,促進信息技術與農機農藝融合應用,以數字技術賦能鄉村公共服務,著眼解決實際問題,拓展農業農村大數據應用場景。目前研究人員已開發出諸多農村系統,張智勇[1]通過對農村電子政務系統及其審批系統進行研究,設計并實現了一個行政審批服務系統,提高了行政審批效率。花玉萍[2]從農村商業銀行信貸管理的角度,設計并實現了一個可以完成客戶管理和資產管理等功能的系統。此外,眾多學者還針對農村圖書管理[3,4]、農業咨詢[5,6]、農村土地管理[7-9]、農村電子商務[10,11]和農村留守兒童[12]等不同角度實現了相應的系統。但是大多數學者針對全國農村范圍進行調研并設計系統,而真正具有地方特色的農村便民系統較少。
牛山村位于石家莊市鹿泉區,西南傍山,東接平原,屬于太行山東路川口處較典型的半山區村莊,周邊鄰村眾多。通過調研發現,在村民的日常生活和村委會事務處理過程中有很多需要改善的方面,例如村內信息傳遞仍然采用傳統的大喇叭廣播,不利于居住遠、家里隔音不好或在外務工的村民及時獲取村內信息;村民家中書籍、農用器具等物品閑置率較高,資源未能合理利用;在農產品等商品銷售的過程中,多采用集市、實體店銷售形式,亟需一種更加方便快捷的銷售形式;在村內走街串巷賣東西的人群需要合理生產、銷售的問題;村委會亟需高效管理村內事務等問題。因為農村的眾多事務還在使用比較落后的處理方式,效率較低,而互聯網的發展是改變傳統處理方式的契機,這讓村民擁有一個便民且具有本村特色的系統成為可能。
本研究通過分析牛山村中出現的問題,嘗試從“互聯網+”農村的角度,通過需求分析、系統設計、系統實現、系統測試的過程,結合SSH2(Struts 2+Spring+Hibernate)框架技術和MVC 模式來設計并實現一個綜合性的區域農村便民服務系統。相對于傳統的農村網站而言,牛山村便民服務系統立足于解決實際問題,突顯當地特色,更貼近村民的日常生活。
SSH2 為Struts 2+Spring+Hibernate 的一個集成框架,是較流行的一種應用程序開源框架[13]。Struts 2是以WebWork 的設計思想為核心,吸收Struts 優點而形成的[14,15],在MVC 設計模式中,Struts 2 作為控制器(Controller)來建立模型與視圖的數據交互,優化了MVC 開發模式,能夠從整體上減輕Web 應用的負擔。Spring 框架是一個分層的Java SE∕EE 一站式輕量級開源框架,主要負責業務層功能的實現,方便解耦,簡化開發過程。Hibernate 框架主要負責JDBC的封裝,將Java 對象與數據庫表之間建立自動映射關系,支持包括SQL Server、MySQL、Oracle 在內的多種數據庫,通過提供一系列數據訪問接口,可以方便地使用面向對象思想對數據庫進行操作。圖1 是SSH2 的全整合架構。

圖1 SSH2 全整合架構
MVC 3 個模塊各自的職能及相互關系如圖2 所示。MVC 是一種通用的Web 軟件設計模式,能夠將應用程序的數據處理、數據展示和流程控制分開,增加程序的可擴展性、維護性、可移植性以及可重復利用等特性[16]。MVC 3 個字母分別是Model(模型)、View(視圖)、Control(控制器)的縮寫[17]。

圖2 MVC 設計模式
此外,本系統采用Eclipse 作為主要開發工具,使用SQL Server 2008 數據庫管理系統,以JAVA 作為主要開發語言,JAVAEE 作為體系架構,同時結合HTML5、CSS、Ajax 等常用的網站開發技術對系統進行設計和開發。
系統的使用對象包括村民、商家、管理員。
1)村民需求。村民是指在本村長期居住或暫住的用戶群體。主要需求有,查看大喇叭廣播中的信息,方便及時獲得村內的動態;可以管理個人發布的物品互助信息,例如書籍、農用器具等;可以預約滯銷或普通的商品并下訂單,一方面方便商家及時生產和進貨,另一方面為滯銷農產品打開網上銷售渠道;查看便民電話,便于應對生活中的突發情況;對平臺、村委會、其他村民等留言;對個人信息進行管理;查看國家政策、會議和知識科普類的文章;瀏覽村莊信息;黨員可以查看黨務相關信息。
2)商家需求。商家是指村民中有商品需要銷售的用戶群體。主要需求有,管理個人網上店鋪的商品和訂單,前提是需要進行商家認證。
3)管理員需求。管理員是指對系統進行管理的人員。主要需求有,管理系統中出現的各種信息,例如村民的留言信息、大喇叭中廣播的信息、商家的商品信息、村民和商家個人信息、商品類型信息、文章信息、村民發布的物品互助信息、村莊信息等。
此外,為了方便網站的管理,系統所有用戶需要有注冊賬號以及登錄、退出系統的功能。
根據用戶需求將牛山村便民服務系統分為2 個子系統,即前臺用戶系統和后臺管理系統。前臺用戶系統主要供商家和村民使用,模塊設計如圖3 所示。

圖3 前臺用戶系統主要功能模塊
在前臺用戶系統中,村民可以在注冊、登錄系統后進行查看。商家可以在注冊商家賬號后登錄前臺系統,對店鋪的商品和訂單信息進行相應的操作。
后臺管理系統只能由管理員使用,模塊設計如圖4 所示。管理員在登錄系統之后可以對用戶信息、村莊信息等進行管理和維護,根據每個模塊不同的特點設置不同的功能,具體如表1 所示。

表1 后臺管理系統模塊功能說明

圖4 后臺管理系統主要功能模塊
數據庫設計采用了概念結構設計、邏輯結構設計和數據庫表設計方法,并使用數據庫管理系統SQL Server2008 實現表的創建與管理。概念模型設計是將得到的牛山村村民的需求抽象為信息結構,并使用E-R 圖來描述。邏輯結構設計是將E-R 圖轉換為相應的關系模型。數據庫表設計則是根據關系模型將具體的表在SQL Server2008中設計并實現。
通過數據庫設計最終得到了10 張表,分別為前臺用戶表、管理員表、大喇叭信息表、村莊信息表、留言表、訂單表,商品表、商品類型表、文章表、互助表。系統的E-R 模型如圖5 所示。

圖5 牛山村便民服務系統E-R 模型
經過需求分析和系統設計后,基于MVC 模式和SSH2 框架對系統進行代碼實現。當用戶在頁面觸發相應的按鈕后,系統的Struts 2 核心控制器就會接收到請求并將其轉發給相應的Action 來處理,Action會調用相應的Service 層,Service 層調用相應的Dao層來操作SQL Server2008 數據庫管理系統中相應的表,之后再依次返回結果。代碼調用的流程如圖6所示。

圖6 代碼調用流程
本研究選擇前臺用戶系統的村莊互助模塊、商家商品管理模塊,以后臺管理系統的文章管理模塊為代表來詳細敘述各個功能的實現過程及頁面展示。
為了實現系統前臺村莊互助模塊的功能,需要利用Spring 框架的IOC 容器進行類間依賴關系的管理。在applicationContext.xml 中進行配置的部分代碼如下。


村民在村莊互助館可以進行書籍、農用器具等分享互助,可以上傳互助物品以及對分享的用戶進行留言。如圖7 所示,村莊互助館頁面可以通過點擊“書籍互助”“農用器具互助”“其他”等按鈕來切換不同的互助頁面,也可以點擊“我要上傳”按鈕切換到上傳互助物品信息頁面。在不同互助類型頁面的左側框展示各自類型的介紹,右側的每種互助物品都有對應的圖片、互助時間、簡介和目前狀態。目前狀態有“已借走”和“可分享”2 種形式。通過點擊互助的物品展示框可以跳轉到用戶留言處。

圖7 村莊互助館首頁
如圖8 所示,在用戶留言處可以通過給分享者留言獲得物品的臨時使用權。

圖8 村莊互助館留言頁面
文章管理功能對應ArticalService 部分代碼如下所示。

如圖9 所示,在文章管理主頁面可以進行文章查看、查詢、添加、刪除、修改等操作。在上側搜索欄輸入類型關鍵字可以進行同種類型文章查詢,查詢結果按照時間順序排列。點擊“如果需要添加文章,請單擊此處!”可以跳轉到文章添加頁面進行文章信息添加。在相應的文章后點擊“修改”,就可以進入修改頁面進行修改,也可以點擊“刪除”和“批量刪除”對文章信息進行刪除操作。

圖9 文章管理頁面
如圖10 所示的添加文章頁面,通過輸入文章主題、內容和類別即可發表文章。文章類型設置3 種,即會議、政策和知識科普,分別對應系統前臺的會議紀要、政策簡讀和知識科普內容板塊。

圖10 添加文章頁面
如圖11 所示,在刪除或批量刪除文章時,系統會提示用戶“你確定刪除這些文章嗎”,點擊“確定”按鈕即可刪除。

圖11 刪除文章提示頁面
商家可以在商品管理主頁面對商品和訂單進行管理。以商品管理為例,商家可以進行自家商品的查看、查詢、添加、刪除、修改等操作,如圖12 所示。通過點擊“修改”可以跳轉到商品信息修改頁面,如圖13 所示,商家可以對商品類型、商品名字、商品價格、商品數量、商品照片進行修改,商品號、商家地址和商家電話為不可修改項。

圖12 商家商品管理頁面

圖13 商家商品修改頁面
商品管理功能的CommodityDao繼承了BaseDao,在BaseDao 中使用了SessionFactory 來初始化Hibernate,充當數據存儲源的代理,并負責創建Session 對象。BaseDao 部分代碼如下所示。

根據系統中各個模塊的特點采用了不同的測試方法。以管理員登錄等價類測試和管理員大喇叭管理功能測試為例,介紹系統測試過程。
1)輸入數據要求。管理員需要輸入用戶名和密碼進行登錄。 用戶名要求為3~12 位,只能包含數字和字母。密碼要求為6~12 位的任何字符。
2)等價類劃分。管理員登錄等價類劃分見表2。

表2 管理員登錄等價類劃分
該等價類的測試用例如表3 所示。

表3 管理員登錄等價類測試用例
在大喇叭管理模塊有查看、添加、刪除、查詢大喇叭廣播信息的功能。此模塊功能測試的內容如表4所示,測試操作如表5 所示。

表4 管理員大喇叭管理功能測試內容

表5 管理員大喇叭管理功能測試操作
系統還從功能、性能和兼容性等角度進行了多次反復的測試。結果表明,牛山村便民服務系統功能較為完善,性能良好且瀏覽器兼容性較好,基本滿足了牛山村便民服務系統的設計要求。
本研究通過分析牛山村村民日常生活中出現的諸多問題,設計并開發了一個農村區域便民服務系統。系統基于MVC 模式和SSH2 框架技術實現了包括大喇叭廣播、滯銷幫扶和物品互助在內的諸多功能,方便村民及時掌握村中動態,增加日常商品銷售的收益,提高物品利用率,增進鄰里感情。該系統也為其他鄉村提供了“互聯網+農村”的新思路,助力鄉村振興,對未來農村區域便民服務系統的發展具有一定的實際應用價值。系統界面簡潔,維護方便,具有較好的可用性。
本系統雖然滿足了村民的一些功能需求,但是還有很多需要改進的地方。比如村民需求尚需要深入挖掘;一些功能模塊有待設計與開發,如村委會內部事務管理、數據分析模塊等;已經開發出的功能模塊還需要進一步豐富完善,如在大喇叭廣播和留言后能夠及時推送提醒消息等。此外,該系統能否進一步做到模塊靈活選擇,以便適應不同農村區域的現實需求也是一個值得探索的問題。