基于J2EE Struts Hibernate的人力資源管理系統(tǒng)畢業(yè)設(shè)計
《基于J2EE Struts Hibernate的人力資源管理系統(tǒng)畢業(yè)設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《基于J2EE Struts Hibernate的人力資源管理系統(tǒng)畢業(yè)設(shè)計(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、基于J2EE+Struts+Hibernate的人力資源管理系統(tǒng)畢業(yè)設(shè)計 基于J2EE+Struts+Hibernate的 人力資源管理系統(tǒng) 摘 要 目前的人力資源管理軟件大多是單機(jī)系統(tǒng)下的應(yīng)用,為此,本系統(tǒng)采用面向?qū)ο蟮木幊碳夹g(shù),在Struts2+Hibernate框架的基礎(chǔ)上,采用B/S架構(gòu),設(shè)計出基于Web的符合用戶使用技能
2、和接受程度的人力資源管理系統(tǒng),從而解決了傳統(tǒng)的人力資源管理系統(tǒng)中無法在網(wǎng)絡(luò)環(huán)境中傳輸數(shù)據(jù)的缺陷,數(shù)據(jù)庫采用MySQL,采用Ajax實現(xiàn)異步通信,為客戶提供一個流暢的WEB界面。 本文首先在前言部分簡單介紹了有關(guān)人力資源信息管理方面的現(xiàn)狀;接著,對開發(fā)本系統(tǒng)所用各種技術(shù)進(jìn)行了簡單介紹;然后,根據(jù)軟件開發(fā)流程,對本系統(tǒng)的開發(fā)進(jìn)行了需求分析,確定了本系統(tǒng)所要實現(xiàn)的功能模塊為:員工檔案管理、招聘管理、培訓(xùn)管理、獎懲管理、薪資管理、考勤管理、系統(tǒng)管理、員工自助管理模塊;再者,本文重點對本系統(tǒng)的開發(fā)進(jìn)行概要設(shè)計和詳細(xì)的設(shè)計;最后,本文對本系統(tǒng)各個功能模塊的代碼實現(xiàn)過程進(jìn)行了介紹。 關(guān)鍵詞:Str
3、uts2;Hibernate;Ajax;B/S架構(gòu);面向?qū)ο?人力資源 前言 1.1 人力資源信息管理系統(tǒng)簡述 人力資源管理信息系統(tǒng)(Human Resource Information System,HRIS)是一個用來為制定人力資源決策提供信息的集成系統(tǒng),是為了提高企業(yè)人力資源管理水平而開發(fā)的。主要目標(biāo)是通過對員工及人力資源活動信息(招聘、工資)等的編制來提高效率,及時與用戶溝通,用最少的人力、物力滿足用戶需求。 人力資源管理信息系統(tǒng)在企業(yè)的有效實施,將會促進(jìn)企業(yè)人力資源
4、管理向規(guī)范化、標(biāo)準(zhǔn)化、決策科學(xué)化發(fā)展;促使企業(yè)人力資源管理人員從日常大量的行政事務(wù)性工作中解脫出來,逐步專注于對企業(yè)的人力資源管理活動進(jìn)行計劃,組織,監(jiān)督和咨詢職能;調(diào)動企業(yè)各級管理者和每一位普通員工都積極參與到人力資源管理活動中來。并且通過大力推進(jìn)人力資源管理信息化建設(shè),優(yōu)化了企業(yè)人力資源管理流程,建立起開放式的人力資源管理模式,從而提升企業(yè)人力資源管理水平和管理效率,充分調(diào)動一切有利因素,最終使人成為企業(yè)經(jīng)營發(fā)展中真正的第一資源。 人力資源管理信息系統(tǒng)是人力資源管理的電子信息化,是企業(yè)基于高速度、大容量的硬件和先進(jìn)的IT軟件的人力資源管理模式,即人力資源管理信息化或自動化。
5、 1.2 問題提出與現(xiàn)狀分析 進(jìn)入信息時代以來,隨著電腦與網(wǎng)絡(luò)技術(shù)的日逐發(fā)達(dá),電子商務(wù)空前發(fā)展,企業(yè)之間的競爭已經(jīng)從有形的市場逐漸轉(zhuǎn)向了網(wǎng)絡(luò),企業(yè)信息化成了企業(yè)在競爭中處于不敗之地的有效手段之一。而相應(yīng)的企業(yè)管理也都逐步進(jìn)入信息化軌道??人力資源管理系統(tǒng)就應(yīng)運(yùn)而生了。 據(jù)統(tǒng)計,目前,美國在財務(wù)會計上占有90%的工作由計算機(jī)完成,人事管理中80-100%的信息處理由計算機(jī)完成,計劃管理是80?90%,在計算機(jī)應(yīng)用發(fā)展較快的國家中,計算機(jī)應(yīng)用于經(jīng)濟(jì)管理的占80%,由此可以看出,在國外經(jīng)濟(jì)管理是計算機(jī)應(yīng)用的主要領(lǐng)域。我國的人事管理等信息系統(tǒng)的開發(fā)應(yīng)用是從1973年開始的,83年以
6、后才開始了大量的實際的開發(fā)和研究工作。因此,信息資源的開發(fā)和利用已被確立為國民經(jīng)濟(jì)信息的核心內(nèi)容,信息數(shù)字化,傳輸?shù)木W(wǎng)絡(luò)化是縮小發(fā)展中國家與發(fā)達(dá)國家差距的捷徑。 國內(nèi)目前的人力資源管理軟件大多處于傳統(tǒng)的人事管理系統(tǒng)階段,它們都只有人員和機(jī)構(gòu)檔案的管理、簡單的考勤管理和工資管理,缺少作為人力資源管理軟件所必需的人員招聘與任用、培訓(xùn)與開發(fā)等功能。國外系統(tǒng)雖然業(yè)務(wù)流程非常清晰,管理非常規(guī)范,但不夠靈活,通用性不強(qiáng)。 近年來,隨著Internet的快速發(fā)展,基于web的應(yīng)用系統(tǒng)的開發(fā)備受關(guān)注,但目前的人力資源管理軟件大多是單機(jī)系統(tǒng)下的應(yīng)用,這樣對信息的管理者和使用者來說很不方便,并且由
7、于開發(fā)工具本身的限制,對網(wǎng)絡(luò)功能的支持強(qiáng)度不強(qiáng),為以后軟件的升級到互聯(lián)網(wǎng)帶來了麻煩。因此,有必要開發(fā)一個基于網(wǎng)絡(luò)的人力資源管理系統(tǒng),能在網(wǎng)絡(luò)環(huán)境下實現(xiàn)數(shù)據(jù)的傳輸。而且,人力資源管理系統(tǒng)不僅僅能提供給企事業(yè)單位的人事部門或人力資源部門使用,而且也能提供給單位所有的部門和員工使用,這樣才能使人力資源系統(tǒng)發(fā)揮出更大的作用。 自1900年以來,人力資源管理內(nèi)容發(fā)生了很大變化,最初只是一些簡單的操作:工資發(fā)放,員工檔案記錄,安排社區(qū)訪問等,但現(xiàn)在隨著企業(yè)自身人力資源的日益龐大、復(fù)雜程度逐漸增強(qiáng),增加了很多管理方式,如:招聘、培訓(xùn)、員工調(diào)動等人機(jī)作坊再也無法適應(yīng)如今企業(yè)的人事管理了[1]。
8、 HRIS使得人力資源規(guī)劃和管理決策的做出可以在很在程度上依賴于相關(guān)信息,而不是僅僅靠管理人員的觀點與直覺,這對于企業(yè)的決策者和管理者來說都至關(guān)重要。作為計算機(jī)應(yīng)用的一部分,使用計算機(jī)對人事資料信息進(jìn)行管理,具有手工管理所無法比擬的優(yōu)點。例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高企業(yè)人事管理系統(tǒng)的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。 2 相關(guān)開發(fā)環(huán)境及技術(shù)理論 ?服務(wù)器操作系統(tǒng):Windows XP數(shù)據(jù)庫服務(wù)器:SQL2000 2.2 技術(shù)簡介 2.2.1 系統(tǒng)設(shè)計的主要技術(shù)
9、路線 本管理系統(tǒng)是在Struts + Hibernate框架的基礎(chǔ)上開發(fā)出來的。典型的J2EE結(jié)構(gòu)分為三層結(jié)構(gòu):表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)服務(wù)層。三層體系將業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問及合法性校驗等工作放在中間層處理。客戶端不直接與數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫交互。表現(xiàn)層是傳統(tǒng)的JSP技術(shù),自1999年問世以來,經(jīng)過多年的發(fā)展,其廣泛的應(yīng)用和穩(wěn)定的表現(xiàn),為其作為表現(xiàn)層技術(shù)打下了堅實的基礎(chǔ)。 該系統(tǒng)從邏輯結(jié)構(gòu)上分為四層:表示層、業(yè)務(wù)邏輯層、服務(wù)層和數(shù)據(jù)持久層。其中使用Struts2作為網(wǎng)站的整體基礎(chǔ)架構(gòu),負(fù)責(zé)MVC的分離,在Struts2框架的模型部分,利用H
10、ibernate框架對持久層提供支持。 主要使用技術(shù):6>Html、JavaScript、JSP、Servlet、Struts2、Hibernate、Ajax。 2.2.2 J2EE體系結(jié)構(gòu)介紹 J2EE是一種利用Java 2平臺來簡化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu)。J2EE核心是一組技術(shù)規(guī)范與指南,其中所包含的各類組件、服務(wù)架構(gòu)及技術(shù)層次,均有共通的標(biāo)準(zhǔn)及規(guī)格,讓各種依循J2EE架構(gòu)的不同平臺之間,存在良好的兼容性,解決過去企業(yè)后端使用的信息產(chǎn)品彼此之間無法兼容,導(dǎo)致企業(yè)內(nèi)部或外部難以互通的窘境。 J2EE技術(shù)的基礎(chǔ)就是核心Java平臺或Java 2
11、平臺的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點,如編寫一次、隨處運(yùn)行的特性、方便存儲數(shù)據(jù)庫的JDBC API以及能夠在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時還提供了對EJB(Enterprise JavaBeans)、Java Servlets API、JSPJava Server Pages以及XML技術(shù)的全面支持。其最終目的就是成為一個能夠使企業(yè)開發(fā)者大幅縮短投放市場時間的體系結(jié)構(gòu)。 (1)Struts2簡介 STRUTS是Apache組織的一個開放源碼的項目,它是一個可重用的MVC設(shè)計。STRUTS應(yīng)用有3個主要部件:Servlet及負(fù)責(zé)具體業(yè)務(wù)處理的Actio
12、n類(Controller),JSP頁面(view)和STRUTS應(yīng)用的業(yè)務(wù)邏輯封裝(Model)。 2.2.3 面向?qū)ο缶幊趟枷虢榻B 隨著計算機(jī)硬件設(shè)備功能的進(jìn)一步提高,使得面向?qū)ο蟮木幊坛蔀榭赡?。面向?qū)ο蟮木幊谈臃先祟惖乃季S方式,編寫的程序更加健壯和強(qiáng)大,更重要的是,面向?qū)ο缶幊坦膭顒?chuàng)造性的程序設(shè)計。面向?qū)ο缶幊淌且环N先進(jìn)的編程思想,更加容易解決復(fù)雜的問題。面向?qū)ο缶幊痰闹饕卣饔衃4]: (1)封裝性:面向?qū)ο缶幊毯诵乃枷胫痪褪菍?shù)據(jù)和對數(shù)據(jù)的操作封裝在一起。通過抽象,即從具體的實例中抽取共同的性質(zhì)形成一般的概念,比如類的概念。 (2)繼承:繼承體現(xiàn)了一種編程模式。子類可
13、以繼承父類的屬性和功能,即子類繼承了父類所具有的數(shù)據(jù)和數(shù)據(jù)上的操作,同時又可以增添子類獨有的數(shù)據(jù)和數(shù)據(jù)上的操作。 (3)多態(tài):多態(tài)性是指允許不同的類的對象對同一消息做出相應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享等優(yōu)勢,很好的解決了應(yīng)用程序中函數(shù)同名問題。 3 系統(tǒng)需求分析 3.1 功能需求分析 功能需求定義了開發(fā)人員必須實現(xiàn)的軟件功能,使得用戶能完成他們的任務(wù),從而滿足業(yè)務(wù)需求。參照業(yè)務(wù)需求分析的結(jié)果對每個業(yè)務(wù)進(jìn)行細(xì)化,從而得到系統(tǒng)的功能模塊。 通過分析,本系統(tǒng)應(yīng)該實現(xiàn)以下功能: (1) 登錄功能:為了防止非法用戶的訪問及信息保密性要
14、求,登錄模塊應(yīng)根據(jù)用戶類型對其操作權(quán)限進(jìn)行了限制。 (2) 員工檔案管理:應(yīng)實現(xiàn)員工檔案的增加、刪除、修改等操作。 (3) 招聘管理:管理員可以發(fā)布、刪除招聘信息。 (4) 培訓(xùn)管理:根據(jù)具體的情況設(shè)置人員培訓(xùn),可修改、刪除、添加培訓(xùn)信息,為員工的升遷提供科學(xué)的依據(jù)。 (5) 獎懲管理:實現(xiàn)對獎懲信息的增加、刪除等操作,為薪資、升遷等提供依據(jù)。 (6) 薪資管理:實現(xiàn)對員工工資的錄入、查詢等。 (7)員工自管理:該模塊強(qiáng)調(diào)員工自助服務(wù),如對個人檔案、薪資等信息的查詢。 (8) 考勤管理:實現(xiàn)員工進(jìn)行考勤登錄和查看考勤信息,實現(xiàn)公司管理員對當(dāng)日為參加考勤人員的考勤處理。
15、 (9) 系統(tǒng)管理模塊:對該系統(tǒng)用戶進(jìn)行管理(增加、刪除等)。 3.2 系統(tǒng)可行性分析 3.2.1 技術(shù)可行性分析 (1)在限制條件下,功能目的可以達(dá)到。 (2)利用現(xiàn)有技術(shù),功能目的可以達(dá)到。 (3)在規(guī)定的期限內(nèi),開發(fā)能完成。 3.2.2 環(huán)境可行性分析 基于Java的一次編譯到處運(yùn)行,系統(tǒng)可以在任何操作系統(tǒng)下運(yùn)行。 4 系統(tǒng)總體設(shè)計 根據(jù)系統(tǒng)功能需求分析,設(shè)計出系統(tǒng)總體結(jié)構(gòu)圖如圖4.1所示: 圖4.1 系統(tǒng)總體結(jié)構(gòu)圖 4.2 系統(tǒng)各功能模塊用例分析 (1) 系統(tǒng)的總統(tǒng)用例
16、圖如圖4.2所示: 圖4.2 系統(tǒng)總統(tǒng)用例圖 系統(tǒng)管理員負(fù)責(zé)系統(tǒng)系統(tǒng)用戶的定義和權(quán)限劃分、檔案管理、招聘管理、培訓(xùn)管理、獎懲管理、薪資管理、文件管理等工作;普通員工只能查看自己相關(guān)信息。 員工檔案管理用例圖如圖4.3所示: 圖4.3 員工檔案管理用例圖 用例名稱:員工檔案管理 簡要描述:系統(tǒng)管理員可以對員工檔案信息進(jìn)行添加、注銷、修改、查看操作,公司職員可以查看個人檔案信息。 參與者: 系統(tǒng)管理員、公司職員。 前置條件:系統(tǒng)管理員為公司職員授權(quán)。 后置條件:通過校驗,系統(tǒng)中存在員工檔案信息。 (3) 培訓(xùn)管理用例圖如圖4.4所示: 圖4.4
17、 培訓(xùn)管理用例圖 用例名稱:培訓(xùn)管理 簡要描述:系統(tǒng)管理員可以對培訓(xùn)進(jìn)行添加、修改、刪除等操作,普通員工只能查看自己的培訓(xùn)信息。 參與者: 系統(tǒng)管理員、公司職員。 前置條件:系統(tǒng)管理員為公司職員授權(quán)。 后置條件:通過校驗,系統(tǒng)中存在培訓(xùn)信息。 (4) 獎罰管理用例圖如圖4.5所示: 圖4.5 獎罰管理用例圖 用例名稱:獎罰管理。 簡要描述:系統(tǒng)管理員可以對員工的獎罰信息進(jìn)行添加、修改、刪除等操作,普通用戶只能查看自己的獎罰信息。 參與者: 系統(tǒng)管理員、公司職員。 前置條件:系統(tǒng)管理員為公司職員授權(quán)。 后置條件:通過校驗
18、,系統(tǒng)中存在獎罰信息。 (5)員工自管理用例圖如圖4.6所示: 圖4.6 員工自管理用例圖 用例名稱:員工自管理。 簡要描述:系統(tǒng)管理員和普通職員都可以修改自己的登錄密碼,系統(tǒng)管理員可以查看全體員工的登錄歷史,但普通用戶只能查看自己的登錄歷史。 參與者: 系統(tǒng)管理員、公司職員。 前置條件:系統(tǒng)管理員為公司職員授權(quán)。 后置條件:通過校驗,系統(tǒng)中存在員工的登錄密碼和登錄信息。 薪資管理用例圖如圖4.7所示: 圖4.7 薪資管理用例圖 用例名稱:薪資管理。 簡要描述:系統(tǒng)管理員可以對員工工資進(jìn)行核算和發(fā)放,也可以查看所有員工的工資發(fā)放情況,普通員
19、工只能查看自己的薪資信息。 參與者: 系統(tǒng)管理員、公司職員。 前置條件:系統(tǒng)管理員為公司職員授權(quán)。 后置條件:通過校驗,系統(tǒng)中存在員工的基本工資、獎罰情況等信息。 考勤管理用例圖如圖4.8所示: 圖4.8 考勤管理用例圖 用例名稱:部門管理。 簡要描述:系統(tǒng)管理員可以對當(dāng)天沒有參加考勤打卡的員工插入曠工記錄。普通用戶每天可以進(jìn)行考勤打卡,也可以查看考勤記錄。 參與者: 系統(tǒng)管理員、公司職員。 后置條件:通過校驗,系統(tǒng)中存在部門信息。 招聘管理用例圖如圖4.9所示: 圖4.9 招聘信息管理用例圖 用例名稱:部門管理。 簡要描述
20、:系統(tǒng)管理員可以對部門的招聘信息進(jìn)行增、刪、改、查等操作和管理應(yīng)聘者信息。 參與者: 系統(tǒng)管理員。 后置條件:通過校驗,系統(tǒng)中存在部門招聘信息和應(yīng)聘者信息。 系統(tǒng)管理用例圖如圖4.10所示: 圖4.10 系統(tǒng)管理用例圖 用例名稱:系統(tǒng)管理。 簡要描述:系統(tǒng)管理員通過該功能模塊實現(xiàn)對系統(tǒng)用戶的管理。 參與者: 系統(tǒng)管理員。 后置條件:通過校驗,系統(tǒng)中存在部門招聘信息和應(yīng)聘者信息。 4.3.1 數(shù)據(jù)庫總體設(shè)計 該系統(tǒng)采用SQL2000數(shù)據(jù)庫,涉及的表有:用戶信息表,員工信息表,部門信息表,職位信息表,招聘信息表,培訓(xùn)信息表,獎懲信息表,
21、薪資信息表,考勤信息表。系統(tǒng)的E-R結(jié)構(gòu)如圖4.11所示: 圖4.11 系統(tǒng)E-R圖 (1) 用戶信息表(yilin_user):用來存儲用戶信息,其表結(jié)構(gòu)見表4-1所示: 表4-1 用戶信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 id number Sequence 主鍵 編號 2 accountno varchar2 20 外鍵 用戶帳號 3 password varchar2 50 非空 用戶密碼 4 type number Default0 非空 用戶類型 5 status number Default0是否注銷 備注: 1、typ
22、e :0為高級管理員,2為普通管理員,3為普通用戶2、status :0未注銷,1己注銷 (2)薪資信息表(yilin_salary):用來存儲員工薪資信息,其表結(jié)構(gòu)見表4-2所示: 表4-2 薪資信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 id number Sequence 主鍵 編號 2 memberno number外鍵 員工編號 3 smonth varchar2 8 非空 所屬月份 4 basicsalary number非空 基本工資 5 housesalary number 住房補(bǔ)助 6 extrasalary number 額外
23、補(bǔ)助 7 taxsalary number 稅收金額 8 totalbonus number 3全額獎金 9 forfeit number 3罰款金額 10 issuedate date 發(fā)布日期 員工信息表(yilin_employee):用來存儲員工檔案信息,表結(jié)構(gòu)見表4-3所示: 表4-3 員工信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 id number Sequence 主鍵 編號 2 nickname varchar2 20 非空 員工姓名 3 englishname varchar2 20英文名 4 gender varchar2
24、 1 非空 員工性別 5 age number 6 native varchar2 50員工籍貫 7 birthday varchar2 30出生日期 8 deptid number外鍵 對應(yīng)部門id 9 titleid number外鍵 對應(yīng)職務(wù)id 10 wphone varchar2 20辦公 11 fphone varchar2 20家庭 12 email varchar2 20電子郵箱 13 politicalface varchar2 4政治面貌 14 health varchar2 25健康狀況 15 profession varchar2 2
25、0專業(yè) 16 education varchar2 15學(xué)歷 17 marry varchar2 1婚姻狀況 18 identityid varchar2 18 非空 身份證號 19 address varchar2 50現(xiàn)居地址 20 icon varchar2 200照片路徑 21 enterdate date 錄入日期 22 modifydate date 更改日期 (4) 職務(wù)信息表(yilin_title):用來存儲各職務(wù)信息,其表結(jié)構(gòu)見表4-4所示: 表4-4 職務(wù)信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 id number S
26、equence 主鍵 編號 2 titname varchar2 20 非空 職位名稱 3 dept_id number外鍵 部門id (5) 部門信息表(yilin_dept):用來存儲部門信息,其表結(jié)構(gòu)見表4-5所示: 表4-5 部門信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 id number Sequence 主鍵 編號 2 depname varchar2 20 非空、唯一 部門名 (6) 獎懲信息表(yilin_rewardpunish):用來存儲員工獎懲信息,其表結(jié)構(gòu)見表4-6所示: 表4-6 獎懲信息表 字段號 字段名稱 字段
27、類型 字段大小 索引 字段說明 1 id number Sequence 主鍵 編號 2 rpname varchar2 30 非空 獎懲名稱 3 reason varchar2 50獎懲原因 4 member varchar2 50獎懲人員 5 descr varchar2 200獎懲描述 6 issuedate date 發(fā)布日期 7 issueMem varchar2 15發(fā)布人員 (7)文件信息表(yilin_file):用來存儲所上傳文件路徑,表結(jié)構(gòu)見表4-7所示: 表4-7 文件信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 id n
28、umber Sequence 主鍵 編號 2 loadfile varchar2 50 非空 上傳文件名 3 update date 上傳日期 (8)招聘信息表(yilin_recruitment):用例存儲招聘信息,其表結(jié)構(gòu)見表4-8所示: 表4-8 招聘信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 id number Sequence 主鍵 編號 2 content varchar2 500 非空 招聘內(nèi)容 3 issuedate date 發(fā)布日期 (9)考勤信息表(yilin_attend):用例存儲考勤信息,其表結(jié)構(gòu)見表4-9所示:
29、 表4-9 考勤信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 id number Sequence 主鍵 編號 2 employee number Sequence 外鍵 員工id 3 dutyday datenot-null 考勤日期 4 iscome varchar2 20 not-null 是否上班 5 type varchar2 20 not-null 考勤類型 (10)培訓(xùn)信息表(yilin_train):用來存儲員工培訓(xùn)信息,其表結(jié)構(gòu)見表4-10所示: 表4-10 培訓(xùn)信息表 字段號 字段名稱 字段類型 字段大小 索引 字段說明 1 i
30、d number Sequence 主鍵 編號 2 tname varchar2 20 非空 培訓(xùn)名稱 3 tgoal varchar2 20 非空 培訓(xùn)目標(biāo) 4 tmaterial varchar2 20培訓(xùn)教材 5 tmember varchar2 200 非空 參加人員 6 startdate varchar2 20開始日期 7 enddate varchar2 20結(jié)束日期 8 tnumber number 參加人數(shù) 9 teacher varchar2 20培訓(xùn)講師 10 grade varchar2 10培訓(xùn)級別 11 affect varchar2 10影響程
31、度 12 issuedate date 發(fā)布日期 5 系統(tǒng)詳細(xì)設(shè)計 設(shè)計出靈活、便捷的用戶操作界面,支持多用戶并發(fā)訪問,合理設(shè)計數(shù)據(jù)庫對象,使用Hibernate技術(shù)對數(shù)據(jù)進(jìn)行持久化和對數(shù)據(jù)庫信息訪問,系統(tǒng)的總統(tǒng)架構(gòu)使用基于STRUTS的開發(fā)模式。系統(tǒng)應(yīng)達(dá)到以下目標(biāo): (1)符合實際需求,切合實際,能提高企業(yè)人力資源管理,提高企業(yè)工作效率,降低成本。 (2)采用B/S架構(gòu),滿足信息共享的需要,安裝及部署方便,安全性好。 (3)系統(tǒng)具有良好的可維護(hù)性和可擴(kuò)展性,并且可以根據(jù)用戶需求的變化做出修改,滿足企業(yè)個性化需求,便于升級。 (4)能夠及時更新相關(guān)數(shù)
32、據(jù),便于企業(yè)決策。 系統(tǒng)運(yùn)行的操作系統(tǒng)為Windows xp,數(shù)據(jù)庫采用SQL2000,應(yīng)用服務(wù)器采用Tomcat 6.0.20應(yīng)用服務(wù)器。 整個應(yīng)用部署在一臺應(yīng)用服務(wù)器、一臺數(shù)據(jù)庫服務(wù)器上。系統(tǒng)可以使用企業(yè)內(nèi)部局域網(wǎng),也可以通過廣域網(wǎng)訪問系統(tǒng)。 (1)該系統(tǒng)是以關(guān)系數(shù)據(jù)庫為存儲,基于Web的應(yīng)用系統(tǒng)。由一系列組件和功能模塊組成。 ● 總體結(jié)構(gòu):瀏覽器/服務(wù)器(B/S) ● 編程模式:Jsp+Hibernate+STRUTS ● 邏輯結(jié)構(gòu):用戶界面開發(fā)、業(yè)務(wù)邏輯處理和數(shù)據(jù)存儲 (2)該系統(tǒng)聯(lián)合使用業(yè)務(wù)代理和DAO模
33、式如圖5.1所示: 圖5.1 系統(tǒng)架構(gòu)圖 5.4 系統(tǒng)業(yè)務(wù)流程 系統(tǒng)的業(yè)務(wù)流程嚴(yán)格遵守J2EE應(yīng)用的規(guī)范,瀏覽器從進(jìn)入系統(tǒng)開始,即發(fā)送*.do的請求,該請求被ActionServlet攔截,進(jìn)入Struts框架的控制。系統(tǒng)的所有超級鏈接,包括表單的處理都將向*.do請求,即被ActionServlet攔截,由Struts的MVC框架控制。系統(tǒng)的業(yè)務(wù)流程圖如圖5.2所示: 圖5.2 系統(tǒng)業(yè)務(wù)流程圖 瀏覽器獲得數(shù)據(jù)后向服務(wù)器端發(fā)送請求(requ
34、est),FilterDispatch接收到從瀏覽器發(fā)送來的請求后將相應(yīng)的數(shù)據(jù)請求分發(fā)到相應(yīng)的Action的execute方法進(jìn)行處理,execute方法通過BeanFactory創(chuàng)建service實現(xiàn)類的對象,實現(xiàn)類對象調(diào)用其響應(yīng)的業(yè)務(wù)邏輯方法,業(yè)務(wù)邏輯層的方法又調(diào)用Dao層的方法進(jìn)行數(shù)據(jù)庫的操作,對數(shù)據(jù)進(jìn)行持久化。其時序圖如圖5.3所示: 圖5.3 系統(tǒng)時序圖 5.5 系統(tǒng)代碼實現(xiàn) 5.5.1 Domain層實現(xiàn) Domain對象是抽象出的實體,通常就是需要持久化的對象。本系統(tǒng)采用ORM框架Hibernate對PO進(jìn)行持久化處理。 (一) Domain Object的設(shè)
35、計 本系統(tǒng)共有10個Domain Object對象,分別是: (1)Department:對應(yīng)系統(tǒng)的部門信息,包含部門的編號和部門名稱 (2)Employee:對應(yīng)系統(tǒng)的員工信息,包含員工的編號,姓名,性別,身份證號,對應(yīng)的職位等信息 (3)UserInfo:對應(yīng)員工的用戶登錄信息,包含用戶的用戶名,密碼等屬性 (4)Interview:對應(yīng)應(yīng)聘人員的個人信息 (5)Recruitment:對應(yīng)與系統(tǒng)的招聘信息的類,包含招聘主題,招聘內(nèi)容,發(fā)布時間,發(fā)布人員等信息 (6)RewardPunish:對應(yīng)于對員工的獎懲信息 (7)Salary:對應(yīng)于員工的工資信息 (8)Titl
36、e:對應(yīng)于員工的職位信息的類 (9)Train:對應(yīng)于公司對員工的培訓(xùn)信息的類 (10)FileInfo:對應(yīng)于系統(tǒng)文件的存儲信息的類 (二)Domain Object的映射 Hibernate映射文件是用來描述數(shù)據(jù)庫中表和Domain Object關(guān)系的xml文件。Hibernate映射文件中,要注意表之間的關(guān)系映射: (1) Employee與Department和Title類為N-N的關(guān)系,Employee與UserInfo類為1-1的關(guān)系,Employee的映射文件//0>.中的相關(guān)代碼如下: ……. many-to-one name"department" cla
37、ss"http://.//.artment" fetch"select" column name"DEPTID" precision"4" scale"0" / /many-to-one many-to-one name"title" class"http://.//.le" fetch"select" column name"TITLEID" precision"4" scale"0" / /many-to-one one-to-one name"userinfo" cascade"all" outer-join"true" property-ref"employee" class"UserIn
38、fo" /one-to-one ……. Title與Department也是多對多的關(guān)系,在Title類的映射文件//.文件中的映射相關(guān)代碼如下: ……. many-to-one name"dept" class"http://.//.artment" fetch"select" column name"DEPT_ID" precision"4" scale"0" / /many-to-one ……(3) Attend和Employee是N-1的關(guān)系,在Attend類的映射文件//.文件中的映射相關(guān)代碼如下: ………… many-to-one nam
39、e"employee" column"EMPID" not-null"true" lazy"false"/many-to-one ………… 5.5.2 DAO層實現(xiàn) DAO模式是一中標(biāo)準(zhǔn)的J2EE設(shè)計模式,具體的DAO類包含了數(shù)據(jù)庫的訪問邏輯,每個DAO組件可對一個數(shù)據(jù)庫表完成基本的增、刪、改、查等操作。 (一)DAO組件的接口定義和DAO組件的實現(xiàn)類 (1)本系統(tǒng)定義了兩個Dao接口,分別為: 1)IEmployeeDao:主要定義了對用戶信息增、刪、改、查的方法 該接口中定義的方法主要有: //根據(jù)用戶賬號查詢用戶信息 Us
40、erInfo findUserByAccountnoLong accountno throws Exception; //根據(jù)員工號身份證號工信息 Employee findEmployeeByIdString identityid throws Exception; //添加或修改部門信息,級聯(lián)修改員工,職稱信息 void saveOrUpdateDepartmentDepartment departmentthrows Exception; //添加或修改員工信息 void saveOrUpdateEmployeeEmployee emplo
41、yeethrows Exception; //根據(jù)部門名稱查詢部門 Department findDeptByNameString depnamethrows Exception; //查找所有的部門 List findAllDeptthrows Exception; //根據(jù)員工的部門號與職稱名查找職稱信息 Title findTitleString titname,Department deptthrows Exception; //查詢所有的員工信息 List findAllEmployeethrows Exception;
42、 //查詢所有的員工的數(shù)量 Integer findAllEmployeeNumthrows Exception; //根據(jù)條件查詢所有的員工信息并分頁顯示 List findAllEmployeeByConditionLong staffno,String gender,String depname,String educationthrows Exception; //根據(jù)員工的編號刪除員工信息 void deleteEmployeeByNoLong idthrows Exception; //根據(jù)員工的編號查找員工的工資信息
43、 List findSalaryByEmployeeidLong idthrows Exception; //查詢所有的上傳文件路徑 //查找所有的用戶信息數(shù) Integer findAllUserthrows Exception; //根據(jù)id號查詢用戶消息 UserInfo findUserLong idthrows Exception; //查找所有的用戶信息 List findAllUserint start,int endthrows Exception; //保存用戶信息 void saveUserUserIn
44、fo userthrows Exception; //根據(jù)id號刪除用戶信息 void deleteUserLong idthrows Exception; 2)IAffairDao:主要定義了對用戶事務(wù)請求的數(shù)據(jù)庫交互的方法 該接口中定義的方法有: //查找所有的招聘信息數(shù) Integer findAllRecruitthrows Exception; //根據(jù)id號查詢招聘消息 Recruitment findRecruitLong idthrows Exception; //查找所有的招聘信息 List findA
45、llRecruitint start,int endthrows Exception; //保存招聘信息 void saveRecruitRecruitment recruitthrows Exception; //根據(jù)id號刪除招聘信息 void deleteRecruitLong idthrows Exception; //保存培訓(xùn)信息 void saveTrainTrain trainthrows Exception; //查找所有的培訓(xùn)信息數(shù) Integer findAllTrainNumthrows Exception;
46、 //查詢所有的培訓(xùn)信息 List findAllTrainthrows Exception; //根據(jù)條件查詢所有的培訓(xùn)信息 List findAllTrainByConditionString tname,String teacherthrows Exception; //根據(jù)id刪除培訓(xùn)信息 void deleteTrainLong idthrows Exception; //添加獎懲信息 void addJcRewardpunish jcthrows Exception; //查找所有的獎懲信息數(shù) Inte
47、ger findAllJcNumthrows Exception; //查找所有的獎懲信息 List findAllJcthrows Exception; //根據(jù)條件查詢所有的獎懲信息 List findAllJcByConditionString rpname,String memberthrows Exception; //根據(jù)id刪除獎懲信息 void deleteJcLong idthrows Exception; //上傳文件 void addFileFileInfo filethrows Exception;
48、 //查找所有的文件信息數(shù) Integer findAllFileNumthrows Exception; //查找所有的文件信息 List findAllFilethrows Exception; //根據(jù)條件查詢所有的文件信息 List findAllFileByConditionString memberno,String smonththrows Exception; //根據(jù)id刪除文件信息 void deleteFileLong idthrows Exception; //添加薪資信息 void addSalar
49、ySalary salarythrows Exception; //查找所有的薪資信息數(shù) Integer findAllSalaryNumthrows Exception; //查找所有的薪資信息 List findAllSalarythrows Exception; //根據(jù)條件查詢所有的薪資信息 List findAllSalaryByConditionString memberno,String smonththrows Exception; //根據(jù)id刪除薪資信息 void deleteSalaryLong idthro
50、ws Exception; (2)本系統(tǒng)定義了兩個Dao接口實現(xiàn)方法,分別為: 1)IEmployeeDaoImpl:實現(xiàn)了IEmployeeDao接口,并實現(xiàn)了該接口中的所有方法。 2)IAffairDaoImpl:實現(xiàn)了IaffairDao接口,并實現(xiàn)了該接口中所有方法。 (二)DAO工廠類 Dao工廠類BeanFactory的設(shè)計主要用到的單例設(shè)計模式和工廠設(shè)計模式,其主要代碼如下: ……… public static Object getBeanString beanName if beanName.equals"affairDao" affa
51、irDao getAffairDao; return affairDao; if beanName.equals"affairService" affairService getAffairService; return affairService; if beanName.equals"employeeDao" employeeDao getEmployeeDao; return employeeDao; if beanName.equals"employeeService" employeeService getEmployeeService; retur
52、n employeeService; return null; . 5.5.3 Service層實現(xiàn) Service層主要是實現(xiàn)通過業(yè)務(wù)邏輯組件,業(yè)務(wù)邏輯組件調(diào)用Dao層的方法實現(xiàn)與數(shù)據(jù)庫進(jìn)行交互,對用戶請求的進(jìn)行業(yè)務(wù)邏輯處理的過程。 (一)Service的接口定義和DAO組件的實現(xiàn)類 (1)本系統(tǒng)定義了兩個Service接口,分別為: 1)IEmployeeService:主要定義了對用戶信息增、刪、改、查的方法。該接口中定義的方法主要對應(yīng)于IEmployeeDao中定義的方法 2)IAffairSerivce:主要定義了對用戶事務(wù)請
53、求的數(shù)據(jù)庫交互的方法。 該接口中定義的方法主要對應(yīng)于IAffairDao中定義的方法 (2)本系統(tǒng)定義了兩個Service接口實現(xiàn)方法,分別為: 1)IEmployeeServiceImpl:實現(xiàn)了IEmployeeService接口,并實現(xiàn)了該接口中的所有方法。該類中的方法分別調(diào)用了IEmployeeDaoImpl對用戶請求進(jìn)行數(shù)據(jù)庫交互和業(yè)務(wù)處理。 2)IAffairServiceImpl:實現(xiàn)了IAffairSerivce接口,并實現(xiàn)了該接口中所有方法。該類中的方法分別調(diào)用了IAffairDaoImpl中的方法對用戶的事務(wù)請求進(jìn)行數(shù)據(jù)庫交互和事務(wù)處理。
54、5.5.4 Web層實現(xiàn) 本系統(tǒng)的MVC框架使用Struts2,Struts是經(jīng)典的使用最廣泛的MVC框架,它可以保證系統(tǒng)的可控制性,系統(tǒng)的穩(wěn)定可用性等。 使用Struts2,在web.xml文件中增加如下配置: filter-namestruts2/filter-name filter-mapping filter-namestruts2/filter-name url-pattern/*/url-pattern /filter-mapping 本系統(tǒng)的控制器Action中都使用了依賴注入方式接收業(yè)務(wù)
55、請求參數(shù) (一) 用戶登錄請求Action的實現(xiàn) 用戶登錄Action:LoginAction,該類通過接收用戶請求參數(shù),調(diào)用IEmployeeServiceImpl中相應(yīng)的登錄業(yè)務(wù)邏輯方法login進(jìn)行用戶登錄請求處理。只有輸入的正確的用戶名、密碼和用戶類型才能成功登錄。 登錄頁面Login.jsp如圖5.4所示: 5.4 用戶登錄頁面 LoginAction中的主要代碼如下: public String execute IEmployeeServ
56、ice employeeService IEmployeeService BeanFactory .getBeanBeanFactory.EMPLOYEESERVICE; HttpServletRequest request ServletActionContext.getRequest; try Long no //.m; UserInfo user employeeService.loginno, password.trim, type.trim; ifuser ! null //.Attribute"user",
57、user; request.setAttribute"message", "登陸成功!"; Employee employee user.getEmployee; ifemployee ! null //.Attribute"self", employee; List depts new ArrayList; depts employeeService.findAllDept; //.Attribute"depts", depts; return "success"; catc
58、h EmployeeServiceException e // TODO Auto-generated catch block e.printStackTrace; request.setAttribute"message", e.getMessage; return "failure"; LoginAction在struts.xml文件中的配置如下: action name"login" class"http://.//.ion.LoginAction" 系統(tǒng)根據(jù)LoginAction中的返回值確定
59、跳轉(zhuǎn)到相應(yīng)的頁面,當(dāng)返回“success”時,當(dāng)用戶類型為管理員時,跳轉(zhuǎn)到管理員主頁面,當(dāng)用戶類型為公司職員時,跳轉(zhuǎn)到普通用戶的主頁面。 管理員主頁面如圖5.5所示: 圖5.5 管理員主頁面 普通用戶主頁面如圖5.6所示: 圖5.6 普通員工主界面 (二) 員工檔案管理模塊Action的實現(xiàn) 員工檔案管理模塊分為添加員工檔案和管理員工檔案兩部分: 添加員工檔案: 添加員工檔案請求由AddEmployeeAction類處理,該方法調(diào)用IEmployeeServiceImpl中的saveOrUpdateEmployee方法向數(shù)據(jù)庫中添加用戶信息。 添加員
60、工檔案界面如圖5.7所示: 在該頁面中,“所在部門”下拉列表框中的數(shù)據(jù)由系統(tǒng)從數(shù)據(jù)庫表中自動活得,通過Ajax技術(shù),實現(xiàn)了在選擇所在部門后,自動從數(shù)據(jù)庫中查找出對應(yīng)與所選擇的部門相對應(yīng)的職稱名稱并顯示在“職稱”下拉列表中,整個過程中頁面不用進(jìn)行任何跳轉(zhuǎn)。相關(guān)代碼如下: function selectDepts var depname document.getElementById"depname"; var options depname.options; var value ""; for var i 0;
- 溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《晏子使楚》優(yōu)秀課件 (3)
- 科室醫(yī)院年終總結(jié)課件
- 常用邏輯用語章末總結(jié)課件(人教A版選修1-1)免
- 新版PEP四年級英語上冊Unit3-My-Friends-B-Let’s-learn完美版-PPT
- 金融科技機(jī)遇
- 抗菌藥物合理使用專家講座
- 阿奇霉素在臨床中的應(yīng)用專家講座
- 納米抗菌蠶絲被介紹
- 男性盆部和會陰斷層解剖研究
- 部編選擇性必修二經(jīng)濟(jì)與社會生活-第九課世紀(jì)以來人類的經(jīng)濟(jì)與生活教學(xué)課件
- 春七年級數(shù)學(xué)下冊 82 整式乘法單項式與單項式相乘課件4 (新版)滬科版
- 部編人教版語文七年級下冊7.土地的誓言課件
- 手足口病
- 正壓通氣裝置課件
- 課件】食品分析與檢驗技術(shù)第二章