彭?xiàng)铥悺⌒旒蚁病£惻嗯?/p>
摘要:隨著高校教育教學(xué)改革的深入與學(xué)生創(chuàng)新意識(shí)、實(shí)踐動(dòng)手能力的不斷提高,高校學(xué)科競(jìng)賽的規(guī)模越來(lái)越大,致使學(xué)科競(jìng)賽信息的管理越來(lái)越煩冗。針對(duì)低效率、工作量大的傳統(tǒng)人工管理模式,提出了基于Java EE的學(xué)科競(jìng)賽管理系統(tǒng)。根據(jù)院校實(shí)際業(yè)務(wù)需求,利用了Hibernate和struts2技術(shù)設(shè)計(jì)并實(shí)現(xiàn)了基于Java EE的學(xué)科競(jìng)賽管理系統(tǒng),在競(jìng)賽信息采集、統(tǒng)計(jì)、管理以及發(fā)布等環(huán)節(jié)上實(shí)現(xiàn)了信息化、規(guī)范化和網(wǎng)絡(luò)化,較大程度上提高了管理效率,對(duì)于高校學(xué)科競(jìng)賽管理具有重要意義。
關(guān)鍵詞:學(xué)科競(jìng)賽;管理系統(tǒng);Java EE
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)19-0093-03
Abstract: With the deepening of education reform in colleges and universities and the continuous improvement of students' innovative awareness and practical ability, the scale of academic competitions in universities is getting larger and larger, which makes the management of discipline competition information more and more cumbersome. For the traditional manual management mode with low efficiency and large workload, the discipline competition management system based on Java EE was proposed. According to the actual business requirements of colleges and universities, the Hibernate and struts2 technology was used to design and implement a discipline management system based on Java EE. It achieved informatization, standardization, and networking in competition information collection, statistics, management, and release. To a large extent, the management efficiency is improved, which is of great significance for the discipline competition management in colleges and universities.
Key words: discipline competition; management system; Java EE
1 引言
高校學(xué)科競(jìng)賽是增強(qiáng)學(xué)生動(dòng)手實(shí)踐能力和提高學(xué)生創(chuàng)新意識(shí)的重要體現(xiàn)與有效途徑,也是高校培養(yǎng)高質(zhì)量高素質(zhì)人才的標(biāo)志之一,有效促進(jìn)良好學(xué)風(fēng)的形成,為學(xué)生就業(yè)奠定基礎(chǔ)。一方面,各高校越來(lái)越重視學(xué)生綜合素質(zhì)的培養(yǎng),學(xué)科競(jìng)賽作為一種廣普及、深受益的教學(xué)教育改革方式應(yīng)運(yùn)而生,這種群眾性科技活動(dòng)不僅能與高效課堂緊密結(jié)合,還能有效考查學(xué)生解決實(shí)際問(wèn)題的能力;一方面,由于高校學(xué)科競(jìng)賽涉及專業(yè)廣泛、參賽人數(shù)眾多和賽程賽制區(qū)別較大等特點(diǎn),導(dǎo)致高校在組織開展和信息監(jiān)控的過(guò)程中面臨許多管理方面的困難,低效率、難監(jiān)控、易出錯(cuò)、難共享的傳統(tǒng)人工管理模式已無(wú)法滿足高校日益增長(zhǎng)的學(xué)科競(jìng)賽管理需求。
基于此,本文提出了通過(guò)Hibernate和struts2等Java EE技術(shù)設(shè)計(jì)并實(shí)現(xiàn)的學(xué)科競(jìng)賽管理系統(tǒng),致力于學(xué)科競(jìng)賽管理工作規(guī)范化、人性化、流程化和網(wǎng)絡(luò)化的實(shí)現(xiàn),提高學(xué)科競(jìng)賽活動(dòng)的組織效率,規(guī)范并簡(jiǎn)化學(xué)科競(jìng)賽過(guò)程的管理,保障學(xué)科競(jìng)賽的公平、公正與公開。
2 系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)需求分析
學(xué)科競(jìng)賽管理系統(tǒng)的設(shè)計(jì)與開發(fā),是為了解決傳統(tǒng)人工管理模式在學(xué)科競(jìng)賽組織開展與過(guò)程管理過(guò)程中所造成的困難,因此主要需要對(duì)學(xué)科競(jìng)賽進(jìn)行宣傳,定期發(fā)布大學(xué)生學(xué)科競(jìng)賽相關(guān)舉辦信息與活動(dòng)實(shí)時(shí)動(dòng)態(tài);需要對(duì)競(jìng)賽成果進(jìn)行展示,及時(shí)對(duì)各學(xué)科競(jìng)賽所取成果進(jìn)行展示和宣傳;需要對(duì)競(jìng)賽項(xiàng)目信息進(jìn)行管理,統(tǒng)一收錄競(jìng)賽項(xiàng)目相關(guān)的所有過(guò)程材料,避免材料檔案的缺失;還需要對(duì)系統(tǒng)賬號(hào)進(jìn)行管理等。
基于以上對(duì)學(xué)科競(jìng)賽管理系統(tǒng)需求的分析,可確定系統(tǒng)的需求為:
1) 競(jìng)賽信息的管理。對(duì)學(xué)科競(jìng)賽相關(guān)的舉辦信息與活動(dòng)動(dòng)態(tài)進(jìn)行實(shí)時(shí)展示,包括學(xué)科競(jìng)賽的動(dòng)態(tài)新聞以及優(yōu)秀成果的展示,普通用戶和學(xué)生都可以使用該功能;
2) 競(jìng)賽項(xiàng)目的管理。根據(jù)不同的競(jìng)賽項(xiàng)目將對(duì)應(yīng)的競(jìng)賽過(guò)程材料進(jìn)行收錄與統(tǒng)計(jì)分析,學(xué)生可以通過(guò)系統(tǒng)提交競(jìng)賽的項(xiàng)目作品,教師可以進(jìn)行相應(yīng)信息的瀏覽與編輯;
3) 競(jìng)賽系統(tǒng)的后臺(tái)管理。該功能主要面向特定權(quán)限的管理人員,例如教務(wù)處或管理教師,可以在系統(tǒng)內(nèi)進(jìn)行常規(guī)用戶賬號(hào)管理功能。下圖1為采用UML統(tǒng)一建模語(yǔ)言繪制的學(xué)科競(jìng)賽管理系統(tǒng)的需求分析用例圖。
2.2 系統(tǒng)功能設(shè)計(jì)
根據(jù)學(xué)科競(jìng)賽系統(tǒng)的需求分析,可確定系統(tǒng)的三大主要功能模塊:競(jìng)賽信息管理、競(jìng)賽項(xiàng)目管理以及系統(tǒng)后臺(tái)管理。其中:
競(jìng)賽信息管理功能使用戶及時(shí)獲取競(jìng)賽相關(guān)的舉辦信息與過(guò)程動(dòng)態(tài)新聞,公布競(jìng)賽優(yōu)秀成果以示鼓勵(lì),大力提高學(xué)科競(jìng)賽的宣傳效應(yīng);競(jìng)賽項(xiàng)目管理功能體現(xiàn)于不同的權(quán)限身份,學(xué)生身份可以進(jìn)行相關(guān)競(jìng)賽的報(bào)名、查看已報(bào)名競(jìng)賽信息、上傳競(jìng)賽作品以及個(gè)人信息的設(shè)置,而教師身份則可以對(duì)競(jìng)賽報(bào)名學(xué)生進(jìn)行管理并跟蹤監(jiān)控競(jìng)賽的過(guò)程信息,還可以對(duì)以往競(jìng)賽進(jìn)行數(shù)據(jù)統(tǒng)計(jì)并導(dǎo)出數(shù)據(jù)報(bào)表;后臺(tái)管理功能主要是對(duì)系統(tǒng)用戶賬號(hào)以及系統(tǒng)數(shù)據(jù)字典信息的管理。下圖2為學(xué)科競(jìng)賽管理系統(tǒng)的系統(tǒng)功能結(jié)構(gòu)圖。
2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
系統(tǒng)采用Mysql數(shù)據(jù)庫(kù),主要涉及的基礎(chǔ)數(shù)據(jù)表如下:
1) Administrator表(管理員信息表):記錄管理員信息,包含管理員用戶名、權(quán)限和用戶創(chuàng)建時(shí)間;
2) Teacher表(教師信息表):記錄教師信息,包含教師姓名、院系、電話、用戶名等基本信息;
3) Student表(學(xué)生信息表):記錄學(xué)生信息,包括學(xué)號(hào)、姓名、密碼、年齡、性別、電話、郵箱、身份證、所屬院系、專業(yè)以及推薦信息等內(nèi)容;
4) Competition表(競(jìng)賽信息表):記錄競(jìng)賽的信息,包含開始和截止時(shí)間、競(jìng)賽名稱、舉辦規(guī)模、負(fù)責(zé)老師、舉辦單位、競(jìng)賽內(nèi)容、競(jìng)賽鏈接、發(fā)布時(shí)間、發(fā)布單位等信息;
5) Subcompetition表(競(jìng)賽項(xiàng)目表):記錄競(jìng)賽項(xiàng)目信息,包含競(jìng)賽名稱、參與學(xué)生、指導(dǎo)教師、獲獎(jiǎng)等級(jí)和日期、院校、項(xiàng)目申報(bào)書、獲獎(jiǎng)名稱、證明材料、作品材料等;
6) News表(競(jìng)賽新聞表):記錄新聞模塊的信息,包含新聞標(biāo)題、內(nèi)容、發(fā)布者、發(fā)布日期等;
7) Notice表(系統(tǒng)公告表):記錄公告模塊的信息,包含公告內(nèi)容、發(fā)布者、發(fā)布日期等;
以上是學(xué)科競(jìng)賽系統(tǒng)的基礎(chǔ)數(shù)據(jù)表的主要內(nèi)容,還有部分業(yè)務(wù)輔助表不再贅述。
3 系統(tǒng)實(shí)現(xiàn)
3.1 關(guān)鍵技術(shù)
本系統(tǒng)的開發(fā)工具為Eclipse,數(shù)據(jù)庫(kù)采用MySQL關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),系統(tǒng)以此作為數(shù)據(jù)庫(kù)及數(shù)據(jù)表的設(shè)計(jì)與實(shí)現(xiàn)。后臺(tái)采用基于Java EE的Struts2+hibernate框架,該框架的系統(tǒng)分為表現(xiàn)層、控制層和業(yè)務(wù)邏輯層,并能搭建結(jié)構(gòu)清晰、可復(fù)用性好、維護(hù)方便的Web應(yīng)用系統(tǒng)。其中使用Struts2作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負(fù)責(zé)MVC的分離,在模型部分控制業(yè)務(wù)跳轉(zhuǎn),利用Hibernate框架對(duì)持久層提供支持。
系統(tǒng)前端頁(yè)面采用JSP技術(shù),其中部分純靜態(tài)頁(yè)面使用HTML5,CSS3和JavaScript構(gòu)建。在實(shí)現(xiàn)開發(fā)時(shí)引入JQuery庫(kù),該庫(kù)能優(yōu)化HTML文檔操作、事件處理、動(dòng)畫設(shè)計(jì)和Ajax交互。在前端頁(yè)面重構(gòu)時(shí)引用了Bootstrap框架,Bootstrap提供了大量常用的組件庫(kù),經(jīng)過(guò)個(gè)性化定制后能很好地為系統(tǒng)實(shí)現(xiàn)提供技術(shù)支持,提高前端開發(fā)效率。
3.2 系統(tǒng)關(guān)鍵功能模塊實(shí)現(xiàn)
1) 競(jìng)賽信息管理模塊
競(jìng)賽信息管理模塊主要包含公告管理、新聞管理、競(jìng)賽信息管理以及成果管理這四部分功能。其中公告管理主要實(shí)現(xiàn)了對(duì)高校學(xué)科競(jìng)賽系統(tǒng)相關(guān)通知公告的管理工作。教師可以對(duì)通知公告進(jìn)行編輯,而普通用戶只能對(duì)最近前10條公告信息進(jìn)行瀏覽。該部分功能讓高校師生及時(shí)了解最新公告,實(shí)現(xiàn)了信息的實(shí)時(shí)性共享。
新聞管理主要實(shí)現(xiàn)了對(duì)高校學(xué)科競(jìng)賽相關(guān)新聞動(dòng)態(tài)的管理。所有用戶都具有對(duì)新聞的瀏覽和查詢的權(quán)限,但只有教師具備編輯學(xué)科競(jìng)賽動(dòng)態(tài)新聞的權(quán)限。該功能提供了良好的信息窗口,讓全體師生方便、快捷地了解到最新資訊,促進(jìn)學(xué)科競(jìng)賽的組織開展與校園濃厚學(xué)術(shù)氛圍的形成。其中利用hibernate查詢所有新聞信息列表的關(guān)鍵代碼如下:
List
try {
Session session = HibernateUtils.getSession();
session.beginTransaction(); //session開啟Transaction的操作
Query query = session.createQuery("from News"); //利用hibernate進(jìn)行全查詢
newsList = query.list(); //將所有查詢結(jié)果保存至newsList
session.getTransaction().commit(); //與數(shù)據(jù)庫(kù)交互,提交操作結(jié)果
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback(); //若捕捉到異常則進(jìn)行事務(wù)回滾
} finally {
HibernateUtils.closeSession(session);
}
競(jìng)賽信息管理部分是對(duì)學(xué)科競(jìng)賽相關(guān)信息的管理,在教師編輯好學(xué)科競(jìng)賽相關(guān)信息進(jìn)行發(fā)布后,所有用戶都可以實(shí)時(shí)獲取最新的競(jìng)賽信息,為提高學(xué)生參與學(xué)科競(jìng)賽的積極性提供了保障。
成果管理部分主要是對(duì)歷年競(jìng)賽成果展示的管理。所有用戶都可以對(duì)競(jìng)賽成果進(jìn)行瀏覽和查詢,而教師還擁有編輯競(jìng)賽成果和導(dǎo)出報(bào)表的權(quán)限。
2) 項(xiàng)目信息管理模塊
競(jìng)賽項(xiàng)目信息管理模塊主要包含學(xué)生報(bào)名、項(xiàng)目信息的瀏覽查詢、項(xiàng)目信息的收錄編輯和項(xiàng)目信息的統(tǒng)計(jì)分析與報(bào)表導(dǎo)出功能,是對(duì)競(jìng)賽項(xiàng)目過(guò)程信息的管理。在該階段的操作流程圖如下圖3所示。
在學(xué)科競(jìng)賽舉辦之前負(fù)責(zé)教師將相關(guān)信息錄入系統(tǒng)并進(jìn)行發(fā)布,而后根據(jù)相關(guān)競(jìng)賽安排組織開展競(jìng)賽活動(dòng)。此時(shí),全校師生都可以通過(guò)該系統(tǒng)了解到最新的競(jìng)賽信息,有意愿的學(xué)生可以通過(guò)登錄系統(tǒng)進(jìn)行在線報(bào)名。在規(guī)定的報(bào)名時(shí)間截止后,開始進(jìn)行競(jìng)賽項(xiàng)目信息的收錄其中報(bào)名時(shí)項(xiàng)目信息的申報(bào)錄入界面如下圖4所示。
根據(jù)需求用面向?qū)ο蟮姆治龇椒ㄌ岢瞿P?,將其?shí)現(xiàn)為Java對(duì)象后再編寫DAO(Data Access Objects)接口。通過(guò)Hibernate實(shí)現(xiàn)DAO接口并以此進(jìn)行Java類與數(shù)據(jù)庫(kù)之間的轉(zhuǎn)換和訪問(wèn)操作,然后以struts配置文件方式管理從視圖層到控制器的映射。以下將以競(jìng)賽項(xiàng)目信息部分為模板具體剖析從功能到技術(shù)的融合實(shí)現(xiàn),其中編寫DAO接口的關(guān)鍵代碼如下:
public interface SubCompetitionDao {
public boolean subCompetitionsave(Competition competition,Subcompetition subcompetition);
public List
public Subcompetition findbySubCompetitionId(Subcompetition subcomp);
public boolean deleteSubcompetition(Subcompetition subcomp);
public boolean modifySubcompetition(Subcompetition subcomp);
}
在表現(xiàn)層調(diào)用DAO層方法訪問(wèn)數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)進(jìn)行CRUD的操作被封裝在DAO層。使用Hibernate技術(shù)作為DAO層訪問(wèn)數(shù)據(jù)庫(kù)的中間件,并達(dá)到數(shù)據(jù)持久化效果,通過(guò)對(duì)象操作來(lái)操作數(shù)據(jù)庫(kù),這樣可以使得操作更為方便快捷,其關(guān)鍵代碼如下:
List
try {
Session session = HibernateUtils.getSession();
Transaction tx = session.beginTransaction();
Query query = session.createQuery("from Subcompetition subcomp where subcomp.stuId1=?")
.setString(0, subcompetition.getStuId1()); //HQL(Hibernate Query Language)
subcompList = query.list();
if (subcompList.isEmpty()) {
subcompetition.setCompetition(competition);
session.save(subcompetition); //項(xiàng)目信息錄入
tx.commit();
}
} catch (Exception e) {
e.printStackTrace();
if (tx != null) tx.rollback();
}finally{
HibernateUtils.closeSession(session);
}
4 結(jié)束語(yǔ)
從與課堂理論知識(shí)的緊密結(jié)合,到實(shí)際應(yīng)用場(chǎng)景中解決實(shí)際問(wèn)題,學(xué)科競(jìng)賽管理系統(tǒng)無(wú)不促進(jìn)了校園良好校風(fēng)與濃厚學(xué)術(shù)氛圍的形成。本系統(tǒng)通過(guò)Hibernate和struts2等Java EE技術(shù),設(shè)計(jì)了競(jìng)賽信息管理、競(jìng)賽項(xiàng)目管理等功能模塊,實(shí)現(xiàn)了競(jìng)賽信息共享、競(jìng)賽數(shù)據(jù)信息的統(tǒng)計(jì)分析等功能,建立了一套靈活高效、方便快捷的學(xué)科競(jìng)賽管理系統(tǒng)。由于系統(tǒng)的設(shè)計(jì)與使用都是基于本校師生當(dāng)前階段的實(shí)際需求,在涉及資料審核流程和權(quán)限細(xì)分等方面目前只保留了接口,后期還需完善,但也因此能具有針對(duì)性的滿足當(dāng)前實(shí)際業(yè)務(wù)需求,實(shí)現(xiàn)軟件系統(tǒng)的定制化需求。
參考文獻(xiàn):
[1] 高紅巖.Struts應(yīng)用開發(fā)指南[M].北京:科學(xué)出版社,2007:3-4.
[2] 鄭阿奇.J2EE應(yīng)用實(shí)踐教程[M].北京:電子工業(yè)出版社,2009:23.
[3] 郝世選.基于Web的高校學(xué)生成績(jī)管理系統(tǒng)的分析與設(shè)計(jì)[J].科技廣場(chǎng),2009(7):159-160.
[4] 王添財(cái).基于Java EE的在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].廣州:華南理工大學(xué),2014.
[5] 于濤.基于JavaEE的信息管理系統(tǒng)研究與設(shè)計(jì)實(shí)現(xiàn)[D].大連:華東師范大學(xué),2010.
[6] 劉世平.基于JavaEE的教務(wù)管理信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].沈陽(yáng):東北大學(xué),2013.
[7] 羅玲玲.高校學(xué)科競(jìng)賽信息管理系統(tǒng)的研究與分析[D].昆明:云南大學(xué),2015.