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