秦溧 艾青
摘要:隨著時代的發(fā)展,為了滿足大學(xué)生對生活上的需求,以及整合周邊商家所提供的服務(wù),經(jīng)研究,在基于Spring,SpringMVC和Mybatis框架技術(shù)的基礎(chǔ)上,設(shè)計并實現(xiàn)了學(xué)生生活服務(wù)平臺,在該平臺上,用戶可獲取自己想了解的信息,商家可對店鋪進行宣傳。該平臺界面友好,易于操作,給用戶帶來出色的使用體驗,不僅可以提高大學(xué)生的生活效率,而且還可以增加商家的收益。
關(guān)鍵詞:Spring;SpringMVC;MyBatis
中圖分類號:TP311.5? ? ? 文獻標(biāo)識碼:A
文章編號:1009-3044(2021)13-0080-03
1 背景
經(jīng)調(diào)查,當(dāng)代許多大學(xué)生想取快遞時,往往都會遇到?jīng)]有時間,要排很長的隊的小問題;想要勤工儉學(xué)也沒有一個好的渠道;想快速獲取到周邊商鋪也需要自己花費大量的時間去探索;對于商家來說,想有效地對自己的店鋪進行宣傳,卻還停留在采用發(fā)傳單的形式,往往事倍功半。這給大學(xué)生的生活以及商家的收益造成了極大的影響。綜合以上問題分析,學(xué)生生活信息化的研究已成為當(dāng)代不可避免的重要課題。
在該平臺上實現(xiàn)的功能有,商家的入駐與審核,商家對店鋪和商品的管理,對最近一周消費記錄的分析,以及查看在該店鋪消費的用戶的積分。對于用戶,可以進行對店鋪和商品的瀏覽,如果已在該平臺注冊則可以擁有積分功能和獎品兌換的功能,即消費對應(yīng)的獎品和服務(wù)可以獲得相應(yīng)的積分,利用該積分可以在該店鋪兌換心儀的獎品。用戶可在該平臺上獲得良好的使用體驗。
在傳統(tǒng)的J2EE的開發(fā)過程中存在著許多問題。由于采用傳統(tǒng)的SSH框架進行開發(fā)時,用Hibernate框架的對數(shù)據(jù)庫進行操作時,往往會出現(xiàn)難以拼接Sql語句等問題,使得系統(tǒng)的開發(fā)和部署非常復(fù)雜,運行效率也低。本文采用SSM框架(Spring,SpringMVC,MyBatis)來開發(fā)學(xué)生生活服務(wù)平臺,這不僅簡化了編程,還提高了系統(tǒng)性能,增強了系統(tǒng)的可擴展性。
2 SSM框架概述
Spring 是一個輕量級的 Java 框架, 它是整合SSM的核心。Spring由Core(核心)、 Context(上下文)、 AOP(面向切面)、DAO(控制反轉(zhuǎn))、ORM、Web以及MVC組成,它在視圖層、數(shù)據(jù)持久層及業(yè)務(wù)邏輯層都有這廣泛的應(yīng)用,在這幾個層次里,程序員可以使用它的任何功能,系統(tǒng)框架的穩(wěn)定性不會受到任何影響。Spring主要是以IOC控制反轉(zhuǎn)和AOP面向切面編程為主的一款輕量級框架,在真正意義上實現(xiàn)了“一次寫入,多處運行”,改善了J2EE的開發(fā)效率以及技術(shù)標(biāo)準(zhǔn)的不統(tǒng)一,是J2EE應(yīng)用的各層的最優(yōu)解決方案,能夠與其他框架整合實現(xiàn)無縫連接[1]。
SpringMVC是輕量級web框架陣營中的主要成員之一,MVC設(shè)計思想是它的主要特色,這種設(shè)計方法可以用來對WEB層實現(xiàn)解耦,從而使得開發(fā)變得更加清晰和容易,同時能無縫銜接Spring技術(shù),并且數(shù)據(jù)驗證更加靈活[4]。在開始使用Java 2E技術(shù)進行開發(fā)時并沒有想到使用框架來簡化開發(fā)的這種概念,因此大部分的開發(fā)都是采用Jsp(編寫前端代碼)、Servlet(編寫請求跳轉(zhuǎn)和控制文件)和JavaBean來進行系統(tǒng)的開發(fā)。在開發(fā)中,JSP接收用戶的Request及同時將系統(tǒng)處理所得到的Result返回到服務(wù)器中并在視圖層呈現(xiàn)給用戶;JavaBean 用來建立和維護系統(tǒng)和數(shù)據(jù)庫之間連接的關(guān)系, Servlet 就作為Controller用于接收請求并返回相應(yīng)的響應(yīng)結(jié)果。采用這種開發(fā)模式會存在一個問題,那就是傳統(tǒng)方法中,每創(chuàng)建一個請求的路徑都會對應(yīng)的在系統(tǒng)中創(chuàng)建一個Servlet。這樣會導(dǎo)致系統(tǒng)中存在大量的Servlet文件,這種開發(fā)模式不僅會使系統(tǒng)源碼占用的空間過多,同時還會給開發(fā)人員在后期系統(tǒng)的調(diào)試和維護中造成極大的不便。此外,在處理請求時仍有許多不方便的操作。但是,SpringMVC解決了V-C之 間的交互問題,也就是視圖和控制器之間的交互問題[2]。
MyBatis 是一個輕量級Java持久層框架,它可以支持自定義 SQL、存儲數(shù)據(jù)的過程以及高級的Mapper映射。MyBatis 可以支持和MySql數(shù)據(jù)庫的聯(lián)合使用。MySQL 作為對數(shù)據(jù)庫進行操作的核心應(yīng)用組件,它封裝了對數(shù)據(jù)庫可以進行增刪改查的所有操作,并且可以只需要通過對xml 配置進行簡單的配置和注解就可以快速生成一些主要的代碼,提高開發(fā)者的生產(chǎn)力[3]。MySQL 的框架設(shè)計采用分層的思想[4-5],從邏輯業(yè)務(wù)上可以分為3 層:
1)API 接口層,在這一層Mybatis提供了大量可直接調(diào)用的API接口,這些接口的功能全面且強大,只要開發(fā)者在開發(fā)過程中加入了相關(guān)JAR包依賴就可以直接使用,這些 API接口會省去許多開發(fā)過程中煩瑣的步驟從而使開發(fā)變得相當(dāng)簡單。
2)數(shù)據(jù)處理層,這一層主要是對JavaBean對象實現(xiàn)數(shù)據(jù)的剖析和分解的操作,從而達到數(shù)據(jù)庫表和實體類建立起映射的效果,完成對數(shù)據(jù)庫的CRUD 操作[6]。
3)基礎(chǔ)配置層,這一層負(fù)責(zé)數(shù)據(jù)庫連接和管理以及數(shù)據(jù)的基本配置和加載,其中事務(wù)管理的底層驅(qū)動是Mybatis。 Mybatis 主要通過編寫xml文件讓其作為連接數(shù)據(jù)庫和系統(tǒng)的配置文件,此外,通過在xml文件中編寫Sql語句的方式可以實現(xiàn)對數(shù)據(jù)庫的操作,也可以通過注解的方式實現(xiàn)。Mybatis可以提高系統(tǒng)的靈活性和可維護性主要是因為它的分層思想,另外 Mybatis的結(jié)構(gòu)框架類似 MVC ,它也將系統(tǒng)分為了 DAO 接口層[7]、service 服務(wù)層、view視圖層。但對數(shù)據(jù)庫進行操作時,都需要在實體類中去定制數(shù)據(jù)庫表所對應(yīng)的主鍵以及其他字段屬性,然而在一些大型系統(tǒng)的數(shù)據(jù)庫中會有很多的數(shù)據(jù)庫表,而這會導(dǎo)致對主鍵的指定變得相當(dāng)麻煩。由于mybatis 的數(shù)據(jù)庫連接,是基于簡單JDBC(Java Databases Connection)的,因此建立Mybatis和數(shù)據(jù)庫的連接操作以及釋放鏈接的操作都會占用系統(tǒng)大量資源[8]。
SSM一個是典型的單體式輕量級框架,從職責(zé)上可以給系統(tǒng)分為四層:表示層,業(yè)務(wù)層,持久層和視圖層,可以幫助開發(fā)者在較短的時間內(nèi)搭建出復(fù)用性強、方便維護的程序。
3 平臺部分?jǐn)?shù)據(jù)庫表以及業(yè)務(wù)流程圖設(shè)計
3.1 系統(tǒng)流圖
商家入駐流程圖,該圖用于展示商家在入駐本平臺時需要走的流程,如圖1所示:
商家審核流程圖,該圖用于展示管理員在審核入駐商家店鋪信息的詳細(xì)流程,如圖2所示:
3.2 系統(tǒng)功能圖
學(xué)生生活服務(wù)平臺(學(xué)生幫)系統(tǒng)功能圖,該圖用于展示,用戶、商家、管理員在該平臺上所能擁有的功能,如圖3所示:
3.3 部分關(guān)鍵數(shù)據(jù)庫設(shè)計
區(qū)域表tb_area:該表用于存儲周邊店鋪信息區(qū)域位置,并由管理員來進行管理,如表1所列:
微信賬號tb_wechat_auth:用戶可以和自己的微信號進行關(guān)聯(lián),在關(guān)聯(lián)后,將自己的微信賬號信息存儲到該表中,如表3所列:
本地賬戶表tb_local_auth:用戶在進行微信登錄后可以綁定一個本地賬號,登錄的時候,除了可以利用自己的微信賬號,也可以用自己的本地賬號進行登錄。在綁定本地賬號后,將本地賬號的信息存儲的該表中,如表4所列:
頭條信息表tb_head_line:用于在界面展示商家的宣傳信息,商家在和管理員進行協(xié)商后,將自己的店鋪信息在界面的頭條上進行宣傳。并將該頭條信息存儲到該表中,如表5所列:
店鋪類別表tb_shop_category:該表用于存儲商店的類別,且店鋪類別的信息由管理員管理,商家在申請店鋪時,需在該表的信息中選取自己需要的店鋪類別,如表6所列:
4 結(jié)束語
本文主要針對學(xué)生生活服務(wù)平臺的開發(fā)進行了技術(shù)的分析、功能的描述、業(yè)務(wù)流程圖和數(shù)據(jù)庫的設(shè)計。通過測試,該平臺性能穩(wěn)定、可靠,具有較強的可擴展性。
參考文獻:
[1] 唐權(quán).SSM框架在JavaEE教學(xué)中的應(yīng)用與實踐[J].福建電腦,2017,33(12):61,93-94.
[2] 邱丹萍.Web開發(fā)中SSM框架的分析[J].電腦知識與技術(shù),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數(shù)據(jù)庫的面向?qū)ο竽P皖悓崿F(xiàn)[J].清遠(yuǎn)職業(yè)技術(shù)學(xué)院學(xué)報,2018,11(6):45-48.
[7] 陳欣.基于java三層構(gòu)架的管理信息系統(tǒng)中DAO層的構(gòu)建探索[J].科技資訊,2015,13(11):26-27.
[8] 陳小虎,鄧惠俊.基于mybatis的數(shù)據(jù)持久層研究[J].成都工業(yè)學(xué)院學(xué)報,2020,23(2):29-32.
【通聯(lián)編輯:謝媛媛】