郭海智 馮玉松
摘要:通過(guò)調(diào)查預(yù)計(jì)到2022年,我國(guó)將有6000萬(wàn)的足球人口,目前存在足球愛(ài)好者人員分散、場(chǎng)地利用不充分等問(wèn)題,針對(duì)該問(wèn)題,設(shè)計(jì)和實(shí)現(xiàn)了基于SpringMVC的業(yè)余足球俱樂(lè)部管理系統(tǒng),該系統(tǒng)采用SpringMVC+Mybatis+Maven架構(gòu)。利用該系統(tǒng),可充分進(jìn)行資源的利用,管理球隊(duì)成員、球隊(duì)賽事、球隊(duì)日程,提高業(yè)余足球俱樂(lè)部的管理。
關(guān)鍵詞:SpringMVC 架構(gòu);管理系統(tǒng);Mybatis
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)09-0071-02
Abstract:According to the survey,it is estimated that there will be 60 million football population in China by 2022. At present,there are some problems such as scattered football enthusiasts and insufficient utilization of football venues.To solve this problem,an amateur football club management system based on Spring MVC is designed and implemented.The system adopts Spring MVC+Mybatis+Maven architecture.Using this system,we can make full use of resources,manage team members, team events, team schedule, and improve the management of amateur football clubs.
Key words: Spring MVC architecture;management system;Mybatis
隨著互聯(lián)網(wǎng)的發(fā)展及廣泛的應(yīng)用,人們生活水平不斷地提高,全民健身運(yùn)動(dòng)的深入發(fā)展。足球運(yùn)動(dòng)在我國(guó)普及度變高,業(yè)余足球俱樂(lè)部也在近幾年越來(lái)越多,由于業(yè)余足球的參與性高、兼顧競(jìng)技和娛樂(lè)健身的特點(diǎn),因而使得大量足球愛(ài)好者被吸引到業(yè)余足球的活動(dòng)中來(lái)?;ヂ?lián)網(wǎng)也迎合了足球愛(ài)好者不斷發(fā)展的需求,足球產(chǎn)業(yè)信息化可以滿足當(dāng)前市場(chǎng)的需求,以其突出的優(yōu)勢(shì)解決了足球資源的浪費(fèi),降低了成本,提高了效率等問(wèn)題。足球運(yùn)動(dòng)是團(tuán)隊(duì)體育項(xiàng)目的典型代表,足球愛(ài)好者不僅僅滿足于簡(jiǎn)單地看比賽,更希望在自己閑暇時(shí)間踢踢球,但也面臨著一些問(wèn)題,如周?chē)淖闱驉?ài)好者人數(shù)不多,每個(gè)人的空閑時(shí)間不相同,難以組織比賽。因此,如何利用信息化技術(shù)有效地管理足球愛(ài)好者,精準(zhǔn)地提供比賽信息等,是目前業(yè)余足球俱樂(lè)部面臨的問(wèn)題。由此也就需要開(kāi)發(fā)一款基于Spring+SpringMVC+Mybatis的業(yè)余足球俱樂(lè)部管理系統(tǒng)。
1 關(guān)鍵技術(shù)
1.1B/S結(jié)構(gòu)介紹
B/S(Browser/Server)瀏覽器/服務(wù)器模式,B/S是一種基于WEB技術(shù)平臺(tái)的系統(tǒng)模式。這種模式將系統(tǒng)集中到服務(wù)器上,只要在客戶機(jī)上安裝瀏覽器就可以實(shí)現(xiàn)與服務(wù)器之間的數(shù)據(jù)交互。而且B/S模式維護(hù)升級(jí)方式簡(jiǎn)單,成本低,降低服務(wù)器復(fù)合。它和C/S(Client/Server)的主要區(qū)別可以分兩個(gè)方面:一是硬件環(huán)境不同,C/S是在專用的網(wǎng)絡(luò)上,小范圍的數(shù)據(jù)交互,而B(niǎo)/S建立在廣域網(wǎng)上的有著比C/S更強(qiáng)的適用范圍;二是用戶接口的不同,B/S建立在服務(wù)上,C/S建立在window平臺(tái)上,因此C/S維護(hù)成本要高于B/S。
1.21.5 MySQL
MySQL自從被開(kāi)發(fā)及應(yīng)用以來(lái),一直是最受歡迎的軟件之一。MySQL完全適用于網(wǎng)絡(luò),
其數(shù)據(jù)庫(kù)可以和網(wǎng)絡(luò)上任意地方的任何人實(shí)現(xiàn)共享。MySQL的特點(diǎn)如下:
1)MySQL數(shù)據(jù)庫(kù)是開(kāi)源的,價(jià)格上是能免費(fèi)使用;
2)MySQL運(yùn)行速度是很快;
3)對(duì)多種字符集的完全支持;
4)支持SQL算法的查詢,可以得到優(yōu)化,能大大提高查詢的速度;
5)MySQL是小巧的,占用空間??;
6)可以提供對(duì)數(shù)據(jù)的隨機(jī)訪問(wèn);
7)支持多種的語(yǔ)言;
8)提供 TCP/IP、ODBC 和 JDBC等多種數(shù)據(jù)庫(kù)連接途徑。
1.3 Tomcat服務(wù)器
Tomcat是目前最流行的Java Web服務(wù)器,Tomcat 很受使用者的鐘愛(ài),原因在以下幾個(gè)優(yōu)秀的特點(diǎn);第一工作時(shí)候的效率高于其他服務(wù)器,而且支持的功能總類(lèi)煩多基本滿足大部分的需求;第二它還在不斷地升級(jí)和改善中因此可發(fā)展極強(qiáng),任何一個(gè)使用者都可以更改它或加入新功能來(lái)滿足自己的功能需求。Tomcat 服務(wù)器通過(guò) Connector 連接器組件與客戶程序建立連接,并負(fù)責(zé)接收客戶請(qǐng)求和響應(yīng)結(jié)果。
1.4Mybatis
Mybatis 是一個(gè)持久層的框架,能夠自動(dòng)在java和C#等語(yǔ)言中與SQL數(shù)據(jù)庫(kù)和對(duì)象之間的映射。它利用映射功能將SQL語(yǔ)句嵌套在XML文件中,使得應(yīng)用程序與數(shù)據(jù)庫(kù)的查詢就可以完全的分離開(kāi)來(lái)。使用的過(guò)程需要注意以下幾點(diǎn):
1)namespace大家需要根據(jù)自己的工程的包名稱,調(diào)整namespace的包前綴,GetXXXInfo需要與中定義的接名稱完全相同,否則無(wú)法建立映射。
2)select標(biāo)簽的id屬性必須中定義的getXXX方法名稱完全相同,resultType屬性的值需要與中定義的XXX類(lèi)的類(lèi)名完全相同,需要填寫(xiě)完整的包名+類(lèi)名。
3)mapper的resource屬性的值,要使用斜線作為分隔符,使用“.”系統(tǒng)可能無(wú)法識(shí)別。
4)resource的值必須與之前定義的SqlSessionFactory文件名稱完全一致
1.5 Spring+SpringMVC+Mybatis+Maven+Mysql 整合技術(shù)
Spring+SpringMVC+Mybatis+Maven +Mysql整合開(kāi)發(fā)實(shí)現(xiàn)業(yè)余足球管理系統(tǒng),為了開(kāi)發(fā)代碼時(shí)條理清晰,系統(tǒng)各個(gè)模塊之間松耦合,實(shí)現(xiàn)過(guò)程是通過(guò)SpringMVC分離了控制器、模型對(duì)象、分派器以及處理程序?qū)ο蟮慕巧?,且SpringMVC控制訪問(wèn)的頁(yè)面,將得到的頁(yè)面參數(shù)傳遞給Spring中的MyBatis的bean類(lèi),然后查找MySQL數(shù)據(jù)的功能,并通過(guò)FreeMarker模版顯示給用戶。開(kāi)發(fā)時(shí)采用Maven來(lái)管理項(xiàng)目,其帶來(lái)的好處有:1)項(xiàng)目構(gòu)建Maven定義了軟件開(kāi)發(fā)的整套流程體系,并進(jìn)行了封裝,開(kāi)發(fā)人員只需要指定項(xiàng)目的構(gòu)建流程,無(wú)須針對(duì)每個(gè)流程編寫(xiě)自己的構(gòu)建腳本;2)依賴管理除了項(xiàng)目構(gòu)建,Maven最核心的功能是軟件包的依賴管理,能夠自動(dòng)分析項(xiàng)目所需要的依賴軟件包,并到Maven中心倉(cāng)庫(kù)去下載。管理依賴的jar包和管理工程之間的依賴關(guān)系。這樣的組合框架可以隔離各個(gè)層次之間的依賴性。此種架構(gòu)開(kāi)發(fā)出來(lái)實(shí)現(xiàn)的系統(tǒng)對(duì)后期的維護(hù)與二次開(kāi)發(fā)帶來(lái)了很大的便利。
2 系統(tǒng)功能設(shè)計(jì)
經(jīng)過(guò)前期充分調(diào)研,本系統(tǒng)是一款為業(yè)余足球隊(duì)開(kāi)發(fā)的。通過(guò)系統(tǒng),可以方便地管理球隊(duì)成員、球隊(duì)賽事、球隊(duì)日程。領(lǐng)隊(duì)創(chuàng)建球隊(duì),邀請(qǐng)隊(duì)員們參加。領(lǐng)隊(duì)創(chuàng)建比賽、活動(dòng),邀請(qǐng)隊(duì)員們報(bào)名,同時(shí)還可以找到附近的足球場(chǎng)地信息。用戶可以通過(guò)創(chuàng)建球隊(duì),尋找和你一樣的足球愛(ài)好者,尋找球場(chǎng),約人比賽等等。
2.1 登錄功能
用戶登錄時(shí),需要輸入用戶名和密碼,前端將密碼用MD5加密后傳輸。登錄后,所有
界面上要顯示用戶的昵稱、所在球隊(duì)圖標(biāo)(按鈕)、球隊(duì)賽事、球隊(duì)日程等功能。異步數(shù)據(jù)接口要求如下:
1)默認(rèn)權(quán)限為需要登錄;
2)返回統(tǒng)一為 json 數(shù)據(jù),格式為:{code:xxx,message:xxx,result:xxx};
3)code為200,表示請(qǐng)求成功,其他表示異常;
4)當(dāng)code不是200 時(shí),message中應(yīng)說(shuō)明原因。
對(duì)應(yīng)的核心代碼如下:
@Controller
@RequestMapping(value="/ghzAPI")
public class PersonCotroller {
@Autowired
private PersonService personService;
@RequestMapping(value="login",method = RequestMethod.POST)
@ResponseBody
public Json login(@RequestParam("userName") String userName, @RequestParam("password") String password,
ModelMap map, HttpSession hs){
Person person = personService.getPersonByUserName(userName);
if(person!=null && person.getPassword().equals(password)){
Map
user.put("id", person.getId());
user.put("username", person.getUsername());
user.put("usertype", person.getUsertype());
hs.setAttribute("user", user);
return new Json(200, "登錄成功!", true);
} else {
return new Json(220, "登錄失??!", false);
}
}
}
2.2 上傳圖片功能
此功能可以用于用戶登錄成功后,上傳個(gè)人的照片、球隊(duì)比賽的照片和記錄個(gè)人業(yè)余足球生涯的相冊(cè)等功能。異步數(shù)據(jù)接口要求如下:
1)默認(rèn)權(quán)限為需要登錄;
2)返回統(tǒng)一為 json 數(shù)據(jù),格式為:{code:xxx,message:xxx,result:xxx};
3)code為200,表示請(qǐng)求成功,其他表示異常;
4)當(dāng)code不是200時(shí),message中應(yīng)說(shuō)明原因。
對(duì)應(yīng)的核心代碼如下:
@RequestMapping(value = "/ghzAPI/upload", method = RequestMethod.POST)
@ResponseBody
public Json apiUpload(@RequestParam("id") int id, @RequestParam("url") String url) {
if (id > 0 && url.trim().length() > 0) {
return new Json(200, url, true);
} else {
return new Json(220, "上傳失??!", false);
}
}
3 結(jié)束語(yǔ)
該系統(tǒng)特色與創(chuàng)新點(diǎn),方便球隊(duì)約球,方便球隊(duì)管理,出勤管理,排兵布陣,隊(duì)費(fèi)管理,發(fā)現(xiàn)周?chē)蜿?duì),同城球隊(duì)約球,查看場(chǎng)地信息方便訂場(chǎng)等功能。本系統(tǒng)目前只是實(shí)現(xiàn)了基本功能,但如何將業(yè)余足球俱樂(lè)部的管理與各個(gè)城市場(chǎng)地信息實(shí)時(shí)結(jié)合起來(lái),例如足球場(chǎng)地發(fā)布活動(dòng)優(yōu)惠,賽事等信息,例如利用業(yè)余球員平時(shí)參賽數(shù)據(jù)的參考模型生成有價(jià)值的信息,等功能尚未實(shí)現(xiàn),這將是下一步系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的目標(biāo)。
參考文獻(xiàn):
[1] 劉京華.Java Web整合開(kāi)發(fā)王者歸來(lái)[M].北京:清華大學(xué)出版社,2010.
[2] 易國(guó)平,龍啟文.足球比賽管理系統(tǒng)設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用,2015(7).
[3] 姜科.牡丹江市業(yè)余足球聯(lián)賽參賽球隊(duì)研究[D].北京:北京體育大學(xué),2012.
[4] 楊慧.基于SpringMVC與iBATIS框架的企業(yè)工單管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:中國(guó)科學(xué)院大學(xué)(工程管理與信息技術(shù)學(xué)院),2015.
【通聯(lián)編輯:代影】