趙相宇等
摘 要:實(shí)驗(yàn)室設(shè)備管理系統(tǒng)為解決以往的實(shí)驗(yàn)室由管理人員手動(dòng)管理的費(fèi)時(shí)費(fèi)力等多方面問(wèn)題而設(shè)計(jì)。本文通過(guò)系統(tǒng)分析、數(shù)據(jù)庫(kù)設(shè)計(jì)、系統(tǒng)實(shí)現(xiàn)、系統(tǒng)測(cè)試四個(gè)方面對(duì)實(shí)驗(yàn)室設(shè)備管理系統(tǒng)進(jìn)行分析與設(shè)計(jì)。在本系統(tǒng)的開(kāi)發(fā)過(guò)程中,充分考慮到了后期系統(tǒng)的維護(hù)工作,采用了SSH框架來(lái)完成整個(gè)系統(tǒng)的開(kāi)發(fā),用MySQL作為后臺(tái)數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)信息,MyEclipse作為開(kāi)發(fā)工具,緊緊貼合實(shí)驗(yàn)室的需求。
關(guān)鍵詞:業(yè)務(wù)層;邏輯層;控制層;設(shè)備管理
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言(Introduction)
隨著現(xiàn)代科技的發(fā)展和進(jìn)步,實(shí)驗(yàn)室成為一些高校以及科研院所的必備,實(shí)驗(yàn)室設(shè)備的管理問(wèn)題關(guān)系到實(shí)驗(yàn)教學(xué)與科研項(xiàng)目是否能成功運(yùn)行,傳統(tǒng)的紙質(zhì)報(bào)表管理模式隨著時(shí)間的推移數(shù)量的龐大,不便于保存和統(tǒng)計(jì),無(wú)法準(zhǔn)確了解實(shí)驗(yàn)設(shè)備運(yùn)行狀態(tài)和使用情況。隨著信息技術(shù)的發(fā)展,人們更加青睞于將這樣復(fù)雜的工作交給計(jì)算機(jī)來(lái)進(jìn)行處理,該系統(tǒng)的開(kāi)發(fā)便是基于這樣的需求,將實(shí)驗(yàn)室的管理需求進(jìn)行信息化處理。通過(guò)該系統(tǒng)來(lái)規(guī)范的存儲(chǔ)和統(tǒng)計(jì)實(shí)驗(yàn)室的設(shè)備信息。
2 系統(tǒng)的主要設(shè)計(jì)工作(Major design work of the
platform)
2.1 系統(tǒng)的主要任務(wù)
實(shí)驗(yàn)室設(shè)備管理系統(tǒng)能夠通過(guò)系統(tǒng)管理員實(shí)現(xiàn)對(duì)設(shè)備的分類管理;可以對(duì)合法的注冊(cè)用戶發(fā)出的設(shè)備借用申請(qǐng)進(jìn)行審批并提交審批意見(jiàn)和審批結(jié)果進(jìn)行記錄;并在被借設(shè)備歸還時(shí)進(jìn)行歸還操作;管理員還可以對(duì)設(shè)備的維修信息記錄并可以查看歷史維修記錄,通過(guò)本系統(tǒng),管理員可以進(jìn)行各類數(shù)據(jù)的統(tǒng)計(jì)、報(bào)表,方便為管理者提供有價(jià)值的信息。系統(tǒng)具有數(shù)據(jù)安全準(zhǔn)確、界面友好、操作簡(jiǎn)潔、便于維護(hù)和升級(jí)等特點(diǎn)。
2.2 系統(tǒng)開(kāi)發(fā)工具簡(jiǎn)介
該系統(tǒng)在Windows7操作系統(tǒng)上,采用SSH框架來(lái)完成整個(gè)系統(tǒng)的開(kāi)發(fā),用MySQL作為后臺(tái)數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)信息,MyEclipse作為開(kāi)發(fā)工具。SSH即Struts2+Spring+Hibernate。Struts2是基于MVC模式的一種框架,對(duì)Model層、View層、Control層都提供了相應(yīng)的組件;Spring是一種輕量級(jí)的控制反轉(zhuǎn)和面向切面的容器框架,解決了企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性的問(wèn)題[1]。MySQL是為人們普遍應(yīng)用的中型關(guān)系型數(shù)據(jù)庫(kù),它提供的數(shù)據(jù)類型與Java中的數(shù)據(jù)類型基本相吻合,避免了不少繁瑣的類型之間的轉(zhuǎn)換問(wèn)題,為本系統(tǒng)的數(shù)據(jù)的管理和維護(hù)提供了方便。Hibernate是對(duì)象關(guān)系映射框架,可以應(yīng)用在任何能用到JDBC的場(chǎng)合,扮演著數(shù)據(jù)持久化的角色[2]。系統(tǒng)具有數(shù)據(jù)安全準(zhǔn)確、操作簡(jiǎn)潔、界面有好、便于維護(hù)和升級(jí)等特點(diǎn)。
3 系統(tǒng)的總體功能框架設(shè)計(jì)(The general design of
the system)
根據(jù)系統(tǒng)需求分析,可以將實(shí)驗(yàn)室設(shè)備管理系統(tǒng)分為兩個(gè)主要模塊,分別介紹如下。
3.1 管理員模塊
在這個(gè)模塊中,主要實(shí)現(xiàn)的是管理員利用系統(tǒng)對(duì)普通的用戶和實(shí)驗(yàn)室設(shè)備進(jìn)行管理,詳細(xì)的操作有:對(duì)本用戶進(jìn)行修改密碼;對(duì)注冊(cè)用戶進(jìn)行停用和恢復(fù)密碼;對(duì)設(shè)備類型進(jìn)行管理;對(duì)設(shè)備進(jìn)行管理;對(duì)用戶發(fā)出的借用申請(qǐng)進(jìn)行審批;設(shè)備維修管理。具體的功能框架如圖1所示。
3.2 注冊(cè)用戶模塊
在本模塊中,主要實(shí)現(xiàn)的是注冊(cè)用戶操作本系統(tǒng)借用設(shè)備,具體操作有:注冊(cè)用戶可以自行修改本用戶的密碼;注冊(cè)用戶可以對(duì)設(shè)備發(fā)出借用申請(qǐng);注冊(cè)用戶可以查看申請(qǐng)結(jié)果;注冊(cè)用戶可以查看借用歷史。具體的功能框架如圖2所示。
4 數(shù)據(jù)庫(kù)設(shè)計(jì)(The design of database)
根據(jù)系統(tǒng)的設(shè)計(jì)要求,系統(tǒng)應(yīng)該保存設(shè)備相關(guān)信息,管理員信息和使用者信息,為滿足各項(xiàng)功能的需要,系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)如下。
4.1 管理員信息與學(xué)生信息設(shè)計(jì)
學(xué)生信息表即用戶表,系統(tǒng)的設(shè)定本為學(xué)生對(duì)實(shí)驗(yàn)室設(shè)備進(jìn)行借用、歸還等操作,所以用戶表即為學(xué)生表。管理員信息表是專門存放管理員登陸信息的數(shù)據(jù)表。具體數(shù)據(jù)結(jié)構(gòu)如下:學(xué)生表(t_student)=<學(xué)生編號(hào)(id),學(xué)生姓名(name),學(xué)生性別(sex),學(xué)號(hào)(stuId),登錄名(loginName),登錄密碼(loginPw)>。管理員表=<編號(hào)(id),用戶名(username),密碼(password)>。
說(shuō)明:學(xué)生編號(hào)與學(xué)號(hào)不同,學(xué)生編號(hào)僅僅是為了作為數(shù)據(jù)表中主鍵的,區(qū)分其他字段的唯一標(biāo)識(shí)的存在。表中除了學(xué)生的基本信息外還有作為用戶信息的登錄名和登錄密碼,也保存在表中。
4.2 設(shè)備類型設(shè)計(jì)
為了方便對(duì)設(shè)備進(jìn)行管理,系統(tǒng)設(shè)計(jì)了設(shè)備類型管理功能,設(shè)備類型表用于存放各個(gè)設(shè)備的類型信息:設(shè)備類型表(t_type)=<類型編號(hào)(id),類別名稱(typeName)>。
4.3 設(shè)備信息設(shè)計(jì)
設(shè)備信息表=<編號(hào)(id),設(shè)備類型(typeId),設(shè)備編號(hào)(deviceId),設(shè)備描述(description),購(gòu)買時(shí)間(time),狀態(tài)(state)>。
說(shuō)明:設(shè)備信息表用于保存設(shè)備信息,編號(hào)和設(shè)備編號(hào)不同,編號(hào)是邏輯上表的主鍵,唯一標(biāo)識(shí),而設(shè)備編號(hào)是對(duì)應(yīng)到每一臺(tái)設(shè)備上的物理上的對(duì)設(shè)備進(jìn)行區(qū)分的標(biāo)號(hào);設(shè)備類型作為外鍵,保存設(shè)備類型表中的主鍵,狀態(tài)用來(lái)保存設(shè)備當(dāng)前的狀態(tài),例如:空閑、借出、維修中等。
4.4 設(shè)備申請(qǐng)、借用與維修設(shè)計(jì)
設(shè)備申請(qǐng)表=<編號(hào)(id),申請(qǐng)人(stuId),申請(qǐng)?jiān)O(shè)備(devId),申請(qǐng)時(shí)間(applyTime),審批時(shí)間(approveTime),審批意見(jiàn)(opinion)>。設(shè)備借用表=<編號(hào)(id),申請(qǐng)人(stuId),申請(qǐng)?jiān)O(shè)備(devId),借用時(shí)間(borrowTime),歸還時(shí)間(returnTime),是否損壞(isBroken),賠償金額(compensation),備注(remark)>。設(shè)備維修表=<編號(hào)(id),維修設(shè)備(devId),維修時(shí)間(serviceTime),維修內(nèi)容(content),維修人(serviceman),維修金額(payment),備注(remark)>。
說(shuō)明:設(shè)備申請(qǐng)表是管理員用戶在后臺(tái)處理設(shè)備借用申請(qǐng)時(shí)用到的表,其中申請(qǐng)人和申請(qǐng)?jiān)O(shè)備分別為學(xué)生表和設(shè)備表的主鍵,在此表中作為聯(lián)合外鍵。設(shè)備借用表中的申請(qǐng)人和申請(qǐng)?jiān)O(shè)備與其同理。設(shè)備借用表中需要存放設(shè)備的狀態(tài),即用戶歸還設(shè)備時(shí),管理員需查看設(shè)備是否損壞,并確定相應(yīng)的賠償金額。如果設(shè)備有所損壞,則在維修表中增加一條記錄,記錄設(shè)備維修的相關(guān)信息。
5 系統(tǒng)重要功能的具體實(shí)現(xiàn)(The concrete realization
of the important function of the system)
本系統(tǒng)采用的SSH框架,其中Hibernate起到的作用就是數(shù)據(jù)持久化,通過(guò)在代碼中添加注解的方式實(shí)現(xiàn)。這種形式的Hibernate通過(guò)訪問(wèn)JavaBean能自動(dòng)生成較為合理,清晰的數(shù)據(jù)表。Hibernate使用的hql語(yǔ)言也是針對(duì)Java類而不是數(shù)據(jù)庫(kù)表的,所以使用起來(lái)也會(huì)比sql語(yǔ)句方便、有效。
5.1 系統(tǒng)的業(yè)務(wù)邏輯層實(shí)現(xiàn)
實(shí)驗(yàn)設(shè)備管理要求:管理員可以添加設(shè)備分類并根據(jù)設(shè)備分類進(jìn)行添加設(shè)備信息,管理員可以查看、修改和刪除設(shè)備信息,設(shè)備信息查詢的結(jié)果包括設(shè)備編號(hào)、設(shè)備名稱、設(shè)備類型、購(gòu)買時(shí)間、設(shè)備狀態(tài)。當(dāng)用戶對(duì)設(shè)備發(fā)出借用申請(qǐng)時(shí),管理員可以處理該申請(qǐng),或同意,或不同意,如果管理員同意用戶的借用申請(qǐng),則應(yīng)在系統(tǒng)內(nèi)進(jìn)行登記操作,此時(shí)該設(shè)備的狀態(tài)將變?yōu)椤耙淹饨琛?。?dāng)用戶歸還設(shè)備時(shí),管理員應(yīng)查看設(shè)備的損壞程度,開(kāi)出相應(yīng)的賠償金額并在系統(tǒng)內(nèi)進(jìn)行歸還操作。管理員可以錄入維修損壞的的設(shè)備信息和查看某個(gè)設(shè)備的歷史維修記錄。
5.2 系統(tǒng)的數(shù)據(jù)訪問(wèn)層實(shí)現(xiàn)
該層主要通過(guò)Hibernate配合Dao來(lái)實(shí)現(xiàn)。數(shù)據(jù)庫(kù)訪問(wèn)層是為業(yè)務(wù)邏輯層提供數(shù)據(jù)服務(wù),通過(guò)訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù),進(jìn)行加工,來(lái)實(shí)現(xiàn)系統(tǒng)各個(gè)功能模塊對(duì)數(shù)據(jù)的需求。
5.3 系統(tǒng)表示層實(shí)現(xiàn)
視圖層是通過(guò)前端web的形式實(shí)現(xiàn)系統(tǒng)和用戶之間的交互,主要表現(xiàn)形式為JSP頁(yè)面。以下展“管理員功能模塊”主要實(shí)現(xiàn)的功能和主要代碼。
“管理員功能模塊”包括用戶管理、設(shè)備類型管理、設(shè)備管理模塊、設(shè)備借用管理模塊、設(shè)備維修管理模塊五個(gè)部分。以下展示用戶管理模塊、設(shè)備類型管理模塊和設(shè)備管理模塊的功能和控制層代碼。
5.3.1 用戶管理模塊
在后臺(tái)主頁(yè)面上可以看到“用戶信息管理”標(biāo)簽,點(diǎn)擊該標(biāo)簽,列出所有用戶,包括管理員用戶和普通用戶,管理員可以通過(guò)每個(gè)用戶所在行的后面的兩個(gè)按鈕實(shí)現(xiàn)凍結(jié)用戶和初始化用戶密碼的功能,其中初始化用戶密碼是將該用戶的密碼初始化為“111111”,實(shí)現(xiàn)代碼如下:
public String pwChange(){
String sql="update TStudent set loginPw='111111'where id="+id;
TStudentDao.getHibernateTemplate().bulkUpdate(sql);
this.setMessage("密碼初始化成功");
this.setPath(studentMana.action);
return"succeed";
}
5.3.2 設(shè)備類型管理模塊
在后臺(tái)主頁(yè)面上點(diǎn)擊“設(shè)備類型管理”標(biāo)簽則列出所有設(shè)備類型,管理員可以對(duì)設(shè)備類型進(jìn)行新增、修改、刪除操作,以下代碼實(shí)現(xiàn)設(shè)備類型的新增功能:
public String typeAdd(){
type.setDel("no");
TTypeDao.save(type);
this.setMessage("類型添加成功");
this.setPath("typeMana.action");
return"succeed";
}
5.3.3 設(shè)備管理模塊
在后臺(tái)主頁(yè)上點(diǎn)擊“實(shí)驗(yàn)設(shè)備管理”標(biāo)簽則列出所有實(shí)驗(yàn)設(shè)備,與設(shè)備類型管理模塊相似,管理員可以對(duì)設(shè)備進(jìn)行新增、修改、刪除操作,以下為查看設(shè)備列表主要代碼:
Session sqlSession=TDeviceDao.getSessionFactory().openSession();
SQLQuery sqlQuery=sqlSession.createSQLQuery(sql);
List objList=sqlQuery.list();
for(Object obj:objList){
TDevice device=new TDevice();
device.setId((Integer)obj[0]);
device.setDeviceId((String)obj[1]);
device.setDescription((String)obj[2]);
device.setTime((String)obj[3]);
device.setStrType((String)obj[4]);
device.setStrState((String)obj[5]);
device.setState((Integer)obj[6]);
deviceList.add(device);
}
sqlSession.close();
request.setAttribute("deviceId",deviceId);
request.setAtrribute("deviceName",deviceName);
request.setAttribute("deviceList",deviceList);
return"deviceQuery";
6 結(jié)論(Conclusion)
本論文設(shè)計(jì)的實(shí)驗(yàn)室設(shè)備管理系統(tǒng),對(duì)于任何實(shí)驗(yàn)室均可用。為實(shí)驗(yàn)室管理員提供了高效、省時(shí)、便利的管理方式。該實(shí)驗(yàn)室設(shè)備管理系統(tǒng)主要包括了用戶登錄、設(shè)備錄入、設(shè)備管理、設(shè)備分類管理等模塊,主要實(shí)現(xiàn)對(duì)設(shè)備的高效管理。系統(tǒng)的設(shè)計(jì)便于后期的維護(hù)與升級(jí)[3]。
參考文獻(xiàn)(References)
[2] BruceEckel.Java編程思想[M].北京:機(jī)械工業(yè)出版社,2003.
[1] 孫衛(wèi)琴,李洪成.Tomcat與Java Web開(kāi)發(fā)技術(shù)詳解[M].北京:電
子工業(yè)出版社,2003.
[3] 孫涌.現(xiàn)代軟件工程[M].北京:北京希望電子出版社,2003.
作者簡(jiǎn)介:
趙相宇(1990-),男,本科生.研究領(lǐng)域:軟件開(kāi)發(fā).
劉 燕(1963-),女,碩士,教授.研究領(lǐng)域:數(shù)據(jù)挖掘,算法
設(shè)計(jì).
王金玲(1971-),女,碩士,副教授.研究領(lǐng)域:數(shù)據(jù)庫(kù)技術(shù).