姜景耀 任勇 華中偉 胥薇 徐云龍
摘 要:該文提出了基于J2EE的三層開發(fā)模型,應(yīng)用開發(fā)框架SSH(Spring +Struts +Hibernate)的教師科研信息管理系統(tǒng)的管理員模塊的設(shè)計(jì)與實(shí)現(xiàn)。主要對(duì)SSH架構(gòu)進(jìn)行了介紹,同時(shí)介紹了該模塊的主要功能及其功能模塊。
關(guān)鍵詞:Spring Struts Hibernate 教師科研管理系統(tǒng)
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2016)02(a)-0010-02
針對(duì)教學(xué)科研工作中存在的以下問題:更新不及時(shí)、新舊信息錯(cuò)雜、獲取信息復(fù)雜,相關(guān)管理人員管理工作繁重等,筆者進(jìn)行了教學(xué)科研Web系統(tǒng)的開發(fā)。以期解決現(xiàn)行管理過程中存在的問題,使對(duì)教學(xué)科研活動(dòng)的管理有序有效地進(jìn)行,并提供多種查詢統(tǒng)計(jì)功能和教師業(yè)績(jī)點(diǎn)計(jì)算功能,進(jìn)一步減輕管理員的工作強(qiáng)度,同時(shí)實(shí)行多權(quán)限設(shè)置,增加權(quán)限賦予功能,使得查詢統(tǒng)計(jì)功能在擁有安全性的同時(shí),加強(qiáng)了靈活性[2]。
該論文將會(huì)講述運(yùn)用Web應(yīng)用技術(shù),采用目前較流行的Spring+Struts+Hibernate開發(fā)框架,實(shí)現(xiàn)教學(xué)科研管理系統(tǒng),其中詳細(xì)講述管理員功能模塊的設(shè)計(jì)與實(shí)現(xiàn)[3]。
1 系統(tǒng)功能分析
該文主要是對(duì)教師科研信息管理系統(tǒng)中管理員模塊的設(shè)計(jì),該模塊主要包括資料上傳、發(fā)布公告、授權(quán)功能、審批管理、人員管理和業(yè)績(jī)點(diǎn)計(jì)算等功能。主要的使用者是管理員。
1.1 發(fā)布通知功能
在管理員登錄之后,進(jìn)入管理員界面。在此頁面,可以進(jìn)入發(fā)布通知頁面,其中包括兩部分,通知發(fā)布和通知管理。
管理員可以新建通知,對(duì)新建的通知,管理員可以發(fā)布,或存為草稿日后發(fā)布,或取消發(fā)布。對(duì)于存為草稿的通知,管理員可以修改后發(fā)布,或修改后存為草稿,或取消,或直接刪除。通知發(fā)布之后,系統(tǒng)會(huì)發(fā)送郵件通知所有用戶,通知發(fā)布,主要便于及時(shí)查看。
提交完成之后的通知?jiǎng)t可通過通知管理功能進(jìn)行管理,同樣可以對(duì)已發(fā)布的新聞進(jìn)行刪除或修改操作,同時(shí)考慮到發(fā)布的通知可能會(huì)很多,在界面中增加了分頁的功能。對(duì)于修改已發(fā)布的通知,系統(tǒng)將會(huì)發(fā)郵件通知用戶通知已經(jīng)改變,并將該通知置頂。
1.2 審批管理功能
審批管理功能主要分為,審批上傳資料和管理上傳資料兩塊,是對(duì)用戶上傳的論文、著作、科研項(xiàng)目、專利發(fā)明、學(xué)術(shù)活動(dòng)及學(xué)院相關(guān)資料等進(jìn)行審批和統(tǒng)一管理。鑒于在功能模塊上的類似,在此,以審批論文信息為例對(duì)審批功能的實(shí)現(xiàn)進(jìn)行說明。
點(diǎn)擊審批論文信息,進(jìn)入待審批列表界面,表中將羅列論文的一些基本信息。點(diǎn)擊論文題目,打開該論文的相關(guān)信息,進(jìn)行審批,管理員沒有權(quán)力更改用戶提交的論文信息,如果這些信息不符合要求,管理員則可以拒絕,并填寫審批不通過的理由,同時(shí)填寫自己郵箱密碼,系統(tǒng)將通過該管理員的郵箱向用戶發(fā)出郵件,通知用戶其論文未通過審批,并要求其進(jìn)行修改,再提交。同樣,若審批通過,管理員也會(huì)通過系統(tǒng)發(fā)郵件給用戶,通知他論文審批通過。
在管理上傳資料中,主要是對(duì)于那些超過了保存期限的資料,進(jìn)行備份或刪除,然后將其移出服務(wù)器。
1.3 人員管理功能
人員管理功能是對(duì)系統(tǒng)用戶的基本信息的管理,也包括兩個(gè)功能,人員添加和人員修改。人員添加,主要是用于添加新用戶??紤]到本系統(tǒng)是內(nèi)部服務(wù)系統(tǒng),因此不通過用戶自行注冊(cè),而是通過管理員添加來完成用戶添加。管理員需填寫用戶的基本信息,并將用戶的登錄賬號(hào)告知用戶。
考慮到信息的公正性,用戶不具備對(duì)其基本信息的改動(dòng)權(quán)限,因此如果基本信息改動(dòng),用戶應(yīng)及時(shí)通知管理員,進(jìn)行修改。管理員在人員管理中可以進(jìn)行用戶資料的修改,同時(shí)也可將離校教師的賬戶刪除。
1.4 授權(quán)權(quán)限功能
授權(quán)權(quán)限是對(duì)用戶查看統(tǒng)計(jì)信息權(quán)限的管理。管理員可根據(jù)用戶的申請(qǐng),賦予用戶查看統(tǒng)計(jì)信息的權(quán)限,并適時(shí)關(guān)閉其權(quán)限。
管理員在授予權(quán)限頁面中賦予用戶權(quán)限,可一次賦予一個(gè)或多個(gè)用戶,如果拒絕用戶的權(quán)限申請(qǐng),需填寫拒絕理由。
管理員通過權(quán)限管理,可取消用戶的權(quán)限。在用戶的權(quán)限到期之后,管理員可取消用戶的查看統(tǒng)計(jì)權(quán)限。
1.5 業(yè)績(jī)點(diǎn)計(jì)算功能
業(yè)績(jī)點(diǎn)計(jì)算主要是將每個(gè)用戶的總的業(yè)績(jī)點(diǎn)統(tǒng)計(jì)出來,羅列在一張表中,管理員可以通過備份,將上一年的業(yè)績(jī)點(diǎn)導(dǎo)出,然后存放在服務(wù)器上,同時(shí)通過點(diǎn)擊每個(gè)用戶的工號(hào),可查看每個(gè)用戶具體的業(yè)績(jī)點(diǎn)情況。
1.6 資料上傳功能
資料上傳功能主要是對(duì)課表信息和教材信息的導(dǎo)入和管理。管理員首先將規(guī)定列名的Excel表上傳到服務(wù)器,然后再通過資料上傳界面中的導(dǎo)入功能,將該表導(dǎo)入到數(shù)據(jù)庫中,從而實(shí)現(xiàn)課表信息和教材信息的導(dǎo)入[1]。
同時(shí),管理員可以通過上傳資料中的管理功能實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中的課程信息和教材信息的修改或刪除。
2 系統(tǒng)實(shí)現(xiàn)
在此,按照系統(tǒng)架構(gòu)逐步闡述管理員功能的主要實(shí)現(xiàn)框架。該系統(tǒng)主要分為3個(gè)層次,表現(xiàn)層、中間層及數(shù)據(jù)庫層[5]。
2.1 表現(xiàn)層
表現(xiàn)層提供與用戶交互的界面,用Web頁面實(shí)現(xiàn)。主要使用JSP技術(shù)實(shí)現(xiàn),在個(gè)別靜態(tài)頁面中,使用HTML靜態(tài)技術(shù)實(shí)現(xiàn)[6]。
2.2 中間層
該系統(tǒng)又將中間層劃分為Web層、Service層、DAO層和common層。
(1)Web層。
該層包含了Formbean和Action兩部分,同時(shí)也通過這兩部分分別聯(lián)系表現(xiàn)層和業(yè)務(wù)邏輯層,F(xiàn)ormbean對(duì)應(yīng)了JSP頁面中的內(nèi)容,而Action則調(diào)用了業(yè)務(wù)邏輯層中的內(nèi)容。
(2)Service層。
在該系統(tǒng)中,Service層完成了業(yè)務(wù)邏輯層的工作,其中主要是對(duì)Hibernate所封裝的對(duì)數(shù)據(jù)庫的操作的調(diào)用。例如,
public News getNewsByNewsId(int newsId) {
// TODO Auto-generated method stub
Validate.notNull(newsId, "when get pmrReg, the pmrReg id must not null...");
News news = null;
try {
news = newsDAO.getObject(newsId);
} catch (ObjectNotFoundException e) {
eventLogger.info("the dailyReport[" + newsId + " does not exit...",e);
throw new ServiceException("通過主鍵獲取日?qǐng)?bào)錯(cuò)誤");
}
return news;
}
(3)DAO層。
該層主要包括DAO層和PO層,其中DAO層的類都繼承了common層中封裝了Hibernate對(duì)數(shù)據(jù)庫的操作的類CommonDAOHibernate.java,而不是直接封裝Hibernate對(duì)數(shù)據(jù)庫的訪問。
PO,持久化對(duì)象,其中完全采用普通Java對(duì)象作為持久化對(duì)象使用,也是將數(shù)據(jù)庫中的對(duì)象對(duì)應(yīng)到Java對(duì)象,從而使對(duì)數(shù)據(jù)庫的操作更加簡(jiǎn)單。大家可以利用MyEclipse自動(dòng)生成POJO及其對(duì)應(yīng)的配置文件。
(4)common層。
該層存放了公用的代碼,包括對(duì)數(shù)據(jù)的增、刪、查、改操作的封裝,異常處理,日志處理,數(shù)據(jù)類型的轉(zhuǎn)換,時(shí)間的處理,文件上傳與發(fā)送郵件的方法,基礎(chǔ)Action類,以及系統(tǒng)要使用的常量。其中,對(duì)數(shù)據(jù)庫的操作的封裝主要是由MyEclipse中的方法自動(dòng)生成。
2.3 數(shù)據(jù)庫層
數(shù)據(jù)層負(fù)責(zé)存放和管理應(yīng)用的持久性業(yè)務(wù)數(shù)據(jù)。Hibernate提供了從映射文件到數(shù)據(jù)庫Schema的轉(zhuǎn)換工具,即hbm2ddl[7]。
執(zhí)行該任務(wù)的Java類net.Sf.Hibernate.tool.hbm2bbl.SchemaExportTask。在該系統(tǒng)中是應(yīng)用MyEclipse中的自動(dòng)轉(zhuǎn)換工具實(shí)現(xiàn)數(shù)據(jù)庫與持久性數(shù)據(jù)的對(duì)應(yīng)。
3 結(jié)語
該系統(tǒng)結(jié)構(gòu)清晰,注重功能的功能性和使用方便性。根據(jù)各功能的特點(diǎn),將各功能的流程考慮周到,流程設(shè)計(jì)完整。用戶如有需要,可以申請(qǐng)查看統(tǒng)計(jì)權(quán)限,系統(tǒng)具有一定的靈活性。同時(shí)應(yīng)用了SSH架構(gòu),在簡(jiǎn)化代碼的同時(shí),使系統(tǒng)具有較強(qiáng)的可擴(kuò)展性。
參考文獻(xiàn)
[1] 張芹.關(guān)于軟件開發(fā)中數(shù)據(jù)庫設(shè)計(jì)相關(guān)問題的探討[J].信息通信,2015(12):166-167.
[2] 宋陽.新時(shí)期高??蒲行畔⒒ㄔO(shè)工作思考[J].中國(guó)高??萍迹?014(7):71-73.
[3] 陳亞輝,繆勇.Struts+Spring+Hibernate框架技術(shù)與項(xiàng)目實(shí)戰(zhàn)[M].北京:清華大學(xué)出版社,2012.
[4] 傅偉,高海俠,涂剛,等.基于J2ME-J2EE的高??蒲行畔⒐芾硐到y(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)應(yīng)用,2011(7):76-80.
[5] 王進(jìn).B/S模式下的三層架構(gòu)模式[J].軟件導(dǎo)刊,2011(3):30-31.
[6] 陳艷春,王書海.基于Web的科技成果網(wǎng)絡(luò)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].河北工業(yè)科技,2007(1):15-18.
[7] 錢忠勝.基于Hibernate的數(shù)據(jù)持久化研究及其應(yīng)用[J].微計(jì)算機(jī)信息,2007:204,242-244.