秦溧 艾青



摘要:隨著時代的發展,為了滿足大學生對生活上的需求,以及整合周邊商家所提供的服務,經研究,在基于Spring,SpringMVC和Mybatis框架技術的基礎上,設計并實現了學生生活服務平臺,在該平臺上,用戶可獲取自己想了解的信息,商家可對店鋪進行宣傳。該平臺界面友好,易于操作,給用戶帶來出色的使用體驗,不僅可以提高大學生的生活效率,而且還可以增加商家的收益。
關鍵詞:Spring;SpringMVC;MyBatis
中圖分類號:TP311.5? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)13-0080-03
1 背景
經調查,當代許多大學生想取快遞時,往往都會遇到沒有時間,要排很長的隊的小問題;想要勤工儉學也沒有一個好的渠道;想快速獲取到周邊商鋪也需要自己花費大量的時間去探索;對于商家來說,想有效地對自己的店鋪進行宣傳,卻還停留在采用發傳單的形式,往往事倍功半。這給大學生的生活以及商家的收益造成了極大的影響。綜合以上問題分析,學生生活信息化的研究已成為當代不可避免的重要課題。
在該平臺上實現的功能有,商家的入駐與審核,商家對店鋪和商品的管理,對最近一周消費記錄的分析,以及查看在該店鋪消費的用戶的積分。對于用戶,可以進行對店鋪和商品的瀏覽,如果已在該平臺注冊則可以擁有積分功能和獎品兌換的功能,即消費對應的獎品和服務可以獲得相應的積分,利用該積分可以在該店鋪兌換心儀的獎品。用戶可在該平臺上獲得良好的使用體驗。
在傳統的J2EE的開發過程中存在著許多問題。由于采用傳統的SSH框架進行開發時,用Hibernate框架的對數據庫進行操作時,往往會出現難以拼接Sql語句等問題,使得系統的開發和部署非常復雜,運行效率也低。本文采用SSM框架(Spring,SpringMVC,MyBatis)來開發學生生活服務平臺,這不僅簡化了編程,還提高了系統性能,增強了系統的可擴展性。
2 SSM框架概述
Spring 是一個輕量級的 Java 框架, 它是整合SSM的核心。Spring由Core(核心)、 Context(上下文)、 AOP(面向切面)、DAO(控制反轉)、ORM、Web以及MVC組成,它在視圖層、數據持久層及業務邏輯層都有這廣泛的應用,在這幾個層次里,程序員可以使用它的任何功能,系統框架的穩定性不會受到任何影響。Spring主要是以IOC控制反轉和AOP面向切面編程為主的一款輕量級框架,在真正意義上實現了“一次寫入,多處運行”,改善了J2EE的開發效率以及技術標準的不統一,是J2EE應用的各層的最優解決方案,能夠與其他框架整合實現無縫連接[1]。
SpringMVC是輕量級web框架陣營中的主要成員之一,MVC設計思想是它的主要特色,這種設計方法可以用來對WEB層實現解耦,從而使得開發變得更加清晰和容易,同時能無縫銜接Spring技術,并且數據驗證更加靈活[4]。在開始使用Java 2E技術進行開發時并沒有想到使用框架來簡化開發的這種概念,因此大部分的開發都是采用Jsp(編寫前端代碼)、Servlet(編寫請求跳轉和控制文件)和JavaBean來進行系統的開發。在開發中,JSP接收用戶的Request及同時將系統處理所得到的Result返回到服務器中并在視圖層呈現給用戶;JavaBean 用來建立和維護系統和數據庫之間連接的關系, Servlet 就作為Controller用于接收請求并返回相應的響應結果。采用這種開發模式會存在一個問題,那就是傳統方法中,每創建一個請求的路徑都會對應的在系統中創建一個Servlet。這樣會導致系統中存在大量的Servlet文件,這種開發模式不僅會使系統源碼占用的空間過多,同時還會給開發人員在后期系統的調試和維護中造成極大的不便。此外,在處理請求時仍有許多不方便的操作。但是,SpringMVC解決了V-C之 間的交互問題,也就是視圖和控制器之間的交互問題[2]。
MyBatis 是一個輕量級Java持久層框架,它可以支持自定義 SQL、存儲數據的過程以及高級的Mapper映射。MyBatis 可以支持和MySql數據庫的聯合使用。MySQL 作為對數據庫進行操作的核心應用組件,它封裝了對數據庫可以進行增刪改查的所有操作,并且可以只需要通過對xml 配置進行簡單的配置和注解就可以快速生成一些主要的代碼,提高開發者的生產力[3]。MySQL 的框架設計采用分層的思想[4-5],從邏輯業務上可以分為3 層:
1)API 接口層,在這一層Mybatis提供了大量可直接調用的API接口,這些接口的功能全面且強大,只要開發者在開發過程中加入了相關JAR包依賴就可以直接使用,這些 API接口會省去許多開發過程中煩瑣的步驟從而使開發變得相當簡單。
2)數據處理層,這一層主要是對JavaBean對象實現數據的剖析和分解的操作,從而達到數據庫表和實體類建立起映射的效果,完成對數據庫的CRUD 操作[6]。
3)基礎配置層,這一層負責數據庫連接和管理以及數據的基本配置和加載,其中事務管理的底層驅動是Mybatis。 Mybatis 主要通過編寫xml文件讓其作為連接數據庫和系統的配置文件,此外,通過在xml文件中編寫Sql語句的方式可以實現對數據庫的操作,也可以通過注解的方式實現。Mybatis可以提高系統的靈活性和可維護性主要是因為它的分層思想,另外 Mybatis的結構框架類似 MVC ,它也將系統分為了 DAO 接口層[7]、service 服務層、view視圖層。但對數據庫進行操作時,都需要在實體類中去定制數據庫表所對應的主鍵以及其他字段屬性,然而在一些大型系統的數據庫中會有很多的數據庫表,而這會導致對主鍵的指定變得相當麻煩。由于mybatis 的數據庫連接,是基于簡單JDBC(Java Databases Connection)的,因此建立Mybatis和數據庫的連接操作以及釋放鏈接的操作都會占用系統大量資源[8]。
SSM一個是典型的單體式輕量級框架,從職責上可以給系統分為四層:表示層,業務層,持久層和視圖層,可以幫助開發者在較短的時間內搭建出復用性強、方便維護的程序。
3 平臺部分數據庫表以及業務流程圖設計
3.1 系統流圖
商家入駐流程圖,該圖用于展示商家在入駐本平臺時需要走的流程,如圖1所示:
商家審核流程圖,該圖用于展示管理員在審核入駐商家店鋪信息的詳細流程,如圖2所示:
3.2 系統功能圖
學生生活服務平臺(學生幫)系統功能圖,該圖用于展示,用戶、商家、管理員在該平臺上所能擁有的功能,如圖3所示:
3.3 部分關鍵數據庫設計
區域表tb_area:該表用于存儲周邊店鋪信息區域位置,并由管理員來進行管理,如表1所列:
微信賬號tb_wechat_auth:用戶可以和自己的微信號進行關聯,在關聯后,將自己的微信賬號信息存儲到該表中,如表3所列:
本地賬戶表tb_local_auth:用戶在進行微信登錄后可以綁定一個本地賬號,登錄的時候,除了可以利用自己的微信賬號,也可以用自己的本地賬號進行登錄。在綁定本地賬號后,將本地賬號的信息存儲的該表中,如表4所列:
頭條信息表tb_head_line:用于在界面展示商家的宣傳信息,商家在和管理員進行協商后,將自己的店鋪信息在界面的頭條上進行宣傳。并將該頭條信息存儲到該表中,如表5所列:
店鋪類別表tb_shop_category:該表用于存儲商店的類別,且店鋪類別的信息由管理員管理,商家在申請店鋪時,需在該表的信息中選取自己需要的店鋪類別,如表6所列:
4 結束語
本文主要針對學生生活服務平臺的開發進行了技術的分析、功能的描述、業務流程圖和數據庫的設計。通過測試,該平臺性能穩定、可靠,具有較強的可擴展性。
參考文獻:
[1] 唐權.SSM框架在JavaEE教學中的應用與實踐[J].福建電腦,2017,33(12):61,93-94.
[2] 邱丹萍.Web開發中SSM框架的分析[J].電腦知識與技術,2020,16(17):81-82.
[3] Jeroen O,David J,SaikatT D,et al.RMySQL:database interface and 'MySQL' driver for R[EB/OL].[2020-09-20]. https://cran.r-project.org/web/packages/RMySQL/index.html.
[4] Nash T,Olmsted A.Performance vs.security:Implementing an immutable database in MySQL[C]//2017 12th International Conference for Internet Technology and Secured Transactions (ICITST).Cambridge:IEEE,2017.
[5] Sánchez-de-Madariaga R,Mu?oz A,Castro A L,et al.Executing complexity-increasing queries In relational (MySQL) and NoSQL (MongoDB and EXist) size-growing ISO/EN 13606 standardized EHR databases[J].Journal of Visualized Experiments,2018(133):57439.
[6] 張世雄.PHP操作MySql數據庫的面向對象模型類實現[J].清遠職業技術學院學報,2018,11(6):45-48.
[7] 陳欣.基于java三層構架的管理信息系統中DAO層的構建探索[J].科技資訊,2015,13(11):26-27.
[8] 陳小虎,鄧惠俊.基于mybatis的數據持久層研究[J].成都工業學院學報,2020,23(2):29-32.
【通聯編輯:謝媛媛】