[優(yōu)秀畢業(yè)設(shè)計(jì)精品] 基于mvc模式的人力資源管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
已閱讀1頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p>  基于MVC模式的人力資源管理系統(tǒng)</p><p><b>  的設(shè)計(jì)與實(shí)現(xiàn)</b></p><p>  學(xué) 生 姓 名 </p><p>  指 導(dǎo) 教 師 禹

2、 </p><p>  專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) </p><p>  學(xué) 院 計(jì)算機(jī)與信息工程學(xué)院 </p><p>  2009年 6月15 日</p><p>  畢業(yè)設(shè)計(jì)(論文)任務(wù)書</p><p><b>  摘  要<

3、/b></p><p>  在MVC架構(gòu)基礎(chǔ)上構(gòu)建人力資源管理系統(tǒng)。主要研究了人力資源管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),采用瀏覽器/服務(wù)器(B/S)模式,開發(fā)工具采用MyEclips5.5,數(shù)據(jù)庫采用Oracle 9i。高效地實(shí)現(xiàn)了人力資源管理系統(tǒng)的各項(xiàng)功能,具有對人事檔案管理、人事調(diào)配管理、教育培訓(xùn)和系統(tǒng)管理的功能。首先研究人力資源管理系統(tǒng)的開發(fā)的背景和需求分析,接著對系統(tǒng)進(jìn)行總體設(shè)計(jì),數(shù)據(jù)庫設(shè)計(jì),然后進(jìn)行模塊劃分,

4、分模塊完成詳細(xì)設(shè)計(jì)的內(nèi)容,最后介紹系統(tǒng)的測試和運(yùn)行。</p><p>  關(guān)鍵詞:人力資源管理;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項(xiàng)目背景1</p><p>  1.2項(xiàng)目內(nèi)容1</p><p>  1.3系統(tǒng)的開發(fā)意義2</p><p>  1.4項(xiàng)目設(shè)計(jì)原則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)概要設(shè)計(jì)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數(shù)據(jù)庫概要設(shè)計(jì)6</p><p>  4系統(tǒng)詳細(xì)設(shè)計(jì)10</p><p>  4.1功能模塊劃分10</p><p>  4.2功能子模塊設(shè)計(jì)10</p><p>  4.2.1教育培

11、訓(xùn)管理10</p><p>  4.2.2系統(tǒng)管理11</p><p>  4.3數(shù)據(jù)庫表的設(shè)計(jì)12</p><p><b>  5系統(tǒng)實(shí)現(xiàn)17</b></p><p>  5.1教育培訓(xùn)管理模塊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)運(yùn)行31</b></p><p>  7.1數(shù)據(jù)庫安裝31</p><p>  7.2

13、系統(tǒng)部署32</p><p>  7.3登錄系統(tǒng)33</p><p><b>  結(jié) 論35</b></p><p><b>  參考文獻(xiàn)36</b></p><p><b>  致  謝37</b></p><p><b>

14、  附  錄38</b></p><p><b>  緒 論</b></p><p><b>  項(xiàng)目背景</b></p><p>  所謂人力資源管理,就是指運(yùn)用現(xiàn)代化的科學(xué)方法,對與物力相結(jié)合的人力進(jìn)行合理的培訓(xùn)、組織和調(diào)配,使人力、物力經(jīng)常保持最佳比例,同時對人的思想、心理和行為進(jìn)行恰當(dāng)?shù)恼T導(dǎo)、控

15、制和協(xié)調(diào),充分發(fā)揮人的主觀能動性,使人盡其才,事得其人,人事相宜,以實(shí)現(xiàn)組織目標(biāo)。隨著“知識經(jīng)濟(jì)”時代的到來,人力資源管理因與人的密切聯(lián)系使其重要性日顯突出。應(yīng)該看到,企業(yè)管理已經(jīng)從強(qiáng)調(diào)對物的管理轉(zhuǎn)向?qū)θ说墓芾恚@是競爭加劇的結(jié)果。無論是管理領(lǐng)域的擴(kuò)大,還是現(xiàn)有管理的提升,人力資源是基礎(chǔ)、是前提、是根本[1]。</p><p>  人力資源管理系統(tǒng)是一個企業(yè)單位不可缺少的部分,是適應(yīng)現(xiàn)代企業(yè)制度,推動企業(yè)人力資源

16、管理走向科學(xué)化、規(guī)范化、自動化的必要條件。人力資源管理系統(tǒng)應(yīng)該能夠?yàn)橛脩籼峁┏渥愕男畔⒑涂旖莸牟樵兪侄?,以幫助企業(yè)領(lǐng)導(dǎo)了解企業(yè)現(xiàn)有的人力資源狀況。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在許多缺點(diǎn),如:效率低、安全性差、時間一長就會產(chǎn)生大量的文件和數(shù)據(jù)積壓,這對于查找、更新和維護(hù)都帶來了不少的困難[2]。因此,為了加快企業(yè)的信息化步伐,提高企業(yè)的管理水平以在激烈的社會競爭中立于不敗之地,建設(shè)和完善人力資源管理系統(tǒng)已經(jīng)

17、變得十分必要和迫切。</p><p>  EHR,是指人力資源管理電子信息化,提高效率是EHR的根本目的,人力資源管理的E-HR化,可以使我們在轉(zhuǎn)變管理觀念的同時,減少平常事務(wù)性作業(yè)對于人力資源管理策略上的羈絆,真正使人力資源管理成為企業(yè)的戰(zhàn)略伙伴,成為管理決策支持者,為決策提供解決方案。 </p><p><b>  項(xiàng)目內(nèi)容</b></p><

18、;p><b>  項(xiàng)目分為四大模塊:</b></p><p>  (1)人事檔案管理:包括人員基本信息,檔案,履歷,合同,獎懲信息和人員結(jié)構(gòu)等;</p><p>  (2)人事調(diào)配管理:包括員工調(diào)配,新增員工,支撐評定人員離退和工資等級等;</p><p> ?。?)教育培訓(xùn)管理:包括培訓(xùn)類別,培訓(xùn)記錄,培訓(xùn)人員,培訓(xùn)成績和培訓(xùn)證書等;&

19、lt;/p><p> ?。?)系統(tǒng)管理:包括用戶信息管理,角色管理,職位管理和部門管理等。</p><p><b>  系統(tǒng)的開發(fā)意義</b></p><p>  全球范圍內(nèi)的企業(yè)內(nèi)部組織正在發(fā)生巨變,未來企業(yè)成功的關(guān)鍵的依靠企業(yè)人力資源,人才之爭已經(jīng)成為市場競爭中的核心內(nèi)容之一,以人為本成為企業(yè)立足和發(fā)展的根本。有效力管理企業(yè)的人力資源,為企業(yè)提

20、供強(qiáng)有力的儲備力量,使之成為企業(yè)發(fā)展的主動力。通過人力資源的有效管理,掌握最新的、準(zhǔn)確的企業(yè)人力資源信息,并對其進(jìn)行復(fù)雜的統(tǒng)計(jì)與分析,從而充分發(fā)揮每個員工的潛能,為企業(yè)創(chuàng)造更大的價值。</p><p>  網(wǎng)絡(luò)化的今天,網(wǎng)絡(luò)人力資源管理系統(tǒng),使新的人力資源協(xié)作管理模式成為可能。通過網(wǎng)絡(luò)管理系統(tǒng),專門的人力資源管理人員可以提高自身的工作效率,作好人力資源管理的協(xié)調(diào)工作,提高人力資源利用率;通過網(wǎng)絡(luò)管理系統(tǒng),員工可以

21、直接管理自己的技能,有效地發(fā)現(xiàn)和挖掘自身的潛能,及時與自己的上級、下屬、同事進(jìn)行的溝通與交流,同心協(xié)作,積極為企業(yè)的發(fā)展與決策貢獻(xiàn)力量。通過網(wǎng)絡(luò)人力資源管理系統(tǒng)對企業(yè)人力資源進(jìn)行管理,使企業(yè)人力資源管理適應(yīng)時代的發(fā)展要求,大大提高了企業(yè)的核心競爭力。</p><p>  當(dāng)人類正在向知識經(jīng)濟(jì)新時代邁進(jìn)的時候,信息網(wǎng)絡(luò)化的發(fā)展步伐也越加迅猛,隨著中國加入WTO,中國經(jīng)濟(jì)不可避免地要面對經(jīng)濟(jì)全球化的挑戰(zhàn),巨大的競爭壓

22、力使得中國的企業(yè)將無法去慢慢解決員工的意識與素質(zhì)問題,我們的企業(yè)在經(jīng)營管理能力上急需的是一種跨越式提升,它要求我們必須以全新的視角來重新認(rèn)識人力資源在企業(yè)中的作用。而解決這一問題的最佳途徑是建立現(xiàn)代企業(yè)的人力資源管理系統(tǒng),它的實(shí)施將會推動企業(yè)的全面人力資源管理[3]。</p><p><b>  項(xiàng)目設(shè)計(jì)原則</b></p><p> ?。?)實(shí)用性原則 充分考慮到在

23、人力資源管理中可能遇到的種種問題,盡量全面的做好需求分析,以減少日后更新軟件的次數(shù)。</p><p>  (2)經(jīng)濟(jì)性原則 建立適合企業(yè)自身需求的網(wǎng)絡(luò)平臺,提供廣泛的涵蓋用戶多種需求的功能,數(shù)據(jù)處理方式靈活可以滿足需求,節(jié)省網(wǎng)站建設(shè)成本,并確保其較好的拓展性和開放性;同時網(wǎng)站具有基于WEB界面的管理后臺,能夠自主的對網(wǎng)站中大部分內(nèi)容作更新、修改操作,節(jié)省了企業(yè)網(wǎng)站的運(yùn)營成本,提高了信息更新、傳播效率。</p

24、><p> ?。?)擴(kuò)充性原則 網(wǎng)站的整體規(guī)劃及框架設(shè)計(jì)是具可擴(kuò)充性的,前臺頁面的設(shè)計(jì)能保證網(wǎng)站在增加欄目后不會破壞網(wǎng)站的整體結(jié)構(gòu)。后臺數(shù)據(jù)庫的設(shè)計(jì)具有高度的擴(kuò)充性,能夠根據(jù)需要對欄目、類別的增、刪、修改。</p><p><b>  需求分析</b></p><p><b>  2.1 功能需求</b></p>

25、<p><b> ?。?)人員檔案管理</b></p><p>  主要目的建立符合公司組織機(jī)構(gòu)的組織模型和完整人事檔案庫,記錄一定范圍內(nèi)的職工和雇工的檔案信息,并且這些信息可以和績效考核的成績關(guān)聯(lián),方便存檔和查詢。系統(tǒng)重點(diǎn)圍繞數(shù)據(jù)維護(hù)、查詢和分析便捷的要求,并通過關(guān)鍵業(yè)務(wù)節(jié)點(diǎn)的業(yè)務(wù)流程化,提高 HR業(yè)務(wù)的處理效率。 </p><p><b>

26、  (2)人事調(diào)配管理</b></p><p>  維護(hù)人事調(diào)動相關(guān)信息。針對人事調(diào)動(調(diào)入、調(diào)出)、內(nèi)部調(diào)動、晉升、降職等人事變動業(yè)務(wù)的處理和查詢。查詢員工職稱證書信息。對員工職稱信息按照取得時間排序,可可以按員工姓名、編號等信息查找員工。可以根據(jù)職工定員、缺員信息及員工職稱信息,對員工崗位進(jìn)行調(diào)配。根據(jù)員工年度職稱評定信息和年度考核結(jié)果,確定員工職稱信息是否有效,只有有效的職稱才可以被聘任,同一時

27、間只有一種職稱被聘任。對員工人事調(diào)動信息按照時間排序,可以對每個員工人事調(diào)配信息進(jìn)行增加、刪除、編輯操作。可以按員工姓名、編號等信息查找員工。 </p><p><b> ?。?)教育培訓(xùn)管理</b></p><p>  滿足公司對員工崗前、在職培訓(xùn)及學(xué)歷(學(xué)位)教育等多種形式的培訓(xùn)模式,通過信息平臺進(jìn)行教育培訓(xùn)檔案的建立、修改維護(hù);培訓(xùn)信息發(fā)布等工作。</p&

28、gt;<p> ?。?)系統(tǒng)管理主要實(shí)現(xiàn)系統(tǒng)管理員進(jìn)行后臺管理的模塊,包括組織管理、安全控制[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)概要設(shè)計(jì)</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>  進(jìn)入系統(tǒng),以正確的用戶名和

31、密碼登陸后,不同的角色有不同的權(quán)限,管理員擁有所有權(quán)限,進(jìn)入檔案管理,可以對人員信息、人員檔案、人員合同、人員結(jié)構(gòu)進(jìn)行查詢,新增和查詢獎懲記錄及員工履歷。進(jìn)入人員調(diào)配,可以對聘用人員進(jìn)行新增,查詢和批量續(xù)聘,查詢和調(diào)動人員,進(jìn)行職稱評定,離退員工和查詢離退列表,可以設(shè)置員工等級和查看員工工資列表。進(jìn)入教育培訓(xùn)管理,可以對培訓(xùn)類別、培訓(xùn)記錄、培訓(xùn)人員、培訓(xùn)成績、培訓(xùn)證書進(jìn)行增刪改查。進(jìn)入系統(tǒng)管理,在用戶管理中,可以修改密碼和查詢用戶,在職

32、位管理中,可以增加查詢職位,在部門管理中,可以增加部門、查詢部門、管理部門組織結(jié)構(gòu)及部門合并,在角色管理中,可以增加角色和角色查詢。一系列需要操作結(jié)束后,退出系統(tǒng)。</p><p><b>  數(shù)據(jù)庫概要設(shè)計(jì)</b></p><p>  根據(jù)人事調(diào)配業(yè)務(wù)流程描述和在職人員教育培訓(xùn)業(yè)務(wù)流程描述,我們可以從中抽象出幾個數(shù)據(jù)集合,如:公司員工(staff),缺職位的部門(d

33、epartment),調(diào)配人事的人員即人力資源部,在調(diào)配過程中,首先從公司職員里面挑選是否有符合的人員,如果有則從其他部門調(diào)入該部門,因此該公司有個(組織機(jī)構(gòu)),如果沒有符合人員則發(fā)布招聘公告。某員工被錄用時,則首先由系統(tǒng)管理員給改員工創(chuàng)建一個賬戶(user),并錄入該員工的信息。員工登錄系統(tǒng)后,員工只能查看、修改自己的基本信息,所以要制定權(quán)限管理,該系統(tǒng)角色(role)分為普通用戶、部門經(jīng)理、系統(tǒng)管理員??紤]到特殊情況的發(fā)生,該角色可

34、以進(jìn)行編輯。創(chuàng)建新的角色,分配角色的權(quán)限(module)等[5]。</p><p>  數(shù)據(jù)庫表名匯總,如表3-1。</p><p>  表3-1數(shù)據(jù)庫表明匯總</p><p><b>  續(xù)表</b></p><p>  將需求分析,系統(tǒng)設(shè)計(jì)中對信息的描述進(jìn)一步分析并加以總計(jì),抽象出數(shù)據(jù)集合(數(shù)據(jù)庫表)[6]。對數(shù)據(jù)集

35、合做進(jìn)一步分析,確定集合之間的關(guān)系并最終形成數(shù)據(jù)庫物理模型,以便開發(fā)人員建立物理數(shù)據(jù)庫。在數(shù)據(jù)庫中表和表之間會有關(guān)聯(lián),有一對一的關(guān)系,一對多的關(guān)系,多對一的關(guān)系,多對多的關(guān)系[7]。這些關(guān)系在數(shù)據(jù)庫設(shè)計(jì)之初就應(yīng)該分析清楚,本系統(tǒng)的邏輯ER圖如圖3-1,各表之間的外鍵關(guān)聯(lián)說明如表3-2。</p><p><b>  圖3-1邏輯ER圖</b></p><p>  表3-

36、2 外鍵關(guān)聯(lián)說明表</p><p><b>  續(xù)表</b></p><p><b>  系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p><b>  功能模塊劃分</b></p><p>  通過需求分析,把系統(tǒng)大體分為四個模塊,如圖4-1:</p><p>  

37、圖4-1 系統(tǒng)功能結(jié)構(gòu)圖</p><p><b>  功能子模塊設(shè)計(jì)</b></p><p><b>  教育培訓(xùn)管理</b></p><p>  教育培訓(xùn)管理滿足公司對員工崗前、在職培訓(xùn)及學(xué)歷(學(xué)位)教育等多種形式的培訓(xùn)模式,通過信息平臺進(jìn)行教育培訓(xùn)檔案的建立、修改維護(hù);培訓(xùn)信息發(fā)布等工作,培訓(xùn)教育管理模塊ER圖如圖4

38、-2。</p><p>  圖4-2 培訓(xùn)教育管理ER圖</p><p><b>  該模塊主要實(shí)現(xiàn):</b></p><p><b>  培訓(xùn)類別維護(hù)</b></p><p>  對教育培訓(xùn)項(xiàng)目類別維護(hù)。包括培訓(xùn)類別編號,名稱,證書名稱,培訓(xùn)描述。可以增加、刪除、修改教育培訓(xùn)的類別信息。</

39、p><p><b>  培訓(xùn)記錄</b></p><p>  對教育培訓(xùn)記錄進(jìn)行維護(hù)。 主要內(nèi)容包括:培訓(xùn)類別ID、培訓(xùn)性質(zhì)、培訓(xùn)編號、培訓(xùn)名稱、培訓(xùn)開始時間,培訓(xùn)結(jié)束時間,培訓(xùn)地點(diǎn)、參加人員、主辦單位、培訓(xùn)方式、負(fù)責(zé)人姓名、合格分?jǐn)?shù)等信息。 確定培訓(xùn)教師、課時、費(fèi)用等信息。</p><p><b>  培訓(xùn)人員及成績</b>

40、</p><p>  參加教育培訓(xùn)的培訓(xùn)人員的成績進(jìn)行維護(hù),并自動計(jì)算考試合計(jì)成績,以便對該人員培訓(xùn)是否合格作出評定。 可以修改教育培訓(xùn)的培訓(xùn)人員成績信息,維護(hù)培訓(xùn)合格情況。對培訓(xùn)合格并可以取得上崗證書的員工,進(jìn)行培訓(xùn)證書記錄;并及時將該信息提供給調(diào)配管理人員和工資管理人員,以便做出相應(yīng)的工作調(diào)整和工資調(diào)整。</p><p><b>  員工證書記錄 </b><

41、/p><p>  對參加其它教育培訓(xùn)的人員取得證書進(jìn)行維護(hù),并對參加培訓(xùn)的人員取得的證書進(jìn)行補(bǔ)充錄入。 主要信息包括:培訓(xùn)人員ID、培訓(xùn)記錄ID、證書名稱、證書號、證書日期、證書電子圖片等信息。 可以增加、刪除、修改教育培訓(xùn)人員證書信息。</p><p><b>  教育培訓(xùn)情況查詢</b></p><p>  可對員工的培訓(xùn)情況進(jìn)有條件查詢[8]

42、。</p><p><b>  系統(tǒng)管理</b></p><p>  系統(tǒng)管理主要實(shí)現(xiàn)系統(tǒng)管理員進(jìn)行后臺管理的模塊,包括組織管理、安全控制。系統(tǒng)管理ER圖,如圖4-3</p><p>  圖4-3 系統(tǒng)管理ER圖</p><p><b>  該模塊主要實(shí)現(xiàn):</b></p><p

43、><b>  結(jié)構(gòu)級別維護(hù)</b></p><p>  制定組織機(jī)構(gòu)級別,維護(hù)名稱、狀態(tài)等相關(guān)信息。用戶可以指定級別名稱等信息。并可設(shè)置該級別是否可用。不可用的級別,在組織機(jī)構(gòu)的設(shè)置中不起作用。 </p><p><b>  結(jié)構(gòu)信息維護(hù)</b></p><p>  維護(hù)部門的基本信息,可以對部門進(jìn)行增加、修改、刪除

44、等操作。部門應(yīng)展示父子關(guān)系――即部門間的所屬關(guān)系。并可對部門進(jìn)行合并、移動等操作。 </p><p><b>  用戶管理</b></p><p>  對使用本系統(tǒng)的用戶進(jìn)行維護(hù),維護(hù)信息包括用戶名、密碼、用戶狀態(tài)等。用戶登錄時要首先判斷用戶的合法性,只有合法用戶才能操作相應(yīng)的功能界面。 可以對用戶進(jìn)行增加、修改、刪除等操作。</p><p>

45、<b>  角色管理</b></p><p>  系統(tǒng)中采用角色的概念來建立用戶與對應(yīng)功能的關(guān)系。一個角色可以對應(yīng)多個功能界面,當(dāng)賦予用戶某一角色后,該用戶即可操作所賦角色所對應(yīng)的功能界面。 可以對角色進(jìn)行增加、修改、刪除等操作。</p><p><b>  系統(tǒng)模塊管理</b></p><p>  對系統(tǒng)模塊進(jìn)行維護(hù),每

46、個功能界面都是一個子模塊(或稱子功能)。 可以對模塊進(jìn)行增加、修改、刪除等操作。 </p><p><b>  角色、模塊分配</b></p><p>  維護(hù)角色與模塊的對應(yīng)關(guān)系,使每個角色可以對應(yīng)一個或多個模塊。 </p><p><b>  用戶角色分配</b></p><p>  給使用該系

47、統(tǒng)的用戶分配角色,使用戶可以操作相應(yīng)的功能界面[9]。</p><p><b>  數(shù)據(jù)庫表的設(shè)計(jì)</b></p><p>  培訓(xùn)類別表設(shè)計(jì),如表4-1。</p><p>  表4-1 trainCategory表項(xiàng)</p><p><b>  續(xù)表</b></p><p>

48、;  培訓(xùn)記錄表設(shè)計(jì),如表4-2。</p><p>  表4-2 trainRecord表項(xiàng)</p><p>  培訓(xùn)員工信息表設(shè)計(jì),如表4-3。</p><p>  表4-3 train Staff表項(xiàng)</p><p>  培訓(xùn)證書表設(shè)計(jì),如表4-4。</p><p>  表4-4Certificate 表項(xiàng)<

49、/p><p>  用戶角色表設(shè)計(jì),如表4-5。</p><p>  表4-5 Role _User表項(xiàng)</p><p>  角色信息表設(shè)計(jì),如表4-6。</p><p>  表4-6 Role表項(xiàng)</p><p>  模塊角色關(guān)聯(lián)表設(shè)計(jì),如表4-7。</p><p>  表4-7 Role_Modu

50、le表項(xiàng)</p><p>  模塊表設(shè)計(jì),如表4-8。</p><p>  表4-8 Module表項(xiàng)</p><p>  部門信息表設(shè)計(jì),如表4-9。</p><p>  表4 -9 Department表項(xiàng)</p><p><b>  系統(tǒng)實(shí)現(xiàn)</b></p><p>

51、  本文著重介紹教育培訓(xùn)管理模塊及系統(tǒng)管理模塊的設(shè)計(jì)與實(shí)現(xiàn)。</p><p><b>  教育培訓(xùn)管理模塊</b></p><p>  教育培訓(xùn)管理模塊結(jié)構(gòu)圖,如圖5-1所示:</p><p>  圖5-1 教育培訓(xùn)模塊結(jié)構(gòu)圖</p><p>  在培訓(xùn)管理主頁面(如圖5-2)左側(cè)的導(dǎo)航欄中可以對培訓(xùn)記錄、培訓(xùn)人員、培訓(xùn)

52、程序、培訓(xùn)證書的增刪改查操作,在此就不一一贅述了。</p><p>  圖5-2 培訓(xùn)管理主頁面</p><p>  以培訓(xùn)類別為例,詳細(xì)解釋說明代碼實(shí)現(xiàn)的過程。</p><p>  當(dāng)用戶在圖5-2頁面中點(diǎn)擊培訓(xùn)類別,出現(xiàn)如圖5-3的頁面,再點(diǎn)擊查詢培訓(xùn)類別,會出現(xiàn)如圖5-4所示的頁面效果。在此頁面上,用戶可以編輯培訓(xùn)的類別,刪除類別,批量刪除類別,按需要查看類別

53、[10]。點(diǎn)擊左邊欄的“新增類別培訓(xùn)”還可以增加培訓(xùn)的類別,點(diǎn)擊“查詢培訓(xùn)類別”,可以顯示當(dāng)前系統(tǒng)中所有的培訓(xùn)類別(如圖5-3),在此頁面中可以分類查詢培訓(xùn)類別,還可以對培訓(xùn)類別進(jìn)行編輯和刪除操作,同時還可把培訓(xùn)類別表以Exl和pdf格式導(dǎo)出[11]。</p><p>  首先導(dǎo)入poi-2.5-final-20040302.jar包。在此包中包含了導(dǎo)出文件的方法實(shí)現(xiàn),只要正確使用就能夠完成所需要的功能。<

54、/p><p>  其次在servlet中import org.apache.poi.hssf.usermodel.*。</p><p>  導(dǎo)出Exel和pdf格式部分實(shí)現(xiàn)代碼如下,詳細(xì)請見附錄。</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, "培訓(xùn)類別信息",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 培訓(xùn)類別列表顯示頁面</p><p>  當(dāng)用戶點(diǎn)擊了某個按鈕時,

64、系統(tǒng)會將相應(yīng)的標(biāo)示符傳到servlet類來完成邏輯功能實(shí)現(xiàn);在servlet類中,通過判斷傳過來的標(biāo)示符來區(qū)分所要執(zhí)行的邏輯功能[12]。具體代碼實(shí)現(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>  //用戶點(diǎn)擊按鈕導(dǎo)出excel文件,執(zhí)行downloadExcel()方法。具體實(shí)現(xiàn)參見“關(guān)鍵技術(shù)實(shí)現(xiàn)”</p><p>  if(way.equals("downex

66、cel")){ </p><p>  result = downloadExcel(request,response); </p><p><b>  }</b></p><p>  //導(dǎo)出pdf文件,執(zhí)行downloadPdf()方法。具體實(shí)現(xiàn)參見“關(guān)鍵技術(shù)實(shí)現(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>  當(dāng)用戶點(diǎn)擊新增培訓(xùn)類別,跳轉(zhuǎn)到如圖5-4,新增培訓(xùn)類別的頁面</p><p>  圖5-4 新增培訓(xùn)類別頁面</p><p>  在執(zhí)行add()方法成功時返回result=true,此時會跳轉(zhuǎn)到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中完成功能時調(diào)用了許多方法,以add

79、()方法為例說明代碼實(shí)現(xiàn)。所有的方法都是自定義在servle中的,通過方法傳遞參數(shù)可以將request, response傳遞到自定義方法中,完成功能。</p><p>  protected boolean add(HttpServletRequest request, HttpServletResponse response)</p><p>  throws Exception, S

80、ervletException, IOException {</p><p><b>  //獲取提交的參數(shù)</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>  //封裝到一個數(shù)據(jù)傳輸對象中,此vo中的數(shù)據(jù)字段與數(shù)據(jù)表中的字段對應(yīng)。</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>  //實(shí)力化一個數(shù)據(jù)訪問對象trainCategotyDAOImpl(),調(diào)用接口中的getLis

84、t()方法(詳見TrainCategotyDAOImpl.java),取得結(jié)果集。</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中包含了所有對培訓(xùn)種類的操作方法,例如,add(),delete(),update(),banchdelete(),getList()等。</p><p>  在該方法中將會

90、執(zhí)行基類中對數(shù)據(jù)庫操做的方法,返回一個幫助類對象,此對象中包含了查詢的結(jié)果集。</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 根據(jù)系統(tǒng)的要求產(chǎn)生</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)管理結(jié)構(gòu)圖,如圖5-5所示。 </p><p>  圖5-5 系統(tǒng)功能結(jié)構(gòu)圖</p><p>  在系統(tǒng)管理主頁面(如圖5-6)中點(diǎn)擊用戶管理,可以修改自己的密碼,還可以查看所有用戶信息,對用戶信息分類查詢以及對用戶信息的修改和刪除;點(diǎn)擊

94、職位管理,可以對系統(tǒng)職位的增刪改查操作;點(diǎn)擊部門管理,可以整個系統(tǒng)的部門進(jìn)行增刪改查的操作,查看整個系統(tǒng)部門組織結(jié)構(gòu),還可以進(jìn)行部門合并[14]。</p><p>  圖5-6系統(tǒng)管理主頁面</p><p>  以職位管理為例,說明代碼實(shí)現(xiàn)的過程。</p><p>  當(dāng)用戶點(diǎn)擊查詢職位,會出現(xiàn)如圖5-7所示的頁面效果。在此頁面上,用戶可以對職位的編號和名稱進(jìn)行修改

95、,也可以刪除,增加職位。</p><p>  圖5-7 職位信息列表顯示頁面</p><p>  當(dāng)用戶點(diǎn)擊了某個按鈕時,系統(tǒng)會將相應(yīng)的標(biāo)示符傳到servlet類來完成邏輯功能實(shí)現(xiàn);在servlet類中,通過判斷傳過來的標(biāo)示符來區(qū)分所要執(zhí)行的邏輯功能。具體代碼實(shí)現(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>  取得所有的數(shù)據(jù)。</b></p><p>  if(way.equals("list")){</p><p>  res

98、ult = list(request,response,true); </p><p><b>  }</b></p><p>  點(diǎn)擊增加職位頁面時,執(zhí)行下面代碼,頁面跳轉(zhuǎn)到如圖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中點(diǎn)擊提交按鈕,把系統(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()方法調(diào)用PositionDAOImpl()中的delete()方法來刪除職位數(shù)據(jù)。具體實(shí)現(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()方法實(shí)現(xiàn)。拼接一條sql語句,調(diào)用基類中的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>  軟件測試就是在軟件投入運(yùn)行前對軟件的需求分析、設(shè)計(jì)規(guī)格說明和編碼的最終復(fù)審,是保證軟件質(zhì)量的關(guān)鍵步驟。如果要給軟件測試下定義,可以這樣將軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程[15]。</p><p>  測試的目標(biāo)是以最少的時間和人力找出軟件中潛在的各種錯誤和缺陷。</p><p&

114、gt;<b>  測試步驟</b></p><p>  在程序編碼結(jié)束之后,開發(fā)人員通過調(diào)試,首先分模塊測試每個功能是否符合需求分析中功能模塊的要求,再把各個模塊整合到一起測試整體功能是否達(dá)到預(yù)期目標(biāo)。</p><p>  因?yàn)樵撊肆Y源系統(tǒng)可能同時被多用戶訪問,這樣就不得不考慮到系統(tǒng)性能的問題,所以就要進(jìn)行壓力測試,在這里用到了測試工具JMeter。</p&g

115、t;<p>  首先,向測試計(jì)劃中增加相關(guān)負(fù)載設(shè)置,讓JMeter知道我們需要模擬100個請求者,每個請求者在測試過程中請求一次。詳細(xì)步驟如下:</p><p>  選中界面中左邊樹的Test Plan節(jié)點(diǎn),單擊右鍵,選擇AddThread Group,界面右邊將會出現(xiàn)他的設(shè)置信息框。</p><p>  Thread Group有三個和負(fù)載信息相關(guān)的參數(shù): </p&g

116、t;<p>  Number of Threads: 設(shè)置發(fā)送請求的用戶數(shù)目</p><p>  Ramp-up period: 每個請求發(fā)生的總時間間隔,單位是秒。比如你的請求數(shù)目是5,而這個參數(shù)是10,那么每個請求之間的間隔就是10/5,也就是2秒 Loop Count: 請求發(fā)生的重復(fù)次數(shù),如果選擇后面的forever(默認(rèn)),那么 請求將一直繼續(xù),如果不選擇forever,而在輸入框中輸入

117、數(shù)字,那么請求將重復(fù)指定的次數(shù),如果輸入0,那么請求將執(zhí)行一次。 </p><p>  根據(jù)我們演示例子的設(shè)計(jì),我們應(yīng)該將Number of Threads設(shè)置為100,Ramp-up period設(shè)置為0(也就是同時并發(fā)請求),不選中forever,在Loop Count后面的輸入框中輸入0,設(shè)置后的屏幕截圖如圖6-1:</p><p>  圖5-1 增加負(fù)載信息設(shè)置頁面</p&g

118、t;<p>  接下來我們需要增加http請求了,它也是我們測試的內(nèi)容主體部分。你可以通過下面的步驟來增加性的http請求:</p><p>  選中可視化界面中左邊樹的Thread Group節(jié)點(diǎn),單擊右鍵,選擇Addsamplerhttp request,界面右邊將會出現(xiàn)他的設(shè)置信息框。</p><p>  Server name我們填寫localhost,Port Nu

119、mber我們填寫本地Tomcat的端口號:8090,增加的屬性中有發(fā)送http時方法的選擇,可以選擇為get或者post,在這里我們選擇post。</p><p>  我們現(xiàn)在增加一個http 請求,設(shè)置后的屏幕截圖如圖5-2。</p><p>  圖5-2 增加http請求頁面</p><p>  選中界面中左邊樹的Test Plan節(jié)點(diǎn),單擊右鍵,選擇Add

120、 Listener view result in table,通過單擊菜單欄run Start開始執(zhí)行測試計(jì)劃,把查詢結(jié)果以表格形式顯示,如圖5-3。可以看到第一次執(zhí)行時的時間值比較大,這可以通過下面的理由進(jìn)行解釋:jsp執(zhí)行前都需要被編譯成.class文件。所以第二次的結(jié)果才是正常的結(jié)果??梢钥吹?,在100個并發(fā)請求的同時,響應(yīng)時間都只在31毫秒左右,性能總體良好。</p><p>  圖5-2 測試結(jié)果

121、顯示</p><p><b>  系統(tǒng)運(yùn)行</b></p><p><b>  數(shù)據(jù)庫安裝</b></p><p>  推薦使用Oracle9i版本數(shù)據(jù)庫,如果需要新建用戶和表空間的,執(zhí)行如下步驟,如果在已有表空間和用戶下建立該數(shù)據(jù)庫,則可以跳過此步驟;</p><p>  以數(shù)據(jù)庫管理員身份登錄數(shù)

122、據(jù)庫。</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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論