版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 畢業(yè)設計(論文)</b></p><p> 基于MVC模式的人力資源管理系統(tǒng)</p><p><b> 的設計與實現(xiàn)</b></p><p> 學 生 姓 名 </p><p> 指 導 教 師 禹
2、 </p><p> 專 業(yè) 計算機科學與技術 </p><p> 學 院 計算機與信息工程學院 </p><p> 2009年 6月15 日</p><p> 畢業(yè)設計(論文)任務書</p><p><b> 摘 要<
3、/b></p><p> 在MVC架構基礎上構建人力資源管理系統(tǒng)。主要研究了人力資源管理系統(tǒng)的設計和實現(xiàn),采用瀏覽器/服務器(B/S)模式,開發(fā)工具采用MyEclips5.5,數據庫采用Oracle 9i。高效地實現(xiàn)了人力資源管理系統(tǒng)的各項功能,具有對人事檔案管理、人事調配管理、教育培訓和系統(tǒng)管理的功能。首先研究人力資源管理系統(tǒng)的開發(fā)的背景和需求分析,接著對系統(tǒng)進行總體設計,數據庫設計,然后進行模塊劃分,
4、分模塊完成詳細設計的內容,最后介紹系統(tǒng)的測試和運行。</p><p> 關鍵詞:人力資源管理;MVC;JSP;Oracle 9i</p><p><b> Abstract</b></p><p> The human resources management system is built on the MVC framework. M
5、ajor design and implementation of human resources management system, were using browser / server (B / S) model, MyEclips5.5 as development tools, and Oracle 9i as database. Efficiently achieve the management of human res
6、ources and various functions of the system with the management of personnel files, personnel deployment management, education and training, and system management functions. First of all, human resources managem</p>
7、<p> Key Words:Human Resources Management ; MVC; JSP;Oracle 9i</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</p><p>
8、 1緒 論1</p><p> 1.1項目背景1</p><p> 1.2項目內容1</p><p> 1.3系統(tǒng)的開發(fā)意義2</p><p> 1.4項目設計原則2</p><p><b> 2需求分析3</b></p><p>
9、 2.1 功能需求3</p><p> 2.2軟硬件環(huán)境3</p><p> 2.2.1硬件環(huán)境3</p><p> 2.2.2軟件環(huán)境4</p><p> 3系統(tǒng)概要設計5</p><p> 3.1系統(tǒng)功能流程及說明5</p><p> 3.1.1系統(tǒng)功
10、能流程圖5</p><p> 3.1.2系統(tǒng)功能流程說明6</p><p> 3.2數據庫概要設計6</p><p> 4系統(tǒng)詳細設計10</p><p> 4.1功能模塊劃分10</p><p> 4.2功能子模塊設計10</p><p> 4.2.1教育培
11、訓管理10</p><p> 4.2.2系統(tǒng)管理11</p><p> 4.3數據庫表的設計12</p><p><b> 5系統(tǒng)實現(xiàn)17</b></p><p> 5.1教育培訓管理模塊17</p><p> 5.2系統(tǒng)管理模塊24</p><
12、p><b> 6系統(tǒng)測試28</b></p><p> 6.1測試的定義及目的28</p><p> 6.2測試步驟28</p><p><b> 7系統(tǒng)運行31</b></p><p> 7.1數據庫安裝31</p><p> 7.2
13、系統(tǒng)部署32</p><p> 7.3登錄系統(tǒng)33</p><p><b> 結 論35</b></p><p><b> 參考文獻36</b></p><p><b> 致 謝37</b></p><p><b>
14、 附 錄38</b></p><p><b> 緒 論</b></p><p><b> 項目背景</b></p><p> 所謂人力資源管理,就是指運用現(xiàn)代化的科學方法,對與物力相結合的人力進行合理的培訓、組織和調配,使人力、物力經常保持最佳比例,同時對人的思想、心理和行為進行恰當的誘導、控
15、制和協(xié)調,充分發(fā)揮人的主觀能動性,使人盡其才,事得其人,人事相宜,以實現(xiàn)組織目標。隨著“知識經濟”時代的到來,人力資源管理因與人的密切聯(lián)系使其重要性日顯突出。應該看到,企業(yè)管理已經從強調對物的管理轉向對人的管理,這是競爭加劇的結果。無論是管理領域的擴大,還是現(xiàn)有管理的提升,人力資源是基礎、是前提、是根本[1]。</p><p> 人力資源管理系統(tǒng)是一個企業(yè)單位不可缺少的部分,是適應現(xiàn)代企業(yè)制度,推動企業(yè)人力資源
16、管理走向科學化、規(guī)范化、自動化的必要條件。人力資源管理系統(tǒng)應該能夠為用戶提供充足的信息和快捷的查詢手段,以幫助企業(yè)領導了解企業(yè)現(xiàn)有的人力資源狀況。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在許多缺點,如:效率低、安全性差、時間一長就會產生大量的文件和數據積壓,這對于查找、更新和維護都帶來了不少的困難[2]。因此,為了加快企業(yè)的信息化步伐,提高企業(yè)的管理水平以在激烈的社會競爭中立于不敗之地,建設和完善人力資源管理系統(tǒng)已經
17、變得十分必要和迫切。</p><p> EHR,是指人力資源管理電子信息化,提高效率是EHR的根本目的,人力資源管理的E-HR化,可以使我們在轉變管理觀念的同時,減少平常事務性作業(yè)對于人力資源管理策略上的羈絆,真正使人力資源管理成為企業(yè)的戰(zhàn)略伙伴,成為管理決策支持者,為決策提供解決方案。 </p><p><b> 項目內容</b></p><
18、;p><b> 項目分為四大模塊:</b></p><p> (1)人事檔案管理:包括人員基本信息,檔案,履歷,合同,獎懲信息和人員結構等;</p><p> (2)人事調配管理:包括員工調配,新增員工,支撐評定人員離退和工資等級等;</p><p> (3)教育培訓管理:包括培訓類別,培訓記錄,培訓人員,培訓成績和培訓證書等;&
19、lt;/p><p> (4)系統(tǒng)管理:包括用戶信息管理,角色管理,職位管理和部門管理等。</p><p><b> 系統(tǒng)的開發(fā)意義</b></p><p> 全球范圍內的企業(yè)內部組織正在發(fā)生巨變,未來企業(yè)成功的關鍵的依靠企業(yè)人力資源,人才之爭已經成為市場競爭中的核心內容之一,以人為本成為企業(yè)立足和發(fā)展的根本。有效力管理企業(yè)的人力資源,為企業(yè)提
20、供強有力的儲備力量,使之成為企業(yè)發(fā)展的主動力。通過人力資源的有效管理,掌握最新的、準確的企業(yè)人力資源信息,并對其進行復雜的統(tǒng)計與分析,從而充分發(fā)揮每個員工的潛能,為企業(yè)創(chuàng)造更大的價值。</p><p> 網絡化的今天,網絡人力資源管理系統(tǒng),使新的人力資源協(xié)作管理模式成為可能。通過網絡管理系統(tǒng),專門的人力資源管理人員可以提高自身的工作效率,作好人力資源管理的協(xié)調工作,提高人力資源利用率;通過網絡管理系統(tǒng),員工可以
21、直接管理自己的技能,有效地發(fā)現(xiàn)和挖掘自身的潛能,及時與自己的上級、下屬、同事進行的溝通與交流,同心協(xié)作,積極為企業(yè)的發(fā)展與決策貢獻力量。通過網絡人力資源管理系統(tǒng)對企業(yè)人力資源進行管理,使企業(yè)人力資源管理適應時代的發(fā)展要求,大大提高了企業(yè)的核心競爭力。</p><p> 當人類正在向知識經濟新時代邁進的時候,信息網絡化的發(fā)展步伐也越加迅猛,隨著中國加入WTO,中國經濟不可避免地要面對經濟全球化的挑戰(zhàn),巨大的競爭壓
22、力使得中國的企業(yè)將無法去慢慢解決員工的意識與素質問題,我們的企業(yè)在經營管理能力上急需的是一種跨越式提升,它要求我們必須以全新的視角來重新認識人力資源在企業(yè)中的作用。而解決這一問題的最佳途徑是建立現(xiàn)代企業(yè)的人力資源管理系統(tǒng),它的實施將會推動企業(yè)的全面人力資源管理[3]。</p><p><b> 項目設計原則</b></p><p> ?。?)實用性原則 充分考慮到在
23、人力資源管理中可能遇到的種種問題,盡量全面的做好需求分析,以減少日后更新軟件的次數。</p><p> (2)經濟性原則 建立適合企業(yè)自身需求的網絡平臺,提供廣泛的涵蓋用戶多種需求的功能,數據處理方式靈活可以滿足需求,節(jié)省網站建設成本,并確保其較好的拓展性和開放性;同時網站具有基于WEB界面的管理后臺,能夠自主的對網站中大部分內容作更新、修改操作,節(jié)省了企業(yè)網站的運營成本,提高了信息更新、傳播效率。</p
24、><p> ?。?)擴充性原則 網站的整體規(guī)劃及框架設計是具可擴充性的,前臺頁面的設計能保證網站在增加欄目后不會破壞網站的整體結構。后臺數據庫的設計具有高度的擴充性,能夠根據需要對欄目、類別的增、刪、修改。</p><p><b> 需求分析</b></p><p><b> 2.1 功能需求</b></p>
25、<p><b> ?。?)人員檔案管理</b></p><p> 主要目的建立符合公司組織機構的組織模型和完整人事檔案庫,記錄一定范圍內的職工和雇工的檔案信息,并且這些信息可以和績效考核的成績關聯(lián),方便存檔和查詢。系統(tǒng)重點圍繞數據維護、查詢和分析便捷的要求,并通過關鍵業(yè)務節(jié)點的業(yè)務流程化,提高 HR業(yè)務的處理效率。 </p><p><b>
26、 (2)人事調配管理</b></p><p> 維護人事調動相關信息。針對人事調動(調入、調出)、內部調動、晉升、降職等人事變動業(yè)務的處理和查詢。查詢員工職稱證書信息。對員工職稱信息按照取得時間排序,可可以按員工姓名、編號等信息查找員工??梢愿鶕毠ざ▎T、缺員信息及員工職稱信息,對員工崗位進行調配。根據員工年度職稱評定信息和年度考核結果,確定員工職稱信息是否有效,只有有效的職稱才可以被聘任,同一時
27、間只有一種職稱被聘任。對員工人事調動信息按照時間排序,可以對每個員工人事調配信息進行增加、刪除、編輯操作??梢园磫T工姓名、編號等信息查找員工。 </p><p><b> (3)教育培訓管理</b></p><p> 滿足公司對員工崗前、在職培訓及學歷(學位)教育等多種形式的培訓模式,通過信息平臺進行教育培訓檔案的建立、修改維護;培訓信息發(fā)布等工作。</p&
28、gt;<p> ?。?)系統(tǒng)管理主要實現(xiàn)系統(tǒng)管理員進行后臺管理的模塊,包括組織管理、安全控制[4]。</p><p><b> 軟硬件環(huán)境</b></p><p><b> 硬件環(huán)境</b></p><p> 系統(tǒng)硬件配置需求,如表2-1。</p><p><b>
29、表2-1 硬件需求</b></p><p><b> 軟件環(huán)境</b></p><p> 系統(tǒng)軟件配置需求,如表2-2。</p><p> 表 2-2 軟件需求</p><p><b> 系統(tǒng)概要設計</b></p><p><b> 系統(tǒng)功能
30、流程及說明</b></p><p><b> 系統(tǒng)功能流程圖</b></p><p> 系統(tǒng)功能流程如圖3-1:</p><p> 圖3-1 系統(tǒng)功能流程圖</p><p><b> 系統(tǒng)功能流程說明</b></p><p> 進入系統(tǒng),以正確的用戶名和
31、密碼登陸后,不同的角色有不同的權限,管理員擁有所有權限,進入檔案管理,可以對人員信息、人員檔案、人員合同、人員結構進行查詢,新增和查詢獎懲記錄及員工履歷。進入人員調配,可以對聘用人員進行新增,查詢和批量續(xù)聘,查詢和調動人員,進行職稱評定,離退員工和查詢離退列表,可以設置員工等級和查看員工工資列表。進入教育培訓管理,可以對培訓類別、培訓記錄、培訓人員、培訓成績、培訓證書進行增刪改查。進入系統(tǒng)管理,在用戶管理中,可以修改密碼和查詢用戶,在職
32、位管理中,可以增加查詢職位,在部門管理中,可以增加部門、查詢部門、管理部門組織結構及部門合并,在角色管理中,可以增加角色和角色查詢。一系列需要操作結束后,退出系統(tǒng)。</p><p><b> 數據庫概要設計</b></p><p> 根據人事調配業(yè)務流程描述和在職人員教育培訓業(yè)務流程描述,我們可以從中抽象出幾個數據集合,如:公司員工(staff),缺職位的部門(d
33、epartment),調配人事的人員即人力資源部,在調配過程中,首先從公司職員里面挑選是否有符合的人員,如果有則從其他部門調入該部門,因此該公司有個(組織機構),如果沒有符合人員則發(fā)布招聘公告。某員工被錄用時,則首先由系統(tǒng)管理員給改員工創(chuàng)建一個賬戶(user),并錄入該員工的信息。員工登錄系統(tǒng)后,員工只能查看、修改自己的基本信息,所以要制定權限管理,該系統(tǒng)角色(role)分為普通用戶、部門經理、系統(tǒng)管理員??紤]到特殊情況的發(fā)生,該角色可
34、以進行編輯。創(chuàng)建新的角色,分配角色的權限(module)等[5]。</p><p> 數據庫表名匯總,如表3-1。</p><p> 表3-1數據庫表明匯總</p><p><b> 續(xù)表</b></p><p> 將需求分析,系統(tǒng)設計中對信息的描述進一步分析并加以總計,抽象出數據集合(數據庫表)[6]。對數據集
35、合做進一步分析,確定集合之間的關系并最終形成數據庫物理模型,以便開發(fā)人員建立物理數據庫。在數據庫中表和表之間會有關聯(lián),有一對一的關系,一對多的關系,多對一的關系,多對多的關系[7]。這些關系在數據庫設計之初就應該分析清楚,本系統(tǒng)的邏輯ER圖如圖3-1,各表之間的外鍵關聯(lián)說明如表3-2。</p><p><b> 圖3-1邏輯ER圖</b></p><p> 表3-
36、2 外鍵關聯(lián)說明表</p><p><b> 續(xù)表</b></p><p><b> 系統(tǒng)詳細設計</b></p><p><b> 功能模塊劃分</b></p><p> 通過需求分析,把系統(tǒng)大體分為四個模塊,如圖4-1:</p><p>
37、圖4-1 系統(tǒng)功能結構圖</p><p><b> 功能子模塊設計</b></p><p><b> 教育培訓管理</b></p><p> 教育培訓管理滿足公司對員工崗前、在職培訓及學歷(學位)教育等多種形式的培訓模式,通過信息平臺進行教育培訓檔案的建立、修改維護;培訓信息發(fā)布等工作,培訓教育管理模塊ER圖如圖4
38、-2。</p><p> 圖4-2 培訓教育管理ER圖</p><p><b> 該模塊主要實現(xiàn):</b></p><p><b> 培訓類別維護</b></p><p> 對教育培訓項目類別維護。包括培訓類別編號,名稱,證書名稱,培訓描述??梢栽黾印h除、修改教育培訓的類別信息。</
39、p><p><b> 培訓記錄</b></p><p> 對教育培訓記錄進行維護。 主要內容包括:培訓類別ID、培訓性質、培訓編號、培訓名稱、培訓開始時間,培訓結束時間,培訓地點、參加人員、主辦單位、培訓方式、負責人姓名、合格分數等信息。 確定培訓教師、課時、費用等信息。</p><p><b> 培訓人員及成績</b>
40、</p><p> 參加教育培訓的培訓人員的成績進行維護,并自動計算考試合計成績,以便對該人員培訓是否合格作出評定。 可以修改教育培訓的培訓人員成績信息,維護培訓合格情況。對培訓合格并可以取得上崗證書的員工,進行培訓證書記錄;并及時將該信息提供給調配管理人員和工資管理人員,以便做出相應的工作調整和工資調整。</p><p><b> 員工證書記錄 </b><
41、/p><p> 對參加其它教育培訓的人員取得證書進行維護,并對參加培訓的人員取得的證書進行補充錄入。 主要信息包括:培訓人員ID、培訓記錄ID、證書名稱、證書號、證書日期、證書電子圖片等信息。 可以增加、刪除、修改教育培訓人員證書信息。</p><p><b> 教育培訓情況查詢</b></p><p> 可對員工的培訓情況進有條件查詢[8]
42、。</p><p><b> 系統(tǒng)管理</b></p><p> 系統(tǒng)管理主要實現(xiàn)系統(tǒng)管理員進行后臺管理的模塊,包括組織管理、安全控制。系統(tǒng)管理ER圖,如圖4-3</p><p> 圖4-3 系統(tǒng)管理ER圖</p><p><b> 該模塊主要實現(xiàn):</b></p><p
43、><b> 結構級別維護</b></p><p> 制定組織機構級別,維護名稱、狀態(tài)等相關信息。用戶可以指定級別名稱等信息。并可設置該級別是否可用。不可用的級別,在組織機構的設置中不起作用。 </p><p><b> 結構信息維護</b></p><p> 維護部門的基本信息,可以對部門進行增加、修改、刪除
44、等操作。部門應展示父子關系――即部門間的所屬關系。并可對部門進行合并、移動等操作。 </p><p><b> 用戶管理</b></p><p> 對使用本系統(tǒng)的用戶進行維護,維護信息包括用戶名、密碼、用戶狀態(tài)等。用戶登錄時要首先判斷用戶的合法性,只有合法用戶才能操作相應的功能界面。 可以對用戶進行增加、修改、刪除等操作。</p><p>
45、<b> 角色管理</b></p><p> 系統(tǒng)中采用角色的概念來建立用戶與對應功能的關系。一個角色可以對應多個功能界面,當賦予用戶某一角色后,該用戶即可操作所賦角色所對應的功能界面。 可以對角色進行增加、修改、刪除等操作。</p><p><b> 系統(tǒng)模塊管理</b></p><p> 對系統(tǒng)模塊進行維護,每
46、個功能界面都是一個子模塊(或稱子功能)。 可以對模塊進行增加、修改、刪除等操作。 </p><p><b> 角色、模塊分配</b></p><p> 維護角色與模塊的對應關系,使每個角色可以對應一個或多個模塊。 </p><p><b> 用戶角色分配</b></p><p> 給使用該系
47、統(tǒng)的用戶分配角色,使用戶可以操作相應的功能界面[9]。</p><p><b> 數據庫表的設計</b></p><p> 培訓類別表設計,如表4-1。</p><p> 表4-1 trainCategory表項</p><p><b> 續(xù)表</b></p><p>
48、; 培訓記錄表設計,如表4-2。</p><p> 表4-2 trainRecord表項</p><p> 培訓員工信息表設計,如表4-3。</p><p> 表4-3 train Staff表項</p><p> 培訓證書表設計,如表4-4。</p><p> 表4-4Certificate 表項<
49、/p><p> 用戶角色表設計,如表4-5。</p><p> 表4-5 Role _User表項</p><p> 角色信息表設計,如表4-6。</p><p> 表4-6 Role表項</p><p> 模塊角色關聯(lián)表設計,如表4-7。</p><p> 表4-7 Role_Modu
50、le表項</p><p> 模塊表設計,如表4-8。</p><p> 表4-8 Module表項</p><p> 部門信息表設計,如表4-9。</p><p> 表4 -9 Department表項</p><p><b> 系統(tǒng)實現(xiàn)</b></p><p>
51、 本文著重介紹教育培訓管理模塊及系統(tǒng)管理模塊的設計與實現(xiàn)。</p><p><b> 教育培訓管理模塊</b></p><p> 教育培訓管理模塊結構圖,如圖5-1所示:</p><p> 圖5-1 教育培訓模塊結構圖</p><p> 在培訓管理主頁面(如圖5-2)左側的導航欄中可以對培訓記錄、培訓人員、培訓
52、程序、培訓證書的增刪改查操作,在此就不一一贅述了。</p><p> 圖5-2 培訓管理主頁面</p><p> 以培訓類別為例,詳細解釋說明代碼實現(xiàn)的過程。</p><p> 當用戶在圖5-2頁面中點擊培訓類別,出現(xiàn)如圖5-3的頁面,再點擊查詢培訓類別,會出現(xiàn)如圖5-4所示的頁面效果。在此頁面上,用戶可以編輯培訓的類別,刪除類別,批量刪除類別,按需要查看類別
53、[10]。點擊左邊欄的“新增類別培訓”還可以增加培訓的類別,點擊“查詢培訓類別”,可以顯示當前系統(tǒng)中所有的培訓類別(如圖5-3),在此頁面中可以分類查詢培訓類別,還可以對培訓類別進行編輯和刪除操作,同時還可把培訓類別表以Exl和pdf格式導出[11]。</p><p> 首先導入poi-2.5-final-20040302.jar包。在此包中包含了導出文件的方法實現(xiàn),只要正確使用就能夠完成所需要的功能。<
54、/p><p> 其次在servlet中import org.apache.poi.hssf.usermodel.*。</p><p> 導出Exel和pdf格式部分實現(xiàn)代碼如下,詳細請見附錄。</p><p> HSSFWorkbook workbook = new HSSFWorkbook();</p><p> HSSFShe
55、et sheet = workbook.createSheet();</p><p> HSSFCellStyle mainstyle = workbook.createCellStyle();</p><p> HSSFCellStyle titlestyle = workbook.createCellStyle();</p><
56、p> HSSFCellStyle cellstyle = workbook.createCellStyle();</p><p> HSSFFont mainfont = workbook.createFont();</p><p> HSSFFont titlefont = workbook.createFont();</p>&l
57、t;p> HSSFFont cellfont = workbook.createFont();</p><p> mainfont.setFontHeightInPoints((short) 12);</p><p> mainfont.setFontName("隸書");</p><p> titlefont.se
58、tFontHeightInPoints((short) 12);</p><p> titlefont.setFontName("華文新魏");</p><p> cellfont.setFontHeightInPoints((short) 9);</p><p> cellfont.setFontName("宋體")
59、;</p><p> workbook.setSheetName(0, "培訓類別信息",HSSFWorkbook.ENCODING_UTF_16);</p><p> mainstyle.setFont(mainfont);</p><p> titlestyle.setFont(titlefont);</p><p&
60、gt; titlestyle.setBorderTop(HSSFCellStyle.BORDER_THIN);</p><p> titlestyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);</p><p> titlestyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);</p>
61、<p> titlestyle.setBorderRight(HSSFCellStyle.BORDER_THIN);</p><p> cellstyle.setFont(cellfont);</p><p> cellstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);</p><p> cel
62、lstyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);</p><p> cellstyle.setBorderRight(HSSFCellStyle.BORDER_THIN);</p><p> cellstyle.setWrapText(true);</p><p> cellstyle.setFont(ce
63、llfont);</p><p> mainstyle.setFont(mainfont);</p><p> HSSFRow row = null;</p><p> HSSFCell cell = null;</p><p> 圖5-3 培訓類別列表顯示頁面</p><p> 當用戶點擊了某個按鈕時,
64、系統(tǒng)會將相應的標示符傳到servlet類來完成邏輯功能實現(xiàn);在servlet類中,通過判斷傳過來的標示符來區(qū)分所要執(zhí)行的邏輯功能[12]。具體代碼實現(xiàn)如下:</p><p> protected void performTask(HttpServletRequest request, HttpServletResponse response) throws ServletException, ServletEx
65、ception, IOException {</p><p> String way = request.getParameter("way");</p><p> //用戶點擊按鈕導出excel文件,執(zhí)行downloadExcel()方法。具體實現(xiàn)參見“關鍵技術實現(xiàn)”</p><p> if(way.equals("downex
66、cel")){ </p><p> result = downloadExcel(request,response); </p><p><b> }</b></p><p> //導出pdf文件,執(zhí)行downloadPdf()方法。具體實現(xiàn)參見“關鍵技術實現(xiàn)”</p><p
67、> if(way.equals("downpdf")){</p><p> result = downloadPdf(request,response); </p><p><b> } </b></p><p> if(way.equals("list")||way.equals(
68、"back")||way.equals("list2")){</p><p> result = list(request,response,true); </p><p><b> } </b></p><p> if(way.equals("select")){<
69、;/p><p> result = select(request,response);</p><p><b> }</b></p><p> if(way.equals("select_modify")){</p><p> result = select(request,response);&
70、lt;/p><p><b> }</b></p><p><b> else{ </b></p><p> if(way.equals("add")){</p><p> result = add(request,response);</p><p&g
71、t;<b> }</b></p><p> else if(way.equals("delete")){</p><p> result = delete(request,response);</p><p> }else if(way.equals("batchdel")){</p>
72、<p> result = batchDel(request,response);</p><p> }else if(way.equals("modify")){</p><p> result = modify(request,response);</p><p><b> } }</b>
73、</p><p> if(way.equals("add")){</p><p> 當用戶點擊新增培訓類別,跳轉到如圖5-4,新增培訓類別的頁面</p><p> 圖5-4 新增培訓類別頁面</p><p> 在執(zhí)行add()方法成功時返回result=true,此時會跳轉到redi rect3指定的頁面。完成添加
74、新類別的操作。以下操作同add[13]。</p><p> if (result) {</p><p> forward(request, response, redirect3);</p><p><b> }</b></p><p> else forward(request, response, redi
75、rect2);</p><p><b> }</b></p><p> else if(way.equals("select_modify"))</p><p><b> {</b></p><p> forward(request, response, redirec
76、t4);}</p><p> else if(way.equals("modify"))</p><p><b> {</b></p><p> if (result) forward(request, response, redirect);</p><p> else forward(r
77、equest, response, redirect4);</p><p><b> }</b></p><p> else if(way.equals("list2"))</p><p><b> {</b></p><p> forward(request, resp
78、onse, redirect5);</p><p><b> }</b></p><p> else forward(request, response, redirect); </p><p><b> }</b></p><p> 在servlet中完成功能時調用了許多方法,以add
79、()方法為例說明代碼實現(xiàn)。所有的方法都是自定義在servle中的,通過方法傳遞參數可以將request, response傳遞到自定義方法中,完成功能。</p><p> protected boolean add(HttpServletRequest request, HttpServletResponse response)</p><p> throws Exception, S
80、ervletException, IOException {</p><p><b> //獲取提交的參數</b></p><p> String categoryIsbn = request.getParameter("categoryIsbn");</p><p> String categoryName =
81、 request.getParameter("categoryName");</p><p> String cateCert= request.getParameter("cateCert");</p><p> String cateDescribe = request.getParameter("cateDescribe&
82、quot;);</p><p> //封裝到一個數據傳輸對象中,此vo中的數據字段與數據表中的字段對應。</p><p> trainCategoryVO vo = new trainCategoryVO();</p><p> vo.setCategory_isbn(Integer.parseInt(categoryIsbn));</p>&l
83、t;p> vo.setCategory_name(categoryName);</p><p> vo.setCate_cert(cateCert);</p><p> vo.setCate_describe(cateDescribe);</p><p> //實力化一個數據訪問對象trainCategotyDAOImpl(),調用接口中的getLis
84、t()方法(詳見TrainCategotyDAOImpl.java),取得結果集。</p><p> trainCategoryDAO dao = new trainCategoryDAOImpl();</p><p> PageHelper pageHelper = null;</p><p> pageHelper=dao.getList(null, 1
85、0, 1);</p><p> List recordList = pageHelper.getObjList();</p><p> for(int i=0; i< recordList.size();i++){</p><p> trainCategoryVO vo1= (trainCategoryVO)recordList.get(i);<
86、;/p><p> if(vo1.getCategory_isbn()==Integer.parseInt(categoryIsbn))</p><p><b> {</b></p><p> request.setAttribute("same", "match");</p><p&
87、gt; return false;</p><p><b> }</b></p><p> if(vo1.getCategory_name().equals(categoryName))</p><p><b> {</b></p><p> request.setAttribute(&q
88、uot;same1", "match");</p><p> return false;</p><p><b> }</b></p><p><b> }</b></p><p> boolean result = dao.insert(vo);</p&
89、gt;<p> return result;</p><p><b> }</b></p><p> TrainCategotyDAOImpl.java中包含了所有對培訓種類的操作方法,例如,add(),delete(),update(),banchdelete(),getList()等。</p><p> 在該方法中將會
90、執(zhí)行基類中對數據庫操做的方法,返回一個幫助類對象,此對象中包含了查詢的結果集。</p><p> public PageHelper getList(List condList, int pageSize, int currentPage) throws Exception {</p><p> String fields = "*";</p>&
91、lt;p> String tables = "TRAINCATEGORY";</p><p> String barUrl= "trainCategoryServlet";</p><p> String condition = "";</p><p> if(condList!=n
92、ull){</p><p> //TODO 根據系統(tǒng)的要求產生</p><p><b> }</b></p><p> return getList(fields,tables,condition,barUrl, pageSize,currentPage);</p><p><b> }</b
93、></p><p><b> 系統(tǒng)管理模塊</b></p><p> 系統(tǒng)管理結構圖,如圖5-5所示。 </p><p> 圖5-5 系統(tǒng)功能結構圖</p><p> 在系統(tǒng)管理主頁面(如圖5-6)中點擊用戶管理,可以修改自己的密碼,還可以查看所有用戶信息,對用戶信息分類查詢以及對用戶信息的修改和刪除;點擊
94、職位管理,可以對系統(tǒng)職位的增刪改查操作;點擊部門管理,可以整個系統(tǒng)的部門進行增刪改查的操作,查看整個系統(tǒng)部門組織結構,還可以進行部門合并[14]。</p><p> 圖5-6系統(tǒng)管理主頁面</p><p> 以職位管理為例,說明代碼實現(xiàn)的過程。</p><p> 當用戶點擊查詢職位,會出現(xiàn)如圖5-7所示的頁面效果。在此頁面上,用戶可以對職位的編號和名稱進行修改
95、,也可以刪除,增加職位。</p><p> 圖5-7 職位信息列表顯示頁面</p><p> 當用戶點擊了某個按鈕時,系統(tǒng)會將相應的標示符傳到servlet類來完成邏輯功能實現(xiàn);在servlet類中,通過判斷傳過來的標示符來區(qū)分所要執(zhí)行的邏輯功能。具體代碼實現(xiàn)如下:</p><p> protected void performTask(HttpServlet
96、Request request, HttpServletResponse response) throws ServletException, ServletException, IOException {</p><p> String redirect="/sys/position/pos_list.jsp";</p><p> String way =
97、 request.getParameter("way");</p><p> boolean result = true; </p><p><b> 取得所有的數據。</b></p><p> if(way.equals("list")){</p><p> res
98、ult = list(request,response,true); </p><p><b> }</b></p><p> 點擊增加職位頁面時,執(zhí)行下面代碼,頁面跳轉到如圖5-8界面。</p><p><b> else{ </b></p><p> if(way.equals(&q
99、uot;add")){ //增加</p><p> result = add(request,response);</p><p> if(result)</p><p> redirect= "/sys/position/pos_list.jsp";</p><p> else
100、 redirect = errurl;</p><p> 圖5-8 增加職位頁面</p><p> 在圖5-8中點擊提交按鈕,把系統(tǒng)增加職位的信息提交給PositionServlet,執(zhí)行add方法。</p><p> protected boolean add(HttpServletRequest request,</p><p>
101、 HttpServletResponse response) throws Exception, ServletException,</p><p> IOException {</p><p> // TODO Auto-generated method stub</p><p> Integer Pos_id = new Integer(1);<
102、/p><p> Integer Pos_isbn = Integer.parseInt(request.getParameter("Pos_isbn"));</p><p> String Position = request.getParameter("Position");</p><p> Positi
103、onVO vo = new PositionVO();</p><p> vo.setPos_isbn(Pos_isbn);</p><p> vo.setPosition(Position);</p><p> PositionDAO dao = new PositionDAOImpl();</p><p> boolean res
104、ult = dao.insert(vo);</p><p> return result;</p><p><b> }</b></p><p> }else if(way.equals("delete")){ //刪除</p><p> result = delete(request
105、,response);</p><p> }else if(way.equals("batchdel")){ //批量刪除</p><p> result = batchDel(request,response);</p><p> }else if(way.equals("modify")){ //修改<
106、;/p><p> result = modify(request,response);</p><p> if(result)</p><p> redirect= "/sys/position/pos_list.jsp";</p><p> else redirect = errurl;</p>
107、<p><b> }</b></p><p><b> } </b></p><p> forward(request, response, redirect); </p><p><b> } </b></p><p><b> }
108、</b></p><p> Delete()方法調用PositionDAOImpl()中的delete()方法來刪除職位數據。具體實現(xiàn)如下:</p><p> protected boolean delete(HttpServletRequest request,</p><p> HttpServletResponse response) thr
109、ows Exception, ServletException,</p><p> IOException {</p><p> // TODO Auto-generated method stub</p><p> String Pos_id = request.getParameter("Pos_id");</p><
110、;p> PositionDAO dao = new PositionDAOImpl();</p><p> dao.delete(Integer.parseInt(Pos_id));</p><p> return true;</p><p><b> }</b></p><p> PositionDAO
111、Impl()中的delete()方法實現(xiàn)。拼接一條sql語句,調用基類中的executeUpdate()方法完成功能。</p><p> public boolean delete(int id) throws Exception {</p><p> // TODO Auto-generated method stub</p><p> String sql
112、 = "delete from Position where POSITION_ID = ?";</p><p> return executeUpdate(sql,new KeyValue("delete",new Integer(id)));}</p><p><b> 系統(tǒng)測試</b></p><p
113、><b> 測試的定義及目的</b></p><p> 軟件測試就是在軟件投入運行前對軟件的需求分析、設計規(guī)格說明和編碼的最終復審,是保證軟件質量的關鍵步驟。如果要給軟件測試下定義,可以這樣將軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程[15]。</p><p> 測試的目標是以最少的時間和人力找出軟件中潛在的各種錯誤和缺陷。</p><p&
114、gt;<b> 測試步驟</b></p><p> 在程序編碼結束之后,開發(fā)人員通過調試,首先分模塊測試每個功能是否符合需求分析中功能模塊的要求,再把各個模塊整合到一起測試整體功能是否達到預期目標。</p><p> 因為該人力資源系統(tǒng)可能同時被多用戶訪問,這樣就不得不考慮到系統(tǒng)性能的問題,所以就要進行壓力測試,在這里用到了測試工具JMeter。</p&g
115、t;<p> 首先,向測試計劃中增加相關負載設置,讓JMeter知道我們需要模擬100個請求者,每個請求者在測試過程中請求一次。詳細步驟如下:</p><p> 選中界面中左邊樹的Test Plan節(jié)點,單擊右鍵,選擇AddThread Group,界面右邊將會出現(xiàn)他的設置信息框。</p><p> Thread Group有三個和負載信息相關的參數: </p&g
116、t;<p> Number of Threads: 設置發(fā)送請求的用戶數目</p><p> Ramp-up period: 每個請求發(fā)生的總時間間隔,單位是秒。比如你的請求數目是5,而這個參數是10,那么每個請求之間的間隔就是10/5,也就是2秒 Loop Count: 請求發(fā)生的重復次數,如果選擇后面的forever(默認),那么 請求將一直繼續(xù),如果不選擇forever,而在輸入框中輸入
117、數字,那么請求將重復指定的次數,如果輸入0,那么請求將執(zhí)行一次。 </p><p> 根據我們演示例子的設計,我們應該將Number of Threads設置為100,Ramp-up period設置為0(也就是同時并發(fā)請求),不選中forever,在Loop Count后面的輸入框中輸入0,設置后的屏幕截圖如圖6-1:</p><p> 圖5-1 增加負載信息設置頁面</p&g
118、t;<p> 接下來我們需要增加http請求了,它也是我們測試的內容主體部分。你可以通過下面的步驟來增加性的http請求:</p><p> 選中可視化界面中左邊樹的Thread Group節(jié)點,單擊右鍵,選擇Addsamplerhttp request,界面右邊將會出現(xiàn)他的設置信息框。</p><p> Server name我們填寫localhost,Port Nu
119、mber我們填寫本地Tomcat的端口號:8090,增加的屬性中有發(fā)送http時方法的選擇,可以選擇為get或者post,在這里我們選擇post。</p><p> 我們現(xiàn)在增加一個http 請求,設置后的屏幕截圖如圖5-2。</p><p> 圖5-2 增加http請求頁面</p><p> 選中界面中左邊樹的Test Plan節(jié)點,單擊右鍵,選擇Add
120、 Listener view result in table,通過單擊菜單欄run Start開始執(zhí)行測試計劃,把查詢結果以表格形式顯示,如圖5-3??梢钥吹降谝淮螆?zhí)行時的時間值比較大,這可以通過下面的理由進行解釋:jsp執(zhí)行前都需要被編譯成.class文件。所以第二次的結果才是正常的結果??梢钥吹剑?00個并發(fā)請求的同時,響應時間都只在31毫秒左右,性能總體良好。</p><p> 圖5-2 測試結果
121、顯示</p><p><b> 系統(tǒng)運行</b></p><p><b> 數據庫安裝</b></p><p> 推薦使用Oracle9i版本數據庫,如果需要新建用戶和表空間的,執(zhí)行如下步驟,如果在已有表空間和用戶下建立該數據庫,則可以跳過此步驟;</p><p> 以數據庫管理員身份登錄數
122、據庫。</p><p> 新建表空間:表空間名為HRS。</p><p> 新建用戶:新建用戶HRS;密碼HRS;表空間HRS。</p><p> 執(zhí)行建庫腳本 (hrs.sql)。</p><p> 以新用戶HRS登錄連接到Oracle,在SQL命令窗口執(zhí)行建庫腳本(hrs.sql , inserts.sql , sequence
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于MVC的人力資源管理系統(tǒng)的設計與實現(xiàn).pdf
- 基于MVC框架的人力資源管理系統(tǒng)設計與實現(xiàn).pdf
- 畢業(yè)設計---基于web的人力資源管理系統(tǒng)的設計與實現(xiàn)
- 基于MVC的人力資源管理系統(tǒng)的研究與實現(xiàn).pdf
- 畢業(yè)設計(論文)基于web的人力資源管理系統(tǒng)的實現(xiàn)
- [畢業(yè)設計資料]基于web的人力資源管理系統(tǒng)的實現(xiàn)
- 基于web的人力資源管理系統(tǒng)畢業(yè)設計
- 基于SOA模式的人力資源管理系統(tǒng)的設計與實現(xiàn).pdf
- 基于改進型MVC設計模式的人力資源管理系統(tǒng)的研發(fā).pdf
- 畢業(yè)設計----基于c#與ms sqlserver的人力資源管理系統(tǒng)的設計與實現(xiàn)
- 基于.net的人力資源管理系統(tǒng)的設計與實現(xiàn)
- 基于Spring的人力資源管理系統(tǒng)的設計與實現(xiàn).pdf
- 基于SAP的人力資源管理系統(tǒng)的設計與實現(xiàn).pdf
- 基于ULHA的人力資源管理系統(tǒng)的設計與實現(xiàn).pdf
- 基于B-S模式的人力資源管理系統(tǒng)的設計與實現(xiàn).pdf
- 人力資源管理系統(tǒng)畢業(yè)設計
- 人力資源管理系統(tǒng)畢業(yè)設計
- 畢業(yè)設計---人力資源管理系統(tǒng)設計
- 畢業(yè)設計----人力資源管理系統(tǒng)
- 人力資源管理系統(tǒng)畢業(yè)設計
評論
0/150
提交評論