javaweb人事管理系统

javaweb人事管理系统
javaweb人事管理系统

综合课程实习说明书

课程名称:综合课程实习

设计题目:人事管理系统

专业:计算机科学与技术班级:0601

学生姓名: 郭威学号:0612030108

指导教师:文志强

湖南工业大学科技学院教务部制

2010年 1 月 15 日

目录

1 引言 (1)

1.1管理信息系统概述.........................................

错误!未定义书签。

1.2 SQL2005介绍 (2)

1.3框架介绍 (3)

2 系统分析 (6)

2.1需求分析 (6)

2.2系统目标 (6)

2.3系统概况 (6)

2.4系统性能要求 (6)

3系统设计 (7)

3.1概要设计 (7)

3.2详细设计 (10)

4系统实现 (14)

4.1编程环境介绍 (14)

4.2系统运行结果 (14)

5总结与体会 (25)

参考文献 (16)

1 引言

人事管理是现代企业管理工作不可缺少的一部分,是适应现代企业管理尺度的要求、推动企业劳动人事管理走向科学化、规范化的必要条件。只有人事管理规范了,才能在其他方面更好的发展。为了适应现代企业或公司经营发展的需要,人事管理也从以前的手工管理逐渐被规范化的管理信息系统所代替。众所周知,当今社会为信息社会,世界已进入在计算机信息管理领域中激烈竞争的年代,因此,加强人事管理在单纯依靠以手工管理的方法,不仅需要耗用大量的人力、物力、财力,而且工作效率低,而且难以达到预期的目的,为提高企业工作效率、保证企业人事管理质量、快而准确地为企业制定好的经营方针与决策,,人事管理是当今企事业单位中不可缺少的一部分.它适应时代潮流,顺应时代发展,是现代企业制度发展的要求,推动企业人事管理科学化,规范化的必要条件“科学技术是第一生产力”,只有人事管理规范化,其他事情才能办好。适应现代企事业单位管理规范化,经营发展战略的需要,人事管理也应由原来的手工管理逐渐被规范化的信息管理系统所代替。

众所周知,当今社会是信息社会,特别是在我国加入WTO之后,信息更是科学化,迅速化,全球化。因此,要想加强人事管理,单纯依靠以前的手工管理,不仅会浪费大量的人力,物力,财力,而且效率不高,而且很难达到预期的目的。所以人事管理信息系统能够为高层领导者提供准确的人员信息,以便领导者了解企业各个部门的人员构成,计算好人力成本,安排好工作计划,使企业变的更高效,更具有生命力。

1.1 管理信息系统概述

20世纪,随着全球世界经济的发展,众多经济学家纷纷提出了新的管理理论。20世纪50年代,西蒙提出管理依赖于信息和决策的思想。同时期的维纳发表了控制论,他认为管理是一个控制过程。1958年,盖尔写到:“管理将以较低的成本得到及时准确的信息,做到较好的控制”。这个时期,计算机开始用于会计工作。数据处理一词已经出现。

管理信息系统的创始人,明尼苏达大学的管理学教授Gordon B. Davis在1985年给了管理信息系统一个较完整的定义,即“管理信息系统是一个利用计算机软硬件资源以及数据库的人-机系统。它能提供信息支持企业或组织的运行,管理和决策功能。”这个定义全面地说明了管理信息系统的目标,功能和组成,而且反映了管理信息系统在当时达到的水平。

管理工作的成败,取决于能否做出有效的决策,而决策的正确程度则取决于信息的质量。计算机在管理中的应用不仅仅只用于数据处理,而且辅助决策的工具。计算机能把生产、经营过程中的巨大数据流收集、组织起来,经过处理,转换为对各部门不可缺少的数据,经过分析,使它变为各级管理人员做出决策具有重要意义的信息。管理方面应用计算机已经发展成为专门的管理信息系统(Management Information System,简

称MIS)。我国的管理信息系统应用已从单项业务的信息管理,迅速向综合的管理层和决策层的信息管理发展,应用水平日趋提高。

1.2 SQL2005介绍

SQL(Structured Query Language),结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。绝大多数流行的关系型数据库管理系统都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。

SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。

SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。

SQL Server 2005 数据引擎是本企业数据管理解决方案的核心。此外 SQL Server 2005 结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的 BI 解决方案,帮助您的团队通过记分卡、Dashboard、Web services 和移动设备将数据应用推向业务的各个领域。

与 Microsoft Visual Studio、Microsoft Office System 以及新的开发工具包(包括 Business Intelligence Development Studio)的紧密集成使 SQL Server 2005 与众不同。无论您是开发人员、数据库管理员、信息工作者还是决策者,SQL Server 2005 都可以为您提供创新的解决方案,帮助您从数据中更多地获益。

1.3 框架介绍

本系统采用Struts+Spring+Hibernate的框架实现。

SSH=Struts + Spring + Hibernat。其中,Struts进行流程控制,Spring进行业务流转,Hibernate进行数据库操作的封装。

典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。

表现层是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用

和稳定的表现,为其作为表现层技术打下了坚实的基础。

中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种:

Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用Struts。

Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。

DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。

PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库。

Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。

1)Model部分

由ActionForm和JavaBean组成,其中ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionFrom 里面的请求参数处理用户的请求。

JavaBean则封装了底层的业务逻辑,包括数据库访问等。

2)View部分

该部分采用JSP实现。

Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。对应上图的JSP部分。

3)Controller组件

Controller组件有两个部分组成——系统核心控制器,业务逻辑控制器。

系统核心控制器,对应上图的ActionServlet。该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。

业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。对应Action部分。

Spring:

Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

目的:解决企业应用开发的复杂性

功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

范围:任何Java应用

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

Hibernate:

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB 的J2EE架构中取代CMP,完成数据持久化的重任。

Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。

2.1需求分析

人事管理是每个企业必不可少的。人事档案管理系统一般包括对人事档案的统计、查询、更新、报表输出等功能。

如果人工直接统计的话,工作量将十分庞大,特别是,如果企业员工有几万或几十万人时,人工统计将变得不可能想象。

用计算机可使人们从繁重而又单调的统计运算中解脱出来,仅用一些简单的操作便可及时准确地获得需要的信息。效率大大高于人工统计。

我们利用计算机替代手工操作建立的人事信息系统,即计算机人事信息系统,其主要功能可以归纳为以下三点:

一是可以高效能、大容量地收集、处理、存贮人事信息,大幅度地提高人事管理信息系统的工作质量和效率。

二是可以及时掌握整个人事管理系统的全面情况,提供系统的准确的人事信息,可以促进人事工作的规范化及各项管理制度与指标体系的建立和健全,从而提高行政管理水平。

三是可以提供各种加工处理了的人事信息,以满足人事管理的特殊要求,适应新形势对教职工队伍提出的新要求,帮助选择方案,实现优化决策。

2.2系统目标

通过人事管理系统可使管理者快速高效地完成企业日常事务中的人事工作,降低人事管理的成本,使管理者能集中精力实现企业战略目标。人事管理系统的具体目标如下:

1)企业人事管理的基本信息进行管理。

2)企业的员工信息(即人事管理功能)。

3)实现为个人提供网络工作平台的功能。

4)实现企业的应聘信息的管理功能。

5)实现企业员工培训的一系列相关信息的管理。

6)员工薪酬信息管理。

7)系统用户信息的管理。

8)系统运行稳定、安全可靠。

2.3 系统功能分析

人事管理系统的主要任务是对人事档案进行整理,使得能方便快捷地对人事档案进行查询、统计、更新,并且能按一定要求输出报表。

通过该系统,使企业的人事管理工作系统化、规范化、自动化,从而提高企业人事管理的效率。

2.4系统性能要求

1)系统安全、可靠;

2)功能齐全;

3)操作方便、界面友好;

4) 易于维护和扩充。

3.1概要设计

3.1.1系统流程图

图3.1 人事信息管理系统的系统运行流程图

3.1.2系统功能模块

1)部门管理:对部门信息进行添加、查询及删除操作。

2)员工管理:对员工信息进行添加、修改、查询及删除操作。

3)招聘管理:对招聘人信息进行添加、查询、删除及录用操作。

4)培训管理:对培训信息进行添加、查询及删除操作。

5)薪资管理:对薪资信息进行添加、查询及删除操作。

6)奖惩管理:对员工奖励,处罚信息进行添加、查询及删除操作

3.1.3人事管理系统总体结构图

人事管理系统总体结构图如下图所示:

3.1.4系统数据流图

图3.3 系统数据流图

3.3.5系统分工

这次课程设计我主要做的是培训管理管理模块、奖惩管理模块和员工管理模块。

3.3.6培训管理模块ER图

如图3.4

图3.4培训管理ER图

3.3.7奖罚管理模块ER图

如图3.5

图3.5奖罚管理ER图

3.3.8员工管理模块ER图

如图3.6

图3.6员工信息E-R图

3.2详细设计

3.2.1数据项设计和逻辑结构设计

通过需求分析,可确定系统的数据项和数据结构如下:

1)培训管理模块:

培训(编号、姓名、主题、时间、地点);

如图3.7

图3.7培训数据表字典

2) 奖罚管理模块:

奖罚(编号、主题、奖金、时间);

图3.8奖罚数据表字典

3) 员工管理模块:

员工(编号、流水号、姓名、性别、工种号、出生日期、民族、婚否、政治面貌、住址、电话号码、毕业学校、就读专业、从事工作时间、部门号、工作类型、从事公司工作时间、创建此员工信息的帐户名、备注);

如图3.9

图3.9员工管理数据表字典

3.2.2培训管理模块模块

培训是员工培训技能的统一信息。系统操作管理员可以对培训员工进行添加、查询及删除培训信息的操作。

3.10培训模块结构图

3.2.3奖罚管理模块模块

奖罚管理是员工奖罚的统一信息。管理员对员工奖惩信息进行添加、查询及删除操作。

3.11奖罚管理模块结构图

3.2.4员工管理模块

3.12员工管理模块图

4系统实现

4.1编程环境介绍

操作系统:Microsoft Windows xp;

数据库:SQL server 2005;

开发语言: Java。

4.2系统运行结果

培训管理管理运行结果如下图。

3.13培训管理运行结果

培训管理结果实现关键代码:

package com.wy.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import com.wy.dao.ObjectDao;

import com.wy.form.TrainForm;

public class TrainAction extends DispatchAction { private ObjectDao objectDao;

public ObjectDao getObjectDao() {

return objectDao;

}

public void setObjectDao(ObjectDao objectDao) {

this.objectDao = objectDao;

}

// 培训察看操作

public ActionForward queryTrain(ActionMapping mapping,

ActionForm form, HttpServletRequest request,

HttpServletResponse response) {

List list = objectDao.getObjectList("from TrainForm order by id desc");

request.setAttribute("list", list);

return mapping.findForward("queryTrain");

}

// 添加培训操作

public ActionForward deleteTrain(ActionMapping mapping,

ActionForm form, HttpServletRequest request,

HttpServletResponse response) {

String id=request.getParameter("id");

TrainForm trainForm=(TrainForm)objectDao.getObjectForm("from TrainForm where id='"+id+"'");

this.objectDao.deleteObjectForm(trainForm);

return this.queryTrain(mapping, form, request, response);

}

//添加培训操作

public ActionForward saveTrain(ActionMapping mapping,

ActionForm form, HttpServletRequest request,

HttpServletResponse response) {

TrainForm trainForm=(TrainForm)form;

this.objectDao.insertObjectForm(trainForm);

return mapping.findForward("operationTrain");

}

//培训详细查询

public ActionForward queryOneTrain(ActionMapping mapping,

ActionForm form, HttpServletRequest request,

HttpServletResponse response) {

String id=request.getParameter("id");

TrainForm trainForm=(TrainForm)objectDao.getObjectForm("from TrainForm where id='"+id+"'");

request.setAttribute("trainForm", trainForm);

return mapping.findForward("queryOneTrain");

}

}

奖惩管理运行结果如下图。

3.14奖罚管理运行结果

奖惩管理实现关键代码:

package com.wy.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import com.wy.dao.ObjectDao;

import com.wy.form.CjForm;

import com.wy.form.TrainForm;

public class CjAction extends DispatchAction { private ObjectDao objectDao;

public ObjectDao getObjectDao() {

return objectDao;

}

public void setObjectDao(ObjectDao objectDao) {

this.objectDao = objectDao;

}

// 奖惩察看操作

public ActionForward queryCj(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String information = "from CjForm order by id desc";

if (request.getParameter("type") != null) {

String type = request.getParameter("type").trim();

information = "from CjForm where cj_type=" + type

+ " order by id desc";

request.setAttribute("type", type);

}

System.out.println("information:"+information);

List list = objectDao.getObjectList(information);

request.setAttribute("list", list);

return mapping.findForward("queryCj");

}

// 删除奖惩操作

public ActionForward deleteCj(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String id = request.getParameter("id");

if (id == null) {

CjForm cjForm = (CjForm) objectDao

.getObjectForm("from CjForm where id='" + id + "'");

this.objectDao.deleteObjectForm(cjForm);

}

return this.queryCj(mapping, form, request, response);

}

// 添加奖惩操作

public ActionForward saveCj(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { CjForm cjForm = (CjForm) form;

this.objectDao.insertObjectForm(cjForm);

return mapping.findForward("operationCj");

}

// 奖惩详细查询

public ActionForward queryOneCj(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String id = request.getParameter("id");

CjForm cjForm = (CjForm) objectDao

.getObjectForm("from CjForm where id='" + id + "'");

request.setAttribute("cjForm", cjForm);

return mapping.findForward("queryOneCj");

}

}

员工管理运行结果如下图。

点击员工管理,页面会跳到员工查询页面。用户可以根据分类部门查询按钮来查询各个部门的员工情况,如图3.14。

3.15员工管理运行结果

管理员可以点击页面右下角的添加员工信息连接来添加员工信息:如图3.15。

相关主题
相关文档
最新文档