李天賜,田精白
?
基于SSH框架衛(wèi)生科技成果申報系統(tǒng)的設(shè)計與實現(xiàn)
李天賜,田精白
(湖北工業(yè)大學計算機學院,湖北 武漢 430068)
為了提高科技成果申報工作的效率,設(shè)計并實現(xiàn)一款基于SSH框架的衛(wèi)生科技成果申報管理JavaWeb系統(tǒng)。衛(wèi)生科技成果申報系統(tǒng)實現(xiàn)了對申報信息的增刪改插,信息對比等功能,擁有清晰的分類,便捷的操作等特點。
SSH;科技成果申報;JavaWeb;管理系統(tǒng)
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,Web應(yīng)用得到了廣泛的使用,其中日常辦公也在信息化發(fā)展的影響下效率不斷提高。在傳統(tǒng)的衛(wèi)生科技成果申報流程中有著過程比較繁瑣、人員分布分散的特點導致申報效率較低、信息量較大等問題。因此采用一種信息化的方式代替原始的科技成果申報流程是勢在必行的。
在對衛(wèi)生科研系統(tǒng)進行需求分析前,開發(fā)團隊需要進行需求獲取。通過對系統(tǒng)的使用者的采訪,系統(tǒng)流程的記錄,需求分析人員需要對采訪和記錄文檔進行需求分析。
為了更好的分析系統(tǒng)需要實現(xiàn)的功能以及用戶功能權(quán)限和使用過程,描繪如圖2的系統(tǒng)用例圖。
(1)登錄:在登錄時,系統(tǒng)要判別用戶的種類。在登錄界面,可以設(shè)計三個不同的登錄入口或者一個選擇用戶登錄類型的下拉框。
(2)查看個人信息:利用機構(gòu)編號在個人信息表中查找即可,但需要注意的是個人信息表的部分信息可以修改。
(3)修改密碼:用戶需要輸入原始密碼和兩次新密碼,如果正確則返回登錄界面重新登陸,如果錯誤則提示修改失敗。
(4)錄入、修改信息:因為錄入和修改是市縣屬機構(gòu)的功能,所以要利用Struts2技術(shù)對其他用戶進行攔截。對于每一個科技成果申報的項目都有對應(yīng)數(shù)據(jù)庫表,也在代碼中對應(yīng)有JavaBean,在前端代碼中只需要利用面向?qū)ο蠹夹g(shù)把數(shù)值存儲到對象中,最后把對象傳到后臺的邏輯業(yè)務(wù)處理代碼中以實現(xiàn)存儲或修改。
圖1 系統(tǒng)功能圖
圖2 系統(tǒng)用例圖
(5)導出信息:根據(jù)用戶不同的需求從數(shù)據(jù)庫中取出相應(yīng)的數(shù)據(jù),利用Apache Poi技術(shù)進行業(yè)務(wù)處理后輸出Excel表格。
(6)信息對比:因為此功能是只有部省屬機構(gòu)擁有,所以需要設(shè)計相應(yīng)的過濾器。根據(jù)不同的查詢條件查詢出不同的數(shù)據(jù),然后存放在對象中進行運算處理,再根據(jù)JavaScript技術(shù)把數(shù)據(jù)顯示到前端界面上。
(7)添加修改個人登陸賬號和密碼:類同于錄入修改信息功能,也因是管理員獨有功能,設(shè)計出相應(yīng)的過濾器。
通過功能分析,開發(fā)人員發(fā)現(xiàn)在系統(tǒng)中需要進行很多申報信息表的查詢。本系統(tǒng)采用的是經(jīng)典的SSH框架,其中的hibernate的持久化技術(shù)可以很好的解決頻繁訪問數(shù)據(jù)庫的問題。Struts2框架使得系統(tǒng)層次分離,提高開發(fā)效率;Spring框架使得系統(tǒng)“高內(nèi)聚,低耦合“,增強系統(tǒng)的可擴展性。
數(shù)據(jù)庫設(shè)計在系統(tǒng)設(shè)計開發(fā)前,一定要經(jīng)過相關(guān)范式和理論的檢驗以確保設(shè)計的準確性。在數(shù)據(jù)庫實現(xiàn)時,系統(tǒng)需要確保把實體上的屬性對應(yīng)到數(shù)據(jù)庫表的每個表項中。以市縣屬機構(gòu)為例,市縣屬機構(gòu)的屬性有機構(gòu)編號、機構(gòu)名稱、所在市、所在縣、詳細地址、機構(gòu)網(wǎng)址、聯(lián)系人、聯(lián)系人電話、機構(gòu)郵箱、機構(gòu)所有制、機構(gòu)類別、機構(gòu)等級12個表項。市縣屬機構(gòu)詳細實體屬性如圖3所示,數(shù)據(jù)庫表如表1所示。
圖3 市縣屬機構(gòu)實體圖
其中對市縣屬機構(gòu)的外鍵city是對應(yīng)著cityinfo表的主鍵city_num。在cityinfo表中每一個city_num對應(yīng)著一個city_name。當市區(qū)名需要變化時,只需要修改數(shù)據(jù)庫表中city_name即可完成修改相關(guān)市區(qū)名,降低了后期人員修改的難度。市縣機構(gòu)屬性中所在縣,機構(gòu)所有制,機構(gòu)類別,機構(gòu)等級也是采用類似的解決方案。
表1 市縣屬機構(gòu)數(shù)據(jù)庫表
Tab.1 City and county organization entity diagram
為了厘清在三個實體(市縣屬機構(gòu),部省屬機構(gòu),管理員)的交互關(guān)系,并設(shè)計相應(yīng)數(shù)據(jù)庫表的字段,設(shè)計出如圖4的系統(tǒng)E-R圖。
在系統(tǒng)實現(xiàn)上,根據(jù)需求分析的結(jié)果進行數(shù)據(jù)庫設(shè)計、功能設(shè)計,之后需要實現(xiàn)SSH框架的搭建和接口設(shè)置以及數(shù)據(jù)庫建立表格且錄入相關(guān)數(shù)據(jù)。前端頁面利用JSP,CSS,JavaScript,JQuery,EL表達式,bootstrap,JSON實現(xiàn)界面美化。用戶通過JSP頁面和SSH框架系統(tǒng)的業(yè)務(wù)處理技術(shù)訪問MySQL數(shù)據(jù)庫數(shù)據(jù)。以下是對部省屬機構(gòu)的信息對比功能進行簡單的實現(xiàn)描述:
圖4 系統(tǒng)E-R圖
目標:需要把兩個不同市所有機構(gòu)的所有關(guān)于“人員知識結(jié)構(gòu)基本情況”信息進行整合對比。
思路:首先是對兩個不同市搜索出對應(yīng)的所有機構(gòu),對每個機構(gòu)進行搜索,查找出每個機構(gòu)中“人員知識結(jié)構(gòu)基本情況”的信息,然后把相同市的機構(gòu)信息對應(yīng)著相同屬性進行累加即可。按照以上思路寫出相應(yīng)的SQL語句,即FSQL。根據(jù)SQL查詢語句把對應(yīng)的數(shù)據(jù)存放在Query類型的對象q 中。再把查詢到的數(shù)據(jù)放入到List對象Flist中,依據(jù)Flist.size()進行for循環(huán)把相關(guān)數(shù)據(jù)進行累加計算。在for循環(huán)中首先是把List中的對象取出來并強制轉(zhuǎn)換為Object對象的數(shù)組,從Object的數(shù)組中取出對象利用get()方法取出相應(yīng)的數(shù)據(jù)進行計算。具體代碼如下
DAO層:Query q = session.createQuery(FSQL);
List Flist = q.list();
Service層:for(int i = 0; i Object[] obj =(Object[])Flist.get(i); FdoctorFtsum += ((Institutioninfo)obj[1]).getdoctorFt (); //…還有許多屬性省略} 其中Stinvestment表示對應(yīng)著所有“人員知識結(jié)構(gòu)基本情況”的數(shù)據(jù)庫表,Institutioninfo表是對應(yīng)著所有“機構(gòu)的基本信息”的數(shù)據(jù)庫表。 實現(xiàn):在用戶輸入比較數(shù)據(jù)并點擊對比后,系統(tǒng)根據(jù)JSP頁面所提交的表單中獲取到的show_ findCompare.action找到Service層中相關(guān)的Show-Action包中的findCompare()方法。FindCompare()調(diào)用由CompareServiceImpl類實現(xiàn)的CompareSer-vice類接口中的方法。CompareServiceImpl類調(diào)用由CompareDaompl類實現(xiàn)的CompareDao。Com-pareDaompl類依托hibernate技術(shù)對數(shù)據(jù)庫進行訪問,把訪問到的數(shù)據(jù)傳送回Service層進行業(yè)務(wù)邏輯再傳送回到Action層。在控制層處理對比數(shù)據(jù)后,將處理后的數(shù)據(jù)發(fā)送到前端頁面JSP中,再依據(jù)EL表達式顯示數(shù)據(jù)。登錄圖如5,對比效果如圖6所示。 圖5 系統(tǒng)登錄界面 圖6 系統(tǒng)對比功能圖 在系統(tǒng)開發(fā)前需要進行軟件工程的需求分析,概要設(shè)計,詳細設(shè)計。在完成編碼過程后要根據(jù)軟件需求進行軟件測試再投入使用。軟件測試是要以較少的時間,人力和樣例來測試出系統(tǒng)可能存在的缺陷或者問題。本系統(tǒng)的軟件測試方法是以黑盒測試為主,白盒測試為輔。以需要輸入的數(shù)字文本框為例,對其測試需要進行測試輸入數(shù)字,空格,字母,字符,長度很長的數(shù)字,不輸入值等情況測試,測試文本框是否能對這些情況做出相應(yīng)的提示或反應(yīng)。除了對輸入數(shù)字的文本框進行測試外,系統(tǒng)還需測試struts2的過濾器是否能夠正常過濾信息,數(shù)據(jù)庫是否能正常地進行增刪改查的功能等。 本文是對一個基于SSH框架的衛(wèi)生科技成果申報系統(tǒng)需求分析,數(shù)據(jù)庫設(shè)計,系統(tǒng)實現(xiàn),系統(tǒng)測試的介紹。本系統(tǒng)實現(xiàn)了申報信息的增刪改查,信息比對等功能,對實際開發(fā)衛(wèi)生科技成果申報系統(tǒng)提供相應(yīng)的參考。但是不同的機構(gòu)有著不同的需求,所以具體分析情況應(yīng)結(jié)合具體機構(gòu)實際情況進行分析,從而做出與其機構(gòu)相應(yīng)情況符合的系統(tǒng)。本文對衛(wèi)生科技成果申報系統(tǒng)開發(fā)提供了相應(yīng)的思路,方便程序員更好地開發(fā)項目。 [1] 李福榮, 吳海濤. 基于AOP的衛(wèi)生科技成果申報系統(tǒng)的設(shè)計與實現(xiàn). 電子設(shè)計工程. 2016(7): 8-3. [2] 符宇航, 鄭宗良, 曾莉. 基于Web的科研項目管理系統(tǒng)的設(shè)計與實現(xiàn). 電腦知識與技術(shù). 2016(27), 80-2. [3] 朱亞玲, 張睿敏, 李曉斌. 基于SSH架構(gòu)的企業(yè)信息 管理平臺的設(shè)計及實現(xiàn). 工業(yè)儀表與自動化裝置. 2016(5), 26-3. [4] 林莉莉. 基于SSH框架的論壇信息管理系統(tǒng)管理系統(tǒng)的設(shè)計. 科技資訊. 2016(10a), 11-2. [5] 余甜, 蔡文. 一種基于Web Service和SSH的網(wǎng)絡(luò)管理系統(tǒng)設(shè)計與實現(xiàn).軟件開發(fā)與應(yīng)用. 2017(15), 65-5. [6] 劉肖崢. Java SSH架構(gòu)在Java Web中的應(yīng)用.信息記錄材料. 2017(9), 152-2. [7] 袁立. 基于MVC模式SHH2框架的教研項目管理系統(tǒng)設(shè)計與實現(xiàn). 電腦編程技巧與維護. 2017(2), 48-5. [8] 歐陽宏基, 葛萌. 基于Struts2與Hibernate框架的Java Web應(yīng)用研究. 計算機應(yīng)用. 2016(2), 48-5. Design and Implementation of Health Science and Technology Declaration System Based on SSH Framework LI Tian-ci, TIAN Jing-bai (Hubei University Of Technology Computer College, Hubei Wuhan, 430068) In order to improve the efficiency of declaring scientific and technological achievements, we designed and implemented a health science and technology declaration management JavaWeb system based on the SSH framework. The health science and technology declaration system has realized the functions of adding and deleting the declaration information, the information comparison and so on, it also has the characteristics of clear classification and convenient operation. SSH; Declaration of scientific and technological achievements; Java web; Management system TP311.52 A 10.3969/j.issn.1003-6970.2018.07.017 李天賜(1997-),男,本科在讀,研究方向:軟件工程(Javaweb開發(fā));田精白(1982-),男,博士,研究方向:軟件需求工程。 本文著錄格式:李天賜,田精白. 基于SSH框架衛(wèi)生科技成果申報系統(tǒng)的設(shè)計與實現(xiàn)[J]. 軟件,2018,39(7):84-884 系統(tǒng)測試
5 結(jié)語