1、人事档案管理系统设计与实现 考勤子功能设计与实现摘要:本文首先对 J2EE体系架构作了简要介绍,在实际的开发过程,选择使用了目前非常流行的 J2EE框架Struts进行了项目的初步开发,并实现了项目的基本功能和大体框架。Struts为Web应用提供了一个通用的框架,使得开发人员可以把精力集中在如何解决实际业务问题上。此外Struts 框架提供了许多可供扩展和定制的地方,使得应用程序可以方便地扩展框架,来更好地适应用户的实际需求。关键词:J2EE体系结构;设计模式;Struts;人事管理系统 Abstract:At first, this is generally introduces the
2、J2EE system frame.During the practical developing process, choose and use at present the quite popular J2EE frame Struts with the itemselementary development. And achieve the essential function and general frame of the item. Struts supplied a current frame for the Web, making the developing stuffs p
3、ut the concentrates into how to solve the accrual operation. Furthermore, Struts frame supplied many fields which could be enlarged and customized, making the application programs can be expediently enlarged the frame to accommodate the users actual demands. Key words: J2EE architecture; design patt
4、ern; Struts; personnel management information system1 绪论1.1 引言 信息是一种资源,数据库是数据管理最新技术,是计算机科学的重要分支。今天,信息资源已经成为各个部门的重要财富。建立一个满足各级部门信息处理要求的行之有效的信息系统也成为一个企业或者组织生存和发展的重要条件。因此,信息系统核心和基础的数据库技术得到越来越广泛的应用,从小型单项事务处理系统到大型信息系统,从联机事务处理到联机分析处理,从一般企业管理到计算机辅助设计与制造,计算机集成制造系统、办公信息系统、地理信息系统等,越来越多新的应用领域采用数据库存储和处理他们的信息资源。
5、对于一个国家来说,数据库的建设规模、数据库信息量的大小和使用频度已经成为衡量这个国家信息化程度的重要标志。而在我国信息化程度还很低,还有很长的路要走,如今经济高速发展,各行各业对信息系统的管理提出了更高的要求。 随着企业的 IT环境越来越纷繁复杂,企业中可能会拥有多种操作系统、不同的数据库、异构的网络环境以及数据库应用等,那么如何把它们结合成一个有机的协同工作整体,真正实现企业跨平台分布式应用呢?中间件便是解决之道,它用自己的复杂换取了企业应用的简单。那么,复杂的中间件到底包含哪些种类?分别完成什么功能呢?九十年代初客户机/服务器计算模式开始成为主流技术,将数据统一存储在数据服务器上,而有关的
6、业务逻辑都在客户端实现,即所谓胖终端的解决方案,这种两层结构的模式大大阻碍着系统的发展,单一的服务器结构紧密地依赖供应商;数据存取受到限制;难以扩展到大企业广域网或国际互联网;也难以管理客户端的机群。随着用户业务需求的增长及 Internet/Intranet的普及,将以三层或四层体系结构取而代之。三层结构就是把用户端的业务逻辑独立出来,并与数据库服务器中存储过程合并在一起,构成应用层,以提高计算能力,实现灵活性。在这种结构中用户端仅仅是处理图形用户界面(GUI),而目前趋势是采用具有交互功能的浏览器,即形成瘦终端的工作方式,为此,中间又增加了一层,称为 Web服务器层,形成了四层体系结构。传
7、统的软件体系结构已经不能适应信息管理业务复杂多变的特性和Internet发展的需要,现在采用的新的软件结构是一个分布式的多层体系结构。1.2 技术现状 当前可以使用的、具有一定竞争能力的的用来开发分布式多层体系结构的应用程序的分布式组件技术包括.NET、CORBA、J2EE三大主流的组件模型。J2EE是一种利用 Java 2平台简化企业解决方案的开发、部署和管理相关复杂问题的体系结构。J2EE 技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBC API技术,以及能够在Internet应用中保
8、护数据的安全模式等,同时还提供了对Java Servlets API、JSP及XML技术的全面支持。J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性及可扩展性的应用的需求。提供对现有应用程序集成强有力的支持,有良好的向导支持打包和部署应用,其优势主要是为找寻具有可伸缩性、灵活性、易维护性的业务系统提供了良好的机制。主要体现为: 1) 保留现存的 IT 资产。J2EE架构可以充分利用用户原有的投资。这之所以成为可能,是因为 J2EE拥有广泛的业界支持和一些重要的“企业计算”领域供应商的参与。由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操
9、作系统和硬件也能被保留使用。 2) 高效的开发。J2EE 允许公司把一些通用的、很繁琐的服务器端任务交给中间件供应商去完成,这样开发人员就可以把精力集中到如何创建业务逻辑上来,相应的缩短了开发时间。 3) 支持异构的环境。J2EE 能够开发部署在异构环境中的可移植程序。基于 J2EE的应用程序不依赖任何特定的操作系统、中间件、硬件,因此设计合理的基于J2EE 的程序只需一次开发就可部署到各种平台。 4) 可伸缩性。基于J2EE平台的应用程序可被部署到各种操作系统上。J2EE领域的供应商提供了更为广泛的负载平衡策略,能消除系统中的瓶颈,允许多台服务器集成部署。 5) 稳定的可用性。J2EE部署到
10、可靠的操作环境中,支持长期的可用性。.NET虽然能够较好的解决Windows系统的分布和通信问题,但是,它不跨操作系统平台,可移植性较差。1.3 项目介绍1.3.1 项目背景项目目的是实现中小企业或单位的认识管理信息系统。企业或单位的认识管理在整个管理中占有重要的地位,如果加强各个部门之间的协调和提高工作效率是人事管理的当务之急。通过人事管理系统人事组织部门能做到以人为中心,各部门之间使用共有的资源,即使通信,现时提高工作效率,简化繁琐的手工统计、信息汇总和工资业务大量人工工作,让人事组织和工资管理工作再人事组织相关的各部门之间活起来。本项目就是在这样的背景下提出来的。 建设人事管理系统总的目
11、的在于提高企业基础管理水平;充分共享基础信息,为领导提供辅助决策支持,提高决策的科学性;建立数据库,在日常工作中生成数据,简化操作,保证数据的准确性和及时性,提高办事效率。人事管理系统主要目标是完成大量人事信息的录入、修改、查询、统计、报表制作和打印,使用认识管理软件来管理繁多复杂的人事信息,将大大提高人事管理部门的工作效率、减少工作量,使管理趋于规范化、高效化。该软件利用Java的动态网页交互技术,实现人事信息的动态录入及信息的及时发布;实现大量信息的动态维护,进行错误修改和删除;以及动态查询统计相关的信息,能显示所有人事档案的全文信息;实现对用户帐号的管理和维护,有权限的用户才能登录和使用
12、系统。1.3.2 项目采用的技术1) J2EE架构本项目采用了基于J2EE架构的实现。因为信息管理系统的软件体系结构现在均已经转向分布式的多层体系结构。根据上节所述,和其它两种分布式对象体系结构相比,J2EE 架构具有许多突出的优点,而且在工业界已经有非常广泛的应用,实践也证明有着非常好的使用效果。2) StrutsStruts 是 A1.3.3 项目采用的工具:pache 软件组织提供的一项开放源代码项目,它为Java Web应用提供了模型视图控制器(MVC)框架,尤其适用于大型可扩展的 Web 应用。Struts为Web应用提供了一个通用的框架,使得开发人员可以把精力集中在如何解决实际业务
13、问题上。 操作系统:Microsoft Windows2000 以上a.J2EE 服务器:BEA Weblogic 8.1 b.数据库:mysql5.0c.开发工具包:JDK Version 1.4.2d.JSP服务器:Tomcate.浏览器:IE6.02 J2EE 简介 2.1 J2EE框架描述J2EE 是一整套功能非常健壮的开发企业级中间件的规范,它在企业级服务器端应用的开发人员提供了巨大的便利。J2EE 平台是建立在 J2SE 中所包含的技术之上的,J2SE 包含 Java 语言基础部分、各种 Java 语言包(.awt,.net,.io)以及对 Applet 和 Application
14、的支持。因为 J2EE建立于 J2SE基础之上,所以,一个 J2EE兼容的产品不仅要符合 J2EE标准,还要符合 J2SE的标准。这意味着开发 J2EE 产品是一项艰巨的工作。这导致了在企业级 Java 领域业界形成了有重要意义的合并。作为整体的 J2EE 的主要技术构架如图2-1。图2-1 技术架构图本项目只应用了企业级 Java 2 平台的部署中的 WEB 浏览器、HTTP 协议、Servlet、JSP 和 HQL 等方面的技术,在这里不对 WEB 浏览器、HTTP 协议和数据库的内容进行介绍,因为本项目的技术重点和难点不在这几个方面。现在具体介绍企业级Java2 平台的本项目运用到的其它
15、相关技术如下:2.1.1 Servlet 介绍 Servlet 是用 Java 编写的服务器端的软件,它能动态扩展服务器的功能(通常指HTTP 服务器)。Servlet 执行于支持 Java 的服务器。与 applet 程序不同,Servlet 并不为用户显示一个图形界面。Servlet 的工作在服务器“后台”完成,Servlet 只将处理结果返回给客户(通常以 HTML形式)。 Servlet 是一些能给服务器调用的适合特定接口的 Java 类。Servlet 的功能不受限于Web 服务器。Servlet 能够增强所有支持 Java 和 Servlet API 的服务器的功能。如:FTP、邮
16、件和新闻服务器。 Servlet 给出了一个框架用于创建执行请求/响应范例的应用程序。当浏览器发送一个请求到服务器,服务器会把请求送往一个 Servlet。这样 Servlet 就能处理请求(通过数据库存取或其它方式)并构造一个合适的响应(通常以 HTML形式)返回给客户。2.1.2 JSP介绍 JSP构建在Java servlet技术上的,实际上,JSP 类和接口包含Javax.servlet.jsp和 Javax.servlet.jsp.tagext 软件包中,如果已经知道了编写Java servlet程序,编写 JSP程序是轻而易举,JSP 实际上是通过标准的 HTML 文档增加特殊的标
17、记来创建动态的Web 应用程序,JSP 通过把对内容的显示和产生内容的程序实现部分(如 Java servlet)分开,来完成任务。因此,Java servlet 技术的优点在 JSP 中也同样具有。同时 JSP 在Java servlet 技术的基础上带来的优点就是 JSP 通过把对内容的显示和产生内容的程序实现部分(如 Java servlet)分开。3 人事系统需求分析3.1 范围本系统名为人事管理系统,用于管理人事信息,本企业管理系统具有如下功能:员工基本信息的录入、修改、查询、删除模块,管理员具有如下功能:员工基本信息的录入、修改、查询、删除模块,员工假条信息录入、修改、查询、删除模
18、块,员工的签到签退,员工工资信息的录入,计算,查询,以及系统用户的设置以及系统的维护功能。为企业人事管理提供信息咨询,信息检索,信息存取等服务。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,基本上能够满足现代企业对人事管理的需要。3.1.1 系统开发策略图3-1 系统开发策略图3.1.2 业务流程图本系统的业务流程图如下:图3-2 业务流程图 报表处理: 图3-2 业务流程图管理部门对员工、部门、岗位查询完成各类查询报表。操作人员对工资信息更新后产生工资表。3.1.3 数据流程图图3-3 顶层数据流图3.2 定义人事管理系统:Personal Management System
19、;3.3 项目概述3.3.1 产品描述人事管理系统对企业的管理和用人决策具有重大的意义,该系统将替代传统的单机管理工作。在人事管理中引入网络技术,充分地运用网络资源,可以将涉及到人事管理的各部门有机地结合起来,形成整体合力;也可将上下级有机联系起来,做到上传下达,下情及时上报。各单位、各部门可根据自身的编制体制、人员结构及任务要求,输入相关数据,系统将永久保存数据和自动按照权限上传下达,避免了以往手动记录输入的麻烦,同时也大大降低了泄密的可能性;也可以与考勤相接,对人员工作情况进行基本考评;也可以根据人员请销假、加班等情况生成考勤;还可以根据各部门需要授权进行有关情况查询,等等。一方面可以更有
20、效地为指挥员的工作决策提供相应的人员配备依据,另一方面也可以使人事管理工作人员从繁重的手工作业中解放出来,再一方面也使小型企业的人事管理工作杜绝了随意性、盲目性,从而真正实现企业人事管理的科学化、标准化、网络化、自动化,使其达到安全、稳定的要求。 以前,客户/服务器应用是很常见的。但是这种模式的缺点是客户端维护工作比较繁杂,客户端负责数据访问、应用业务逻辑、将结果转换为一个格式以便显示,为用户显示内部的接口,以及接受用户的输入。客户/服务器的体系难于维护、升级和扩展。表现逻辑的重新使用也很难。在框架技术里,最重要的就是体系扩展比较容易。在这种结构下,用户完全通过浏览器实现用户界面,主要的事务逻
21、辑在服务器段实现,形成三层结构。同时这种模式具有非常好的灵活性,任何时间,任何地点,任何系统,只要可以使用浏览器上网,就可以使用系统,无须安装客户端软件,节约了大量的人力物力。3.3.2 产品功能图3-4 产品功能图3.3.3 用户特点人事管理系统包括人事档案管理,以及职工的业绩,工资,考勤等的情况的记录管理,反映干部、员工个人基本情况和学习工作的纪录,以备查询和管理,主要的操作是录入、查询和修改等。使用的主要参与者有: 1) 档案管理员:其职责是对干部、员工档案进行管理,可以增加、修改、删除档案资料;可以对档案的流通进行管理。 2) 普通用户:即相关部门的人员进行查询统计使用,可以查看和统计
22、相关人事情况。 3.3.4 环境要求本系统的硬件环境要求如下:1)客户机:普通PC2)内存:256MB以上3)分辨率:推荐使用1024*768像素4)Web服务器:CPU:p4 1.8GHz 内存:256MB以上5)数据库服务器:CPU P4 1.8GHz 内存:256MB以上本系统的软件环境要求如下1) 操作系统:Windows 2000以上2) 数据库:mysql5.03)开发工具包:JDK Version 1.4.24)JSP服务器:Tomcat5)浏览器:IE6.03.4 具体需求3.4.1 功能需求1为了实现添加员工的考勤,因为存在添加功能。添加功能由用户在网页进行选择,并且对应输入
23、想要添加的信息,然后传递到后台进行匹配调用对应的服务层方法,在经过一些列字符转码或者逻辑运算后,最后经过验证再调用相应的操作数据库的方法,最终将数据永久保存到数据库中。执行此操作后会有一个返回值,需进行相应处理,然后通过servlet才能跳转到相应设置的成功或是失败的页面.3.4.2 功能需求2为了实现系统内存的更好利用,保持考勤信息定期更新,必要时需要删除一些信息。有页面进入,通过application配置文件进行匹配,再层层验证调用。由于各个表之间有外键关系,因此要注意权限问题和关联关系。根据主键加载出用户表和员工信息表里相应对象然后再调用相应方法进行操作。只有加载除了对象才能真正对考勤表
24、里的记录进行删除。3.4.3 功能需求3为实现考勤表更好的维护和后期利用,对于数据库中的值可进行一定权限下的修改。修改需要得到相应的字段和值,由网页选择功能进入,手动输入修改的值,然后进行后台的相应更新操作与反馈跳转。3.4.4 功能需求4为了方便使用者更清晰的了解数据库中考勤表的信息,会进行相应的查询操作,对数据库中的记录按照一定规则反馈到指定页面。3.5 性能需求98的事务必须在小于1s时间内处理完,新增、修改、删除功能或特性引起的工作量,需要达到一定标准(2s以下),操作层次不超过5层,20人同时在线可保证线程安全。要求可为维护性,安全性,可移植性较强。3.6 数据库3.6.1 数据库设
25、计该数据库系统对考勤表要求具有以下方面的特点: 1) 所建立的数据冗余度小,独立性强; 2) 建档、修改、查询、统计快而准确;3) 保密性、可靠性好。4) 结构合理,对一个人员建立多条记录3.6.2 逻辑结构设计逻辑结构设计是独立与实际数据模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计。也就是要将概念上的结构转化为数据库系统所支持的实际数据模型。第一种转化是将实体转化为关系表。这种转化比较简单,只需要将实体的属性定义为表的属性即可。第二种转化是联系的转化。即将各实体之间的联系转化为表格之间的关系,如外部键的定义。在上面工作的基础上归纳出人员管理数据库表格的组成、列的属性、表格
26、之间的联系等。3.6.3 物理结构设计 设计时,我们将确定下来的实体对象的属性值映射为数据库表中的列,在不同级的表之间,我们用按名应用映射父表与子表间的引用关系,同级表之间,我们仍然沿用主码、外码以映射它们之间的引用关系。这样,我们就建立了一个物理数据模型。3.6.4 数据字典1) 职工信息数据表:用于储存职工的基本信息。职工信息表见表3.1所示:表3.1 zhiyuan表列名注释主键类型id编码是intaccountname账户名否varcharpassword登陆密码否varcharname姓名否varcharsex性别否varcharlianxiren联系人否varcharjiguan籍
27、贯否varcharnation名族否varcharbumen部门否varcharzhiwu职务否varcharmobile电话否varcharqqqq否varchardes备注否textphoto相片否varchar2) 工资信息数据表:用来存储职工的工资情况,包括姓名,职称,工资等信息。工资信息表见表3.2,3.3所示:表3.2 salaryness表列名注释主键类型id编码是intzgname姓名否varcharaccountname工号否varcharbasicwage基本工资否Float表3.3 wagebill表列名注释主键类型id编码是intzgname姓名否varcharacco
28、untname工号否varcharnianyue年度否varcharbasicwage基本工资否Floatkqwage全勤否Floatscorewage绩效否Floatshebao社保否Floattotalwage总工资否Floatcreatetime出单时间否DateTimedes说明否Textcreator出单人否varchar3) 考勤信息数据表:存储考勤相关信息。考勤信息表见表3.4,3.5所示表3.4 leaves表列名注释主键类型id编码是intzgname申请人姓名否varcharaccountname工号否varcharbegdate开始日期否DateTimeenddate结束
29、日期否DateTimestatus状态否intapplydes事由否Textreply审批回复否Textshenpiren审批人否varcharapplytime申请时间否DateTimeshenpitime审批时间否DateTimextype分类否Varchartianshu天数否int表3.5 kaoqin表列名注释主键类型id编码是intzgname职工姓名否varcharaccountname工号否varcharkqdate考勤日否DateTimeqdtime签到时间否DateTimeqttime签退时间否DateTimestatus状态否varcharczren操作人否varchar
30、des说明否Text4) 用户信息表,用于储存用户信息。用户信息表见表3.6,3.7,3.8所示:表3.6 users表列名注释主键类型id编码是intusername用户名否varcharpassword密码 否varcharcreatetime创建时间否DateTimeemail邮箱 否varcharcreator创建人否varcharlogtimes登陆次数否varcharnickname昵称否varcharrealname姓名否varcharsex性别 否varcharxiangpian备注否varchartel电话号码否varchar表3.7 bumen表列名注释主键类型id编码是i
31、ntbumenming部门名否varchardes描述否varchar表3.8 zhiwu表列名注释主键类型id编码是intzhiwuming职务否varchardes描述否varchar3.6.5 考勤表E_R图考勤表:员工考勤信息管理功能主要针对企业内部不同职员的出勤情况不同,为了有效的对每个职员的出勤情况进行记录,根据记录情况全面考察员工的工作业绩,并据此作为对员工进行提拔的指标之一。这一管理功能不仅记录了员工出勤情况还附带记录了其详细个人信息。企业管理员级别的员工考勤信息管理功能用例如下图3-6 企业管理员E_R图图3-7 普通用户E_R图4 系统实现4.1 系统平台实现系统方案的确定
32、:程序语言由 JSP来实现,JSP运行在服务器端,由于JSP的跨平台性,所以不用顾及每个员工终端计算机的硬件和操作系统的差别。系统结构采用浏览器/服务器(B/S)结构,每个员工终端计算机上只要装个浏览器,就可以使用这个软件。B/S结构在升级方面具有明显的优势,升级时只需在服务器端升级软件即可,不需在客户端进行任何修改。JSP应用程序所有代码都运行在服务器端,只是将结果输出在客户端浏览器上。客户端某些需要动态实现的功能采用JavaScript脚本语言实现,如用户密码输入语法的检查、数字、大小写的限制等的检查只需在客户端浏览器进行,不需服务器的参与,这些功能由JavaScript脚本语言实现。最后
33、,采用三层体系结构,后台数据库可以在浏览器端通过应用程序灵活地访问,进行控制。在B/S三层体系结构下,表示层、功能层、数据层被分成三个相对独立的单元,使客户机无法直接对数据库进行操纵,有效地防止了非法入侵。 具体配置如下: 1) Web服务器:Apache的Tomcat 5.0 2) 后台数据库:mysql5.03) Java工具:J2SDK1.4 4) 开发工具:myeclipse9.05) 浏览器:IE6.06) 操作系统:Microsoft Windows2000 以上本系统共分4 个子系统,除登录模块外,都具有录入,查询、修改、删除、统计的功能模块。下面只以人事档案管理考勤表子系统为例
34、,说明系统的设计与实现方案。在多层体系结构中,系统主要划分为三个部分,即表示层、业务层和数据库层,下面阐述多层体系结构的各个层如何实现。4.2 表示层实现 表示层的主要任务是提供可视界面,以便用户可以通过这个界面录入和观察数据。在B/S模式中,浏览器作为客户端的优点是用户界面统一,便于熟悉和操作,又不需要对软件进行配置,容易上手;对开发人员来说,可以撇开前台的细节,集中精力处理后台的关键事务,减少工作量,节约整个系统的开发时间。从非计算机专业人员为主要操作者考虑,同时也考虑系统的动态特性,系统必须具有良好的界面。系统的主要界面分为以下几个部分:登录界面、主窗口界面、数据录入界面、数据修改界面、
35、数据查询界面、数据删除界面。主界面是用户打开系统首先见到的界面,也是进入其它界面的入口。主界面设计特点: 1) 运行程序后,应先出现用户登录窗口,该窗口中放置了一个静态文本框,它们被置于窗口相应的位置用以显示相应的文字信息。输入正确的用户和口令,回车后打开数据库,并进入主界面。 2) 通过主界面的菜单进入各模块主界面,由录入、查询、修改、删除等菜单构成,显示在窗口的左边。主界面如图 4-1 所示。图4-1 index.jsp在登录模块中,用户登录界面要求用户输入用户名和密码,系统与数据库中的数据登录表中的用户名和密码进行比较,如果正确则允许用户登录,进入下一级页面,否则显示出错信息,禁止登录。
36、登录界面如图 4-2 所示:图4-2 login.jsp4.3 业务层实现业务层是完成“数据传递”的功能,它响应表示层的请求,从数据层取得所需的数据,回送给用户层显示。另一方面,它对用户层提交的数据进行业务规则的校验,符合规则的数据才被二次提交给数据层存储。因此,业务层是沟通用户层与数据层的逻辑桥梁,完成提供和提供规则两个功能。 在业务端,按功能来划分组件。在本系统中,按系统功能划分为登录、录入、查询统计、修改删除四个模块和组件。主要功能都由业务层来实现,开发技术是主要是 JSP,Servlet。4.3.1 登录模块实现 登录界面如图 4-2 所示。用户进入系统首先遇到的是登录界面,用户输入用
37、户名,口令后提交,登录程序首先检查用户输入的用户名和口令是否合法和匹配,然后分配用户权限。如果用户不合法,则登录程序要求用户重新登录。登录成功后,程序将用户的权限值记录在系统中,以便以后每个页面都将验证用户的权限。用户权限是由用户名来确定,用户名由系统管理员事先存储在数据库中。权限分两种,系统管理员和普通用户。系统管理员拥有全部的权限,普通用户只有查询的权限。程序流程如图 4-3 所示:登陆程序为:4.3.2 录入模块在档案录入界面中,用户在考勤表单中输入人员档案记录,如编号、姓名、年龄等记录,输入完毕,确认无误后,单击录入按钮,就可以进行向数据库中录入数据的操作。在向该界面中输入数据的时候,
38、如果某个字段类型与规定的数据类型不同,程序则会提示用户输入的数据类型不正确,要求用户重新输入数值,直到输入正确的数据类型为止。在考勤档案表中,考勤编号是唯一,员工编号是主键,编号不允许重复且不能为空,但姓名允许相同,所以两个相同姓名的人员档案仍然可以录入在数据库中。在录入考勤档案的程序中,要检查在数据库中是否有相同的人员编号,若没有,才允许档案录入。 下面是职工档案录入的步骤: 1) 进入录入界面,取得录入的各个输入值。 2) 检查输入的各个域的值的数据类型是否合法。 3) 是的话,进入下一步骤;否的话,返回录入界面。 4) 以录入的人员编号为查询条件,查询数据库是否己有记录。 5) 是,给出
39、提示信息,编号重复,返回录入界面 6) 否,执行录入操作,数据录入数据库中。 7) 给出成功信息,返回到录入界面。程序流程如图 4-4所示:图4-3 考勤录入程序流程图完成向数据库中考勤表插入记录的操作Action的相关代码是:4.3.3 查询模块的实现该模块可对考勤档案中的主要字段进行查询和统计功能,查询结果先显示符合该条件的记录数和考勤档案的主要字段,查询时可使用模糊查询,即如果输入姓名“孟”,则所有姓名中带“孟”的记录将显示出来。如果在界面中不输入任何值,将会显示出所有人员的记录来。查询如果不止一页,则会分页显示出来。 查询操作是是数据库最基本的操作之一,在进行修改,删除操作之前,也要先
40、查询己有信息,查看数据库数据内的数据,在查看现有数据的基础之上再进行修改,删除操作,以免发生误操作。 首先要生成查询的 SQL 命令,生成查询的 SQL 命令很关键。实现模糊查询的 SQL 语句用 like 关键字,实现同时满足的条件用“逻辑与”“and”来实现。例如,查询姓名为“王某某”,年龄在 agel 到 age2 之间的记录时,SQL 语句为:sql =”select * from dangan where name like ”+王+” and age=”+ agel +”and age=”+ age2 +”;” 查询数据库时,有可能有成千上万条记录符合条件,如果如此多的记录都显示出
41、来的话,一个页面可能会很长很长,速度也会很慢,想看到结果的用户很快便会失去耐性,因此,我们需要将结果分成许多页面,由用户选择看哪一页。在分页显示界面中,要显示出总的记录数和页数,显示当前页码,如果总的记录数多于一页,还可以输入要查看的页码,按“转到”按钮,进入相应的页面查看。 分页显示的主要步骤为: l)定义变量,为相应变量赋初值。 2)从查询界面获得查询条件,产生操作数据库的sql语句。 3)声明要使用的JavaBean中间件。4)执行查询语句,将查询结果置于记录集中。 5)为记录总数变量赋初值 0。 6)若记录集当前指针的后一条存在,则记录总数加 1 ,计算总记录数。 7)设定每一页能够显
42、示的记录总数。 8)根据每一页能够显示的记录总数,计算符合查询条件的记录数需要显示的总页数。 9)从参数pages中获得以前已经显示的页数,如果pages为null,则表示这是第一页,以前没显示过;如果 pages不为null值,则表示以前已经显示过页。大于总页数,表示上一次显示的是最后一页,如果pages值等于0,则表示L一次显示的是以前已经显示过的页,此时,应从第一页开始进行显示如果 page ,值大于0,而且不大于总的页数,则显示的当前页码为参数pages值。 10)行数据库查询操作,并将结果集置于记录中。 11)计算当前页的第一条记录位置,该位置用在总记录中的排列顺序号来表示 12)定
43、位光标到当前页的第一条记录位置。 13)显示出显示页的表头。 14)将一页中己经显示出来的记录数赋初值 0。 15)将指针定位到第一条记录位置。 16)取出第一条记录中的各个字段的值。 17)显示第一条记录。 18)让指针下移到下一条记录,若该记录为空,则表示己经显示完毕,停止显示记录。 19)如果仍未显示完毕,判断该页中已经显示的记录总数是否等于每页能够显示的记录总数,如果已经等于,则进入下一页的显示,并将计算当前页的参数pages置为当前页加 l 值。 20)如果该页中已经显示的记录总数小于每页能够显示的记录总数,则继续显示下一条记录。图4-4 考勤查询程序流程图相关代码:首先要生成查询的
44、 HQL 命令,生成查询的 HQL命令很关键。String hql =from Attencemess where +col+ like %+value+%; 完成向数据库中考勤表查询记录的操作Action的相关代码是:4.3.4 修改模块的实现1) 修改模块 修改删除是对档案进行维护的操作。修改档案时,先调出要修改的档案信息,用户查看后,在进行修改。因此,修改用户考勤档案的流程是:首先判断用户是否已经登录,只有登录用户且具有管理权限才能修改,然后读取用户需要修改的资料,显示在表单中并加以修改,最后把修改后的考勤档案信息写入数据库,并显示成功信息。修改流程图如图 4-5 所示: 图4-5 档案
45、修改流程图完成修改操作的 Action代码为2) 删除模块 随着时间的推移,数据库中的数据要不断更新,过期的数据要从数据库中删除掉。如果过期的数据还保存在数据库中,不仅浪费存储资源,而且使得对数据库的访问速度变得很慢。 在删除操作中,与修改类似,也是首先判断用户是否己经登录,只有登录后才能删除,然后读取用户需要删除的资料,用户确定要删除该记录,根据主键从数据库中删除该记录,最后显示删除成功信息。这里不再重复程序流程,只写出删除时的确认。删除假条信息详细代码:4.4 持久层实现本系统采用mysql数据库操作,利用myeclipse软件开发。在myeclipse中配置对应数据库的驱动,用户名,密码即可。配置代码如下:5 测试分析5.1 安全性测试本系统对用户进行 3个等级的划分:系统管理员、高级用户、普通用户。其中系统管理员拥