基于Java EE技术的公司职员信息管理系统查询与统计功能的设计与实现

获取项目源文件,技术交流与指导联系Q:1225467431

摘要

二十一世纪的今天,随着互联网的普及与发展,计算机技术已经广泛的应用于人们的生产办公中,特别是信息的处理加工,更大大的推进着企业的生产效率的增长,企业管理信息化已经成为一个必然的趋势。

本课题研究并开发基于J2EE多层框架的人事信息管理系统。此系统不同于以往的人事信息管理软件,而是在互联网的大背景下,实现以数据库服务器来维护人事信息数据,浏览器客户端来动态访问服务器,这种采用B/S架构的管理系统,有利于充分利用互联网覆盖范围广,通信及时等的优点,来实现对人事信息的统一管理。

本文中对人事信息管理系统的设计及实现作了较为深入和全面的分析,并且探讨了将人事信息系统软件的实现与网络服务技术相结合,这种模式为电子政务的发展所带来的积极作用。其优势在于客户端无需安装特定的软件,只需要打开IE浏览器访问其服务就可以取得各种相应信息。在系统部署完成后,也可以通过在服务器端添加网络服务的形式来拓展系统的功能。完成本系统后,在测试及试用过程中,能够实现各人事管理单位之间信息的通畅和高速运转,各方面均已达到了预期的目标,建立了一个高效的人事信息管理平台。

关键词:   企业管理信息化   企业人事管理系统   J2EE技术    B/S机构

ABSTRACT

In the twenty-first century, with the popularity and the development of the Internet, computer technology has been widely used in the work .Especially the handling of information processing, largely promote to improve the growth of productivity. Enterprise information has become an inevitable trend.

The paper aims to research and develop human information management system basing J2EE.The system is different from the past human information management software.It maintains human information with data base server and visits server with browser client.The B/S structure management system can exert the advantages of making full use of Internet and transferring information quickly to realize the human information unified management.

The paper makes a full and comprehensive analysis for human information management system designing.It also probes into combining human information system software with Internet service technology and it plays an active role for e-government.The advantage lies in that the customers do not need install certain software and they can get kinds of information by opening IE browser. After finishing the system,customers can add net service by server to expand function.The system can make human management more smooth and quick in different offices.All the aspects can reach expectable aim,and it can also build a high efficient human informationmanagement platform.

Keywords:  Enterprise Management Information   Enterprise Management System

           J2EE    B/S structure

目录

第一章 绪论 1

1.1项目背景及意义 1

1.2 本文工作内容 2

1.3 论文组织结构 3

第二章 基础理论与技术 5

2.1 J2EE技术 5

2.2 MVC模式 5

2.3 SHH框架 7

第三章  需求分析与概要设计 9

3.1 业务流程分析 9

3.2 系统功能需求分析 10

3.3 系统非功能需求分析 14

3.4 系统体系结构设计 14

第四章 系统详细设计与实现 17

4.1 系统功能模块结构 17

4.2系统流程设计 18

4.3 系统数据库设计 21

4.4 系统模块功能实现 24

4.4.1注册登录功能: 24

4.4.2基本信息管理功能: 25

4.4.3履历信息管理功能: 26

4.4.4技能信息管理功能: 28

4.4.5薪水信息管理功能: 29

第五章  系统测试及结果分析 31

5.1 系统部署环境及配置 31

5.2 系统测试(测试用例) 31

5.3 测试结果分析 34

第六章  结论与展望 35

6.1 本文总结 35

6.2 系统存在的不足 35

6.3 系统的展望 35

致谢 37

参考文献 39

第一章 绪论

1.1项目背景及意义

近年来,随着信息技术,特别是信息高速公路的发展,世界经济正在趋向于网络化,世界各国正从工业经济向信息经济转变,各国的企业界也都在致力于企业信息化,使企业资源合理配置,以使企业能适应瞬息万变的市场经济竞争环境,求得最大的经济效益。

在20世纪90年代中后期,随着连接,集成,网络,存取和友好界面等技术融合到起信息化的概念就越来越有力地得到了阐明,越来越多的企业开始理解它并对它发生了兴趣,企业信息化得以迅猛发展.时至今日,信息技术在企业中得到广泛应用,深刻地影响着企业管理者的价值观和思维方式,极大地提高了企业的效率和核心竞争力,使资源得到最佳化的平衡信息技术的发展和应用,给企业人力资源管理工作带来了深刻的变化。企业的人力资源应能够适应信息化带来的变化,能够使信息化成为提高管理效率和水平的手段,因而对人力资源的获取,甄选,保留,等提出了更高的要求.另一方面,人力资源管理信息化也是企业信息化重要组成部分。为了适应快速变化的市场,企业需要更加灵活,越来越多的企业开始推进人力资源管理信息化,试图通过信息技术来降低企业成本,规范业务流程,提高工作效率。

企业信息化提高了人力资源管理部门的工作效率,帮助人力资源管理部门从繁杂的例行性事务中解脱出来.在知识经济时代,知识就是财富,企业最有价值的资源是掌握知识和技能的人,而人力资源管理就是对知识型员工的管理.企业信息化后,员工承担的工作内容也有很大的变化,员工承担更多的是对信息系统中各类信息的分析,预测,监测异常情况变动,并且能较快地研究出决策,加强对错综复杂环境的把握,员工自身素质提出了更高的要求。

由于我国的传统文化和企业氛围一直倡导人和,致使人力资源管理工作一直是人治大于法治,管理工作经常体现为个人意志.很多企业将注意力放在人力资源管理的具体操作层面上,只是将传统的行政人事部门改头换面成人力资源管理部门,致使人力资源管理的流程不顺,缺乏可依据的标准,信息误导现象严重,信息集成层次不高,无法更宏观地利用人力资源数据.长此以往,管理制度不完善,流程不规范,人力资源管理基础薄弱.信息化的人力资源管理应该建立在网络畅通,制度完善,流程规范的基础上,人力资源管理者在规范化流程的指导下,根据信息系统的数据进行分析,判断,决策。随着信息化进程的深人,这一间题将更加突出.追求急功近利,一步到位带来的问题很多企业在人力资源管理信息化的进程中急功近利,妄想一步到位,以为从此就可以一劳永逸。在进行人力资源管理信息系统设计时,‘味追求功能齐全,技术先进,却与企业的实际发展情况相脱节,势必造成系统与现实水土不服.同时,很多企业不重视后期的持续发展,管理者认为只要获得有效的人力资源管理信息系统,其余的工作都可以顺理成章地完成了.然而,事实并非如此,人力资源管理信息化是随着企业的人力资源管理工作的变迁而不断变化的.新的技术,管理方式,规则以及消费者的需求层出不穷,企业必须不断改变其人力资源策略,从而引起信息系统的变化,因而,信息化的人力资源管理需要不断地改进和修正。

本设计就是建立一个公司职员信息管理系统,并实现查询功能,统计功能和管理功能。通过本系统,可以清晰的查看公司职员的各种信息,从而有利于更科学有效地开发与管理企业人力资源,便于企业高层领导从总体上把握人力资源情况,为企业决策提供依据。

1.2 本文工作内容

本项目是根据企业的需求,通过分析公司背景,了解公司人事的行政流程,设计和实现一个公司职员信息管理系统,该系统的设计和实现主要设计以下内容:

1.项目需求和分析

通过对企业方面调研和了解,熟悉企业的人事管理流程,整理出企业人事管理的需求和注意事项,做出需求分析报告,引领整个项目开发的流程,做出事先的统一调配和规划。

2.项目的架构

SSH框架是当前主流的Web开发框架,在将请求与视图分离,业务的整合,对象模型到关系模型的映射方面有其独到之处。

3.项目的具体实现

数据库的设计,接口的设计,功能模块的实现,由于采用了B/S结构,和用户交互的界面是网页,同时还要设计网页页面,与功能模块相衔接。

1.3 论文组织结构

本文主要介绍了企业人事管理系统的设计和实现,以及该系统的架构技术和实际的测试结果。

本章主要叙述了项目提出的背景、研究现状以及项目的研究目标。

第二章详细介绍了Struts2、 Spring 、Hibernate架构等相关理论。

第三章详细介绍了系统的功能需求分析与非功能需求分析。

第四章详细说明了系统的各个功能模块的具体实现流程,并且辅以类图、流程图进行进一步的说明。

第五章介绍了几个主要功能的测试以及示例。

最后总结了全文,指出了系统需要改进的地方和进一步的研究方向。

第二章 基础理论与技术

本章主要介绍系统采用的相关理论和技术。

2.1 J2EE技术

J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。

J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。

2.2 MVC模式

MVC模式是“Model—View—Controller”的缩写,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成 三个层—模型层、视图层、控制爱。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要 Controller改变了Model的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面, 但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变 得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。

模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便 充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象 编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象 的数据保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。

控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接收请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要 求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。

模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都 应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化一传播机制。

2.3 SSH框架

SSH在J2EE项目中表示了3种框架,即 Spring + Struts +Hibernate。

Struts是一个为开发基于MVC(模型-视图-控制器)模式的应用框架架构的开源框架,是利用Java Servlet和JSP构建Web应用的一项非常有用的技术。Struts 2是Struts的下一代产品。是在Struts 和WebWork的技术基础上进行了合并,全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。

Spring 是一个开源框架,是为了解决企业应用开发程序复杂性由Rod Johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的 开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

传统J2EE应用的开发效率低,应用服务器厂商对各种技术的支持并没有真正统一,导致J2EE的应用没有真正实现Write Once及Run Anywhere的承诺。Spring作为开源的中间件,独立于各种应用服务器,甚至无须应用服务器的支持,也能提供应用服务器的功能,如声明式事务等。

Spring致力于J2EE应用的各层的解决方案,而不是仅仅专注于某一层的方案。可以说Spring是企业应用开发的“一站式”选择,并贯穿表现层、业务层及持久层。然而,Spring并不想取代那些已有的框架,而是与它们无缝地整合。

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装。使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。

第三章  需求分析与概要设计

本章主要介绍了业务流程分析、系统功能需求分析、 系统非功能需求分析、系统体系结构设计。

3.1 业务流程分析

管理员首先登陆系统,系统的主要功能有以下5个:

1.基本信息管理

当管理员需要查看员工的基本信息的时候,可以进入基本信息管理功能按姓名或者员工号查找该员工,找到符合的员工,然后系统会显示该员工的基本信息。

如果某个员工的信息出现错误,管理员可以修改该员工的基本信息。当某一个员工发生离职时,管理员在经过确认后,可以删除该员工的基本信息。

2.履历信息管理

当员工进入公司时,需要记录员工的工作履历信息,可以添加员工以往的工作履历,例如工作的公司、工作开始的时间、工作结束的时间。一旦发生录入错误,管理员可以修改或者删除重新录入。

3.技能信息管理

当员工进入公司或者员工通过了新的技能验证时,管理员可以通过技能信息管理给员工添加这一技能信息,包括:技能的名称,技能的等级,获得技能的时间,一旦发生录入错误,可以修改,同时,当管理员发现员工提出的添加申请不符合真是情况,管理可以删除这一虚假技能信息。

4.薪水信息管理

不同的员工之间有不同的薪水,管理员可以按照员工的级别修改员工应该发放的基本工资,同时,员工的加班费用也不同,按照加班的多少,时间的长短,可以修改员工的加班费用,最后由系统得出汇总,得到每个月员工的真是薪水的数量。

5.修改密码

员工和管理员可以修改自己的登录密码。

系统的功能分解图如图3.1。

图3.1功能分解图

3.2 系统功能需求分析

1.注册登录

图3.2注册登录用例图

新用户将进行注册,由于涉及到权限问题,为了避免员工恶意修改删除信息,所以只对外开放注册员工账号注册,不可以注册管理账号,管理员账号应该是已经预留好给人事部门的。

只有已经注册的用户才可以登陆,同时员工登陆和管理员登陆所获得的权限是不一样的,所能进行的操作时不一样的。用例图如图3.2。

2.主功能

当用户登陆以后,用户进行基本信息、从业履历信息,技能基本信息、薪水信息、修改密码等相关操作。用例图如图3.3。

图3.3主功能用例图

3.基本信息操作

首先判定查询的权限,进入如果是员工进入查询页面,则只能查找自己的一些基本信息,和查看其他员工的信息,可以查看自己的基本信息,包括姓名,年龄,员工号等,但是不可以进行修改、删除、添加等操作。

如果是管理员,则拥有很高的权限,比员工可以进的更多的操作,比如:可以进行查看所有员信息,同时,也可以进行员工信息的修改、删除、添加等操作。用例图如图3.4。

图3.4基本信息操作用例图

4.从业履历信息操作

首先判定查询的权限,进入如果是员工进入从业履历页面,则只能查看自己的一些从业信息,是不可以进行修改、删除、添加等操作。

如果是管理员权限,可以进行查看所有员工从业信息,同时,也可以进行员工从业信息的修改、删除、添加等操作。用例图如图3.5。

图3.5从业履历信息操作用例图

5.技能信息操作

首先判定查询的权限,进入如果是员工进入技能信息页面,可以查看自己的一些技能信息,同时当有新技能通过时,可以自己添加,还可让管理员添加,但员工是不可以修改、删除以前的技能信息的。

如果是管理员权限,可以进行查看所有员工技能信息,同时,也可以进行员工从业信息的修改、删除、添加等操作。用例图如图3.6。

图3.6技能信息操作用例图

6.薪水信息操作

图3.7薪水信息操作用例图

首先判定查询的权限,进入如果是员工进入薪水信息操作页面,则只能查看自己的一些薪水信息,是不可以进行修改、删除、添加等操作。

如果是管理员权限,可以进行查看所有员工薪水信息,同时,也可以进行员工薪水信息的修改、删除、添加等操作。用例图如图3.7。

3.3 系统非功能需求分析

硬件需求:

处理器:主频2.0以上

硬板:80G以上

安全措施需求:

一旦发生断电,系统可以回滚到操作前的数据,不会发生数据只存储一半的错误情况。

安全性需求:

为了使职员间的信息保密,该系统只允许员工用户查看信息,同时为了防止虚假修改,也不允许员工的信息,修改,删除等操作只能用管理员进行。

3.4 系统体系结构设计

本系统采用的是B/S结构:B/S结构(Browser/Server结构)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、速度快、效果优。

B/S结构的优点:

1.具有分布性特点,可以随时随地进行查询、浏览等业务处理。

2.业务扩展简单方便,通过增加网页即可增加服务器功能。

3.维护简单方便,只需要改变网页,即可实现所有用户的同步更新。

4.开发简单,共享性强。

在开发系统时采用MVC模式,共有三层:模型(Model),视图(View)和控制Controller)。MVC模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。

同时采用SSH框架设计(Struts,Spring,Hibernate) Struts进行流程控制,Spring进行业务流转,Hibernate进行数据库操作的封装!系统的逻辑结构图如图3.8。

图3.8系统逻辑结构图

共分为如下几层:客户端、Web层、Action层、业务逻辑层、DA0层和数据库层。每层只能访问他的相邻层,不允许跨层访问。下层为卜层提供公用API。 Web层和Action层通过Action传递数据,Action层和业务逻辑层通过Dao层向数据库传递数据。

1.客户端:采用HTML实现,CSS负责页面的美观,JavaScript负责实现一些动态效果和简单验证功能,以减少服务器的负担。

2.Web层:主要通过Servlet和JSP技术实现,为了实现表示和业务逻辑分离,采用 Struts taglib标签。

3.Action层:负责页面的调转程序的流向,操作页面的具体功能。

4.业务逻辑层:用于处理业务逻辑和事务。负责整个系统整体逻辑的作。

5.DAO层:主要负贵对数据库的操作,使用Hibernate操作。

6.数据库:主要存储系统的数据,对上层提交的操作,在数据上进行更新。

第四章 系统详细设计与实现

本章主要介绍了:系统功能模块结构,系统流程设计,系统数据库设计和系统模块功能的实现。

4.1 系统功能模块结构

系统的功能模块主要分为:人事基本信息管理,履历信息管理,技能信息管理,薪水信息管理,修改密码,退出等。具体功如下:

1.人事基本信息管理

人事基本信息管理主要是操作员工的人事基本信息内容,主要的功能包括:查找人事基本信息,显示所有员工基本信息,修改人事基本信息,删除人事基本信息。

2.履历信息管理

履历信息管理功能主要是操作履历信息管理内容,主要的功能包括:查找个人履历信息,修改个人履历信息,删除个人履历信息,添加个人履历信息。

3.技能信息管理

技能信息管理主要是操作员工的技能信息内容,功能主要有:查找个人技能信息,修改个人技能信息,删除个人技能信息,添加个人技能信息。

4.薪水信息管理

薪水信息管理功能主要有:查找个人薪水信息,修改个人薪水信息,显示个人薪水信息。

5.修改密码

修改密码功能主要是:一旦,发现老的密码不安全,或者已经有被盗取的迹象时,用户可以设定新的密码。

6.退出

退出功能主要是:如果员工和管理员使用完系统以后,可以退出系统,返回登录首页。

图4.1是公司职员管理系统的组件图,它反映了整个应用所使用的技术,比如JSP,WEB等技术。

图4.1系统组件图

4.2系统流程设计

系统登录流程如下:

系统用户在系统登录页面输入用户名和密码,点击提交按钮,触发后台系统登录的LoginAction,首先获取登录页面输入的用户名和密码。

建立到正式数据库的连接,从系统用户信息表中,以用户名和密码为查询条件,查询该记录;如果能够查询到该记录,则该用户合法,并且根据系统用户表中该用户的权限等级,来从系统菜单信息表中确定那些菜单是应该显示给该用户的,查询完毕向系统菜单页面跳转:如果不能查询到该记录,则该用户不存在或密码不正确,在系统登录页面显示相应的错误信息。同时如果连续输入多次密码错误的话就锁定用户,1小时之内不能输入。

相应的活动图如图4.2。

图4.2登陆活动图

人事基本信息流程:

查找流程:

用户按照所需要的信息进行查找,可以进行按姓名查找,也可以按员工号查找,如果找到就在开始的查找页面进行显示,如果找不到用户,就跳转到显示页面,显示无符合信息。在查找完以后,每个信息后面都有几个相应的操作,比如修改,删除等等。相应的活动图如图4.3。

图4.3基本信息查询活动图

修改流程:

找到需要修改的信息,如果修改成功显示成功信息,修改不成功,就显示错误。相应的活动图如图4.4。

图4.4基本信息修改活动图

删除信息流程:

找到需要删除的信息,如果删除成功显示成功信息,如果删除不成功,就显示错误。相应的活动图如图4.5。

图4.5基本信息删除活动图

4.3 系统数据库设计

本系统在开发时共用了5个具体的数据表分别如下:

用户信息表主要的属性有:用户名(usename),密码(password),权限(limit),具体的属性内容。如表4.1所示。

表4.1用户信息表


数据名称


实际含义


数据类型


数据约束


username


用户名


String


不能为空


password


密码


string


不能为空


limit


权限


int


1或者0

基本信息数据表主要属性有:姓名(name),年龄(age),性别(gender),民族(nation),身份证号(identification),员工编号(number),该员工加入公司的时间(addDate),该员工在公司工作的时间(workTime)。具体如表4.2所示。

表4.2基本信息表


数据名称


实际含义


数据类型


数据约束


name


姓名


string


不超过30字符,


age


年龄


int


大于18小于65


gender


性别


string


男或者女


nationn


民族


string


56种民族之一


identification


身份证号


string


18位


birthday


出生年月日


date


大于0


number


员工编号


int


大于0


addDate


该员工加入公司的时间


date


大于0


workTime


该员工在公司工作的时间


int


大于等于0

从业履历数据表主要属性有所工作的公司名称(company),开始工作的时间(beginDate),结束工作的时间(leaveDate)。如表4.3所示。

表4.3从业履历表


数据名称


实际含义


数据类型


数据约束


company


所工作的公司名称


string


不能为空


beginDate


开始工作的时间


date


不能为空


leaveDate


结束工作的时间


date


不能为空

技能信息数据表主要属性有:技能名称(skillName),技能等级(skillLevel),技能获取时间(SkillDate)如表4.4所示。

表4.4技能信息表


数据名称


实际含义


数据类型


数据约束


skillName


技能名称


string


不能为空


skillLevel


技能等级


int


大于1


skillDate


技能获取时间


date


不能为空

薪水信息数据表主要属性有基本薪水(Basicsalary),加班(plus),总计(total)。如表4.5所示。

表4.5薪水信息表


数据名称


实际含义


数据类型


数据约束


Basicsalary


基本薪水


int


大于1000


plus


加班


int


大于等于0


total


总计


int


大于等于0

5张表的ER图如图4.6。

图4.6 ER图

其中5张表的对应关系如下:

用户表与基本信息表关系为一对一,因为每个用户只有一个基本信息表,所以要用一对一。

用户表与履历信息表关系为一对N,因为每个用户可能有很多不同的从业经验,所以需要用一对N。

用户表与技能信息表关系为一对N,因为每个用户可能有很多不同的技能信息,所以需要用一对N。

用户表与薪水信息表的关系为一对一,因为每个用户只有一份薪水信息,所以要用一对一。

4.4 系统模块功能实现

4.4.1注册登录功能

注册:

系统首先进入注册界面,输入合法的username和password,不能为空,点击提交,然后调用register()函数,连接数据库,在数据库中添加新的一条记录。如果添加成功的话,则跳转到登录界面,如果不成功,则在登录界面显示注册不成功。

登录:

系统首先接受JSP页面传过来的username和password属性,点击提交,然后调用login()函数,连接数据库,按username查找到相对应的用户名,然后匹配相对应的password,如果能够匹配的话就依照limit的值是管理员还是员工条跳转到相应的menu.jsp,进行主界面操作。如果没有找到匹配的username和password的话就提示用户名密码错误。

User类图如图4.7。

图4.7 user类图

User类主要有3个属性:

Private String username:主要是记录用户的登录名。

Private String password:主要记录用户的登录密码。

Private int limit:存放用户的权限,0为员工用户,1为管理员。

User类得2个函数:

Public Boolean register():注册新用户。

Public Boolean login():登录验证用户名和密码。

4.4.2基本信息管理功能

基本信息管理功能主要是对员工的基本信息进行处理操作。主要功能包括员工信息的查找,员工信息的修改,员工信息的删除。

查找:

首先进入基本信息管理界面,输入需要查找的员工的姓名name,提交到后台,然后调用search_name(String name)函数。连接数据库,按name查找到相对应的用户名,将找到的用户信息从数据库中拿出,显示到baiscview.jsp界面。如果没有找到匹配的name话就显示无符合信息。

修改:

首先通过查找找到需要进行修改的用户,点击修改,转入到修改页面,输入你要修改的信息, 员工的姓名name, 员工的身份证号码 identification,员工的年龄 age,员工的员工号 number,员工的性别 gender,然后页面提交表单到后台,系统调用update_userbasic()函数,通过调用Dao包的update()函数,更新数据库中的原有信息,同时返回到基本信息管理界面,显示修改成功。如果不成功的话就显示修改失败。

删除:

首先通过查找找到需要进行修改的用户,点击删除,系统调用delete_userbasic()函数,通过调用Dao包的delete()函数,更新数据库中的原有信息,同时返回到基本信息管理界面,显示删除成功。如果不成功的话就显示删除失败。

Userbasic类图如图4.8。

图4.8 userbasic类图

Userbasic类有5个属性:

Private String name:记录员工的姓名。

private String identification:记录员工的身份证号码。

private int age:记录员工的年龄。

private int number:记录员工的员工号。

private String gender:记录员工的性别。

Userbasic类有4个函数:

Public String search_name() :按姓名查找用户。

Public String search_number () :按员工查找用户。

Public String update_userbasic() :修改用户基本信息。

Public String delete_userbasic () :删除用户基本信息。

4.4.3履历信息管理功能

履历信息管理功能主要是对员工的履历信息进行处理操作。主要功能包括员工履历信息的查找,员工履历信息的修改,员工履历信息的删除。员工只能查看履历信息,管理员可以修改,删除,添加履历信息。

查找:

首先进入履历信息管理界面,输入需要查找的员工的姓名:name。提交到后台,然后调用company_name(String name)函数。连接数据库,按name查找到相对应的用户名,将找到的用户信息从数据库中拿出,显示companyview.jsp界面。如果没有找到匹配的name话就显示无符合信息。

修改:

首先通过查找找到需要进行修改的用户,点击修改,转入到修改页面,输入你要修改的信息,公司名称company、开始时间begaintime、结束时间endtime;,不能为空,点击提交,然后页面提交表单到后台,系统调用update_company()函数,通过调用Dao包的update()函数,更新数据库中的原有信息,同时返回到履历信息管理界面,显示修改成功。如果不成功的话就显示修改失败。

删除:

首先通过查找找到需要进行修改的用户,点击删除,系统调用delete_company()函数,通过调用Dao包的delete()函数,更新数据库中的原有信息,同时返回到履历信息管理界面,显示删除成功。如果不成功的话就显示删除失败,同时,跳转到删除操作的界面。

添加:

首先进入需要添加履历信息用户的界面,通过表单输入公司名称company、开始时间begaintime、结束时间endtime,不能为空,点击提交,然后调用insert_company()函数,连接数据库,在数据库中添加新的一条记录。如果添加成功的话,则跳转到履历信息管理界面,如果不成功,则在履历信息管理界面显示不成功。

Company类图如图4.9。

图4.9 company类图

Company类有3个属性:

private String company:记录工作公司的名称。

private Date begaintime:记录工作开始的时间。

private Date endtime:记录工作结束的时间。

Company类有5个函数:

public String company_name():按照姓名查找履历信息。

public String company_number():按照员工号查找履历信息。

public String update_company():修改员工履历信息。

public String insert_company():添加员工履历信息。

public String delete_company():删除员工履历信息。

4.4.4技能信息管理功能

技能信息管理功能主要是对员工的技能信息进行处理操作。主要功能包括员工技能信息的查找,员工技能信息的修改,员工技能信息的删除。

查找:

首先进入技能信息管理界面,输入需要查找的员工的姓名:name。提交到后台,然后调用skill_name(String name)函数。连接数据库,按name查找到相对应的用户名,将找到的用户信息从数据库中拿出,显示skillview.jsp界面。如果没有找到匹配的name话就显示无符合信息。

修改:

首先通过查找找到需要进行修改的用户,点击修改,转入到修改页面,输入你要修改的信息, 技能名称skillname,技能等级skilllevel,技能获得时间skilldate。不能为空,点击提交,然后页面提交表单到后台,系统调用update_skill()函数,通过调用Dao包的update()函数,更新数据库中的原有信息,同时返回到技能信息管理界面,显示修改成功。如果不成功的话就显示修改失败。

删除:

首先通过查找找到需要进行修改的用户,点击删除,系统调用delete_skill()函数,通过调用Dao包的delete()函数,更新数据库中的原有信息,同时返回到技能信息管理界面,显示删除成功。如果不成功的话就显示删除失败。

添加:

首先进入需要添加技能信息用户的界面,通过表单输入技能名称skillname,技能等级skilllevel,技能获得时间skilldate,不能为空,点击提交,然后调用insert_skill()函数,连接数据库,在数据库中添加新的一条记录。如果添加成功的话,则跳转到技能信息管理界面,如果不成功,则在技能信息管理界面显示不成功。

Skill类有3个属性:

private String skillname:记录技能的名称。

private Date skilllevel:记录技能的等级。

private Date skilldate:记录技能获得时间。

Skill类有5个函数:

public String skill_name():按照姓名查找履历信息。

public String skill_number():按照员工号查找履历信息。

public String update_skill():修改员工履历信息。

public String insert_skill():添加员工履历信息。

public String delete_skill():删除员工履历信息。

Skill类图如图4.10。

图4.10 skill类图

4.4.5薪水信息管理功能

薪水信息管理功能主要是对员工的薪水信息进行处理操作。主要功能包括员工薪水信息的修改。

修改:

首先通过查找找到需要进行修改的用户,点击修改,转入到修改页面,输入你要修改的信息, 基本薪水salary,加班费用plus,不能为空,点击提交,然后页面提交表单到后台,系统调用update_salary()函数,通过调用Dao包的update()函数,更新数据库中的原有信息,同时返回到薪水信息管理界面,显示修改成功。如果不成功的话就显示修改失败。

Salary类有2个属性:

private int salary:记录基本薪水的多少。

private int plus:记录加班费用的多少。

Salary类有1个函数:

public String update_salary():修改员工薪水信息。

Salary类图如图4.11。

图4.11 salary类图

第五章  系统测试及结果分析

5.1 系统部署环境及配置

测试环境是指为了完成软件测试工作所必需的计算机硬件、软件的总称。简单的说,经过良好规划和管理的测试环境,可以尽可能的减少环境的变动对测试工作的不利影响,并可以对测试工作的效率和质量的提高产生积极的作用。

测试的环境如下:

硬件配置:

处理器:i3-380 主频2.13G

硬盘:320G

显卡:HD4350

软件环境:

操作系统:Windows 7

数据库:Mysql

工具:

Myeclipse

Tomcat

5.2 系统测试(测试用例)

以下对整个系统做了一个全面完整的测试,包括注册登录,基本信息管理模块的测试、履历信息管理模块的测试、技能信息管理模块的测试、薪水信息管理模块的测试、修改密码的测试。

首先是注册登录的测试,首先注册一个用户,然后用该注册的用户登录系统,测试结果为,注册成功,同时用该注册用户,登录成功。用户登录需要选择权限,有员工和管理员,登录时用户名和密码不能为空,如果密码和用户名正确,则进入系统主功能界面。如图5.1,5.2所示。

图5.1注册登录

图5.2主功能界面

基本信息管理功能主要是对员工的基本信息进行处理操作。主要功能包括员工信息的查找,员工信息的修改,员工信息的删除。基本信息管理主要测是查找,修改,删除基本信息。如图5.3所示。

图5.3个人基本信息功能

按姓名和按员工号分别查找员工信息,同时可以根据需要对员工信息进行删除和修改,当要删除员工的信息时,点击员工信息后面的删除选项,可以从数据库中删除员工的信息,如果删除成功的话就在查找页面显示,删除成功,如果删除失败的话,就在查找页面显示删除失败,同时跳转到需要删除信息的那个查找页面。当要修改员工的信息时,点击员工信息后面的修改选项,可以进入修改界面,修改成功以后显示修改成功,不成功显示修改失败,同时跳转到需要修改的那个页面,结果如图5.4所示。

图5.4删除员工信息

5.3测试结果分析

以上只写出了几个典型的有代表性的测试用例,限于篇幅有限,没有一一罗列。在整个测试过程中,大部分功能正常,但也发现了一些问题,并及时做了修正。但是由于时间和个人能力的等方面的原因,该系统难免会出现一些问题,本人会在以后的使用和维护中不断完善该系统。

第六章  结论与展望

6.1 本文总结

本论文研究并开发基于J2EE多层框架的人事信息管理系统。此系统不同于以往的人事信息管理软件,而是在互联网的大背景下,实现以数据库服务器来维护 人事信息数据,浏览器客户端来动态访问服务器,这种采用B/S架构的管理系统有利于充分利用互联网覆盖范围广,通信及时等的优点,来实现对人事信息的统一管理。

本文中对人事信息管理系统的设计及实现作了较为深入和全面的分析,并且探讨了将人事信息系统软件的实现与网络服务技术相结合,这种模式为电子政务 的发展所带来的积极作用。其优势在于客户端无需安装特定的软件,只需要打开 IE浏览器访问其服务就可以取得各种相应信息。在系统部署完成后,也可以通过 在服务器端添加网络服务的形式来拓展系统的功能。完成本系统后,在测试及试用过程中,能够实现各人事管理单位之间信息的通畅和高速运转,各方面均己达到了预期的目标,建立了一个高效的人事信息管理平台。

6.2 系统存在的不足

视图层方面,只是采用了JSP页面的跳转,没有减少用户的等待数据显示时间与提示。

此外,在开发过程中,由于我们收集的资料不够完善,我们的知识也有很大的缺陷,对相关Java和struts、hibernate只是的掌握还不够多,还不能很成熟的运用所需要的技术,系统便无法呈现设想的效果,所以在系统的设计还不够完善,系统的可通用性也不是很强。

6.3 系统的展望

首先框架搭建要足以满足业务多变的要求,通过新建新的接口来支持新业务的不断扩展。其次在页面项目显示上,存在多个页面使用功能相同的组件,可以通过自定义标签,实现自己的标签库,来提高代码的可重用性。第三数据量巨大,且与数据库的交互任务非常繁重,如何提高系统的效率是不容忽视的,将通过 Oracle提供的强大功能来实现这一目标。

致谢

经过两个多月的努力我的项目终于基本完成。感谢软件学院的领导、老师和毕业设计指导小组,是他们为我们争取和提供了这么好的实习环境,是他们为我们做了大量的服务工作,在此表示衷心的感谢。感谢北软教育的老师们的辛勤工作,。他门平易近人的态度、严谨的工作作风、精益求精的治学态 度以及孜孜以求的精神对我以后的学习和生活都将产生极为深远的影响得益于他们几个月的努力我们的作品才得以高质量地完成。感谢董学文老师对我毕业论文的指导,感谢负责本学院毕设工作的段毅老师,感谢所有在毕设期间对我提供帮助的老师。

参考文献

[1] DaveMinter, Jeff Linwood著, 陈剑瓯等译. Hibernate基础教程. 第一版. 北京: 人民邮电出版社,2008年. 9-186

[2] 张黎伟. 《JSP从入门到精通》. 第一版. 上海: 上海科学普及出版社,2007年. 136-322

[3] 荣钦科技主笔室. 《最新JSP入门与应用》. 第一版. 北京: 中国铁道出版社,2001年. 39-85

[4] 刘洋.《精通Hibernate》. 第一版. 北京: 电子工业出版社,2005年. 15-234

[5] 张桂元. 《Struts开发入门与项目实践》. 第一版. 北京: 人民邮电出版社, 2005年. 123-156

[6] Horstmann C.S.,Cornell G..《Java2核心技术卷2:高级特性》. 第7版. 北京: 机械工业出版社

[7] 鲁晓东.《JSP软件工程案例精解》. 第一版. 北京: 电子工业出版社,2005年. 78-210

[8] 孙卫琴.《精通Hibernate Java对象持久化技术详解[M]》. 北京: 电子工业出版社,2005年

[9] 刘晓华等著.《J2EE企业级应用开发》.北京:电子工业出社,2003年.23-36

[10] Vivek Chopra,Jpn Eaves,Rupert Jpmdes等著(朱涛江等译).《JSP高级程序设计》. 北京:人民邮电出版社,2006年.189-211

[11] 王晓楠.《MVC的设计和实现[J]实践与经验》.2004年.56-58

[12] Leszek A. Maciaszek,Bruc lee Liong. 《实用软件工程》(英文影印版). 机械工业出版社, 2006年

[13] Michael Blaha,James Rumbaugh. 《UML面向对象建模与设计》. 第2版.北京: 人民邮电出版社,2006年

[14] 孙卫琴. 《精通Struts:基于MVC的Java Web设计开发》. 第一版. 北京: 电子工业出版社. 2004年,26-77

[15]科夫勒,杨晓云.MySQL 5 权威指南.第3版.北京:人民邮电出版社.2006

[16]张洪伟.Tomcat Web开发及整合应用.第1版.北京:清华大学出版社.2005

[17]思志学.自己动手写Struts:构建基于MVC的Web开发框架.第1版.北京:电子工业出版社.2007.2-12

[18]Josh Peck.Exploring Java.2nd Edition.O’Reilly.1997

[19]蒙祖强,龚涛.JSP程序员成长攻略.第1版.北京:中共水利水电出版社.2008.1-107

[20]吴明晖,吴超.Struts+Hibernate开发Web应用——从基础到实践.第1版.北京:人民邮电出版社.2007.1-188

[21]Ted Husted,Cedric Dumoulin,George Franciscus etc.Struts In Action:Building web applications with the leading Java framework.2003

[22]夏昕,曹晓钢,唐勇.深入浅出Hibernate.第1版.北京:电子工业出版社.2005.1-543

原文地址:https://www.cnblogs.com/epoch211/p/12623773.html

时间: 2024-10-01 05:12:48

基于Java EE技术的公司职员信息管理系统查询与统计功能的设计与实现的相关文章

基于Java/Swing技术的KTV包间管理系统的设计与实现

获取项目源文件,技术交流与指导联系Q:1225467431 摘 要 KTV包房管理系统的设计必须考虑众多因素及其相互之间的关联,因此如何选择有效的设计模式是非常重要的.在本系统中,基于Java/Swing技术设计并实现了客户端. 它由模型-视图-控制器(MVC)模式设计而成. 本项目基于Java Swing的窗体布局技术进行软件的窗体布局. 本KTV管理系统是一个功能强大的.可靠的.方便的平台处理KTV包房管理业务. 该系统不仅能提高KTV包房管理的工作效率,另一方面也为客人在预订时提供一种较为

基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写

基于JAVA WEB技术旅游服务网站系统设计与实现网上程序代写 专业程序代写服务(QQ:928900200) 随着社会的进步.服务行业的服务水平不断发展与提高,宾馆.酒店.旅游等服务行业的信息量和工作量日益变大,而传统的人工管理方式已经远远不能满足现在旅游的服务方式.传统的旅游方式经分析其有诸多的缺陷,存在数据维护效率低下,不易保管,容易丢失和出错.同时查询也不方便,劳动力成本过高导致的旅游资源信息不方便,也在一定程度上导致了对各种信息反应缓慢,容易丧失商机.为了弥补上述缺陷,便于开展旅游预订工

Spring 4 官方文档学习 Spring与Java EE技术的集成

本部分覆盖了一下内容: Chapter 28, Remoting and web services using Spring -- 使用Spring进行远程和web服务 Chapter 29, Enterprise JavaBeans (EJB) integration -- EJB集成 Chapter 30, JMS (Java Message Service) -- JMS (Java 消息服务) Chapter 31, JMX Chapter 32, JCA CCI Chapter 33,

基于GIS+BIM技术的高速公路征地拆迁管理系统应用

基于GIS+BIM技术,建立三维数字地形和主要征拆对象的 3D BIM 模型,实现征拆对象虚拟场景高效的可视化.参数化和信息化的功能需求.利用三维GIS技术,实现 BIM 模型与空间地理数据有机融合,便于进行场景的可视化定位分析以及基于空间位置的统计查询.项目重点关注征拆现场真实场景的虚拟展示.工程勘测定界范围内的征拆对象空间属性及征拆属性的关联.征地拆迁成本辅助计算等. 1.系统建设意义 随着近年来我国基础设施建设的飞速发展,城镇化进程的逐步推进,交通运输行业面临越来越严峻的挑战:项目规划的科

用Java实现一个简单的学生信息管理系统

public class Student { private String no; //学号(长度为6位) private String name; //姓名 private String idCard; //证件号(18位) private int sex; //性别(男(1)/女(0)) private int age; //年龄(1-100) public Student(){} public Student(String no, String name, String idCard, i

Java EE的13种核心技术

一.内容简介 Java EE的13种核心技术:JDBC.JNDI.EJB.RMI.JSP.Java Servlet.XML.JMS.Java IDL.JTS.JTA.JavaMail和JAF. Java最初在浏览器和客户端机器中粉墨登场,当时很多人质疑它是否适合做服务器端的开发.现在随着对Java EE第三方支持的增多,Java被广泛接纳为开发企业级服务器端解决方案的首选平台之一. Java EE平台由一整套服务(Services).应用程序接口(APIs)和协议构成,它对开发基于Web的多层应

基于JAVA的邮件客户端的设计和实现

获取项目源文件,技术交流与指导联系Q:1225467431 摘  要 Java是Sun Microsystem公司推出的新一代面向对象和面向网络的程序设计语言,特别适合于Internet/Intranet上的应用软件开发,因此也把Java语言称为新一代网络程序设计语言.Java语言将面向对象.多线程.安全和网络等特征集于一身,为软件开发人员提供了很好的程序设计环境,当今企业级计算和应用中相当成熟和稳定的平台,在这个领域中不可否认地占据着领导地位.JBuilder是Borland公司推出的Java

为什么要学习Java EE

Java EE学习之路 学习了Java SE,还只是完成“万里长征”的第一步. 接下来选择学习Java EE或是Java ME(或者你还想不断深入学习Java SE,只要你喜欢,你可以一直深入下去,就像前面所说的,我不会讲到Java ME的学习):估计选择Java EE方面的学习者会多一些,Java EE所涉及技术非常多,考虑到初学者的接受程度,我会尽量从最常用的角度来介绍. 学习Java EE,在开发环境上不建议再用文本编辑器,我感觉NetBeans 5.5(目前最高正式版本)很适合初学者,我

在 Java EE 组件中使用 Camel Routes

摘要:你可以通过集成 Camel 和 WildFly 应用服务器(使用 WildFly-Camel 子系统)在 Java EE 组件中开始使用 Apache Camel Routes. [编者按]作者 Markus Eisele 是 Red Hat 的 Developer Advocate,主要从事 JBoss Middleware 相关研究,拥有超过14年的 Java EE 工作经验.本篇博文中, Markus 主要分享了基于 Java EE 组件的 Camel Routes 应用实践. 以下