企业人事管理系统设计与实现_第1页
企业人事管理系统设计与实现_第2页
企业人事管理系统设计与实现_第3页
企业人事管理系统设计与实现_第4页
企业人事管理系统设计与实现_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/本科毕业设计(论文)题目企业人事管理系统设计和实现完成时间2015年6月1日毕业设计(论文)任务书题目企业人事管理系统设计和实现主要内容、基本要求、主要参考资料等:主要内容:为了应对现代企业越来越困难的组成结构和由此产生的繁重的管理工作,提高企业的工作效率和凝合力,避开因人为因素造成的数据丢失等严峻后果,运用Java、SqlServer、JSP技术设计一个企业人事管理系统,为企业日常业务的综合管理工作供应帮助,主要模块有员工资料、部门管理、职位管理、签到、请假管理、聘请、奖惩管理、加班管理、公告系统、资料共享等模块。基本满足企业日常的业务需求,实现企业的现代化管理。基本要求:1.所实现的功能基本满足企业的日常运用。2.平安牢靠,易于开发和维护、有较强可扩充性。主要参考资料:[1]刘浩.Java从入门到精通[M].北京:人民邮电出版社,2010.[2]陈海山.深化JavaServlet网络编程[M].北京:清华高校出版社,2010.[3]耿祥义,张跃平.Java基础教程[M].北京:清华高校出版社,2009.指导老师签名:专业负责人签名:2015年3月3日目录摘要 IABSTRACT II1绪论 11.1开发背景 11.2开发目标 11.3开发思想 22技术介绍 32.1B/S结构 32.2Java语言简介 32.3MyEclipse介绍 42.4SqlServer2008 42.5JDBC 43可行性分析 73.1技术可行性 73.2运行可行性 73.3经济可行性 84需求分析 54.1功能需求 54.2性能需求 54.3其他需求 65概要设计 95.1系统总体设计 95.2各个模块设计 95.3应聘子系统设计 106数据库设计 126.1数据分析 126.2数据表实现 137系统实现 197.1各个模块实现 197.2应聘子系统实现 307.3关键方法 328系统测试 358.1用例设计 358.2测试实施 368.3测试结论 37结束语 38致谢 39参考文献 40企业人事管理系统设计和实现摘要随着现代企业的发展,企业组成的困难度变得越来越大,单纯的手工管理在处理业务时效率低下,已无法满足企业的需求,开发一个简洁便利、牢靠性好的人事管理系统显得极为必要。针对这些需求,在分析了业务逻辑后,进行人事管理系统的设计工作,接受B/S架构,Java作为开发语言,SqlServer2008作为数据库,主要实现了员工信息、部门管理、聘请管理、薪资管理、考勤管理、文件共享等功能。另外设计了一个应聘子系统作为主系统的补充,让应聘者创建信息、阅读公司职位和查看自己的处理结果,增加系统的人事管理功能,以软件工程开发流程为指导,并借鉴MVC设计模式,最终完成了企业人事管理系统的开发。该系统的实现为企业管理工作带来了便利,降低了管理成本,提高效率,可以基本满足中小型企业的需求,这也是该系统的开发目的所在。关键词人事管理,B/S,SQLServer,JDBCTHEDESIGNANDIMPLEMENTATIONOFENTERPRISEPERSONNELMANAGEMENTSYSTEMABSTRACTWiththedevelopmentofmodernenterprises,thecomplexityoftheEnterprisehasbecomemoreandmorebig,simplemanualmanagementisinefficiencyindealingwithbusiness,hasbeenunabletomeettheneedsofenterprises,todevelopasimple,reliable,appearsgoodpersonnelmanagementsystembecomeextremelynecessary.Inresponsetotheseneeds,aftertheanalysisofthebusinesslogic,designworkandpersonnelmanagementsystem,usetheB/Sarchitecture,Javaasadevelopmentlanguage,SqlServer2008asadatabase,Hadachievedtheemployeeinformation,sectormanagement,recruitmentmanagement,payrollfunction,andattendancemanagementfunction,filesharingandotherfunctions.Alsowedesignedacandidatesubsystemtosupplementtheprimarysystem,sothatcandidatescreateinformation,visitthecompany'spositionandviewtheirresults,andenhancethesystem'spersonnelmanagementtosoftwareengineeringprocessesasaguide,andlearnMVCdesignpattern,finallycompletedthedevelopmentofpersonnelmanagementsystem.Implementationofthesystemofenterprisemanagementismadeeasier,reducemanagementcosts,improveefficiency,itcanbasicallymeettheneedsofSmallandMediumEnterprises,whichisthesystem'sdevelopmentpurpose.KEYWORDSpersonnelmanagement,B/S,SQLServer,JDBC1绪论1.1开发背景随着计算机技术的进步,中国的高速发展,企业的管理机制正在发生着重要变更,现代企业在管理中渐渐引入了现代化的管理技术,当今社会正在朝着信息化、科学化的方向快速发展,信息自动化的意义和作用已经越来越大,他可以使我们不再乏累于繁重的人力资源管理工作,而是利用信息化的技术去进行管理[1]。目前很多企业仍旧没有一个系统化、规范化的人事管理软件,人事管理还处于最基础的人工管理阶段,效率低下,已经远远不能满足当今社会对人事管理的需求,并且人工管理有很多自不待言的弊病,会出现因为人为的操作失误,错误操作,造成数据的丢失、损坏、误报,给企业造成不行挽回的损失,另外,时间一长,这种管理方式会产生大量的文件,对于更新维护带来了不少困难。这些现象层出不穷[2]。人事管理是现代企业管理中不行忽视的一个重要组成部分,竞争对于企业管理者提出了更多的挑战,人事的管理另一种意义,就是对企业生命和前途的管理,人事是最珍贵的资源,一个企业没有了可用之才,那么这个企业会变得奄奄一息,实现办公自动化已经得到了企业的重视,企业要想在当今激烈的竞争中生存下来,就必须要引入信息化管理,做好人才的管理工作。1.2开发目标目前在市场上已经存在很多人事管理系统,人事管理系统在现代化的企业管理中越来越受到管理者的重视,但是这些都并不确定满足企业的日常应用,这些软件的确很好,但是对于企业来说,须要的是一个好用、高效、价格低廉的软件,购买一个这样的软件,本身就是一笔很大的开销,再加上日常的维护处理,带来的工作成本会大大提高,得不偿失。在企业管理中并不须要特殊大型的管理系统,操作简便、功能强大、满足基本的日常工作处理即可[3]。降低人事管理的成本,提高效率,科学化的管理企业。这就是本系统开发目标所在。1.3开发思想在设计一个系统之前,首先要对这个系统要有一个清晰的相识,知道要实现什么功能,要设计什么模块,以及权限限制,平安限制等,这些因素都要考虑到[4],这是对一个系统最基本的相识,一个简洁好用的系统应当包括操作便捷、界面美观大方、运行速度快、学习成本小等等优点,让运用者可以快速上手,便利快捷的对企业进行管理。由此分析出,此系统应当具有以下几个特点:(1)高技术性:接受比较先进的开发工具,本系统接受了Java开发最为流行的集成开发工具:MyEclipse和SqlServer2008数据库相结合,进行开发和实现工作,MyEclipse是一个功能特别强大的IDE,微软开发的SqlServer在市场始终有着良好的评价,可以大容量的进行数据存储,运用Java作为开发语言,接受了MVC[5]思想进行模型构建,充分运用了先进的技术来开发本系统。(2)好用性:在开发系统之前,做了很多相关方面的调查,包括和公司领导进行沟通沟通,发觉在企业中的实际需求,以及上网查询资料,视察类似的软件都实现了什么功能,一切从需求动身,以需求为引导,以用户的便利为准则,进而提出了需求分析和概要设计,切实满足用户需求和要求,达到让用户满足的程度。(3)严谨性:企业最看重的是数据的平安问题[6],数据平安也是软件设计工作中的重中之重,为了保持数据的完整性和保密性,在充分调查了企业的需求之后,本系统设计了三种登录身份,一种是一般用户身份,权限最低,一种是管理员身份,可以对系统的各个模块进行操作,比如录入工资,更新公告,更新奖惩方法,处理请假申请等等一系列信息,但是不能对一些敏感数据进行操作,假如想进行操作,就须要以第三种身份进行登录:超级管理员,可以对敏感信息进行操作,比如删除考勤记录、删除工资记录、用户管理等,防止有人恶意篡改数据,在确定程度上保证了数据的平安性。(4)复用性:接受模块化方法进行开发和设计,对于各个模块都相同的代码进行了通用类的设计,达到设计出高内聚,低耦合的程序的目标,提高了系统的复用性。2技术介绍2.1B/S结构B/S结构,即服务器/阅读器结构,它是随着Web技术的发展建立起来的模型,在当前的Web开发中属于一种比较常见的模式,应用较为广泛,从传统的C/S(客户端/服务端)结构转变而来,是一种新的网络模式架构,其实本质就是三层的C/S架构,在B/S架构下,用户界面是用JSP编写,通过阅读器进行显示,在前端只执行极少数的业务逻辑,主要业务均在后端(Server端)实现,极大的简化了客户端的电脑负荷,使得日后的维护工作只要对服务器端进行维护即可,减轻了开发成本和系统维护、升级的费用[7]。但是由此带来的后果是服务器负荷交大,对服务器的性能要求较高,具体结构如图2-1所示。图2-1B/S模型结构示意图2.2Java语言简介当前有很多开发语言可以选择,面对这些开发语言,在项目开发的打算工作中,最终选择了Java作为开发语言,因为Java有强大的面对对象特性,可以很好的区分业务逻辑和页面开发。Java是在1995年,由SunMicrosystem公司发布的一种面对对象的设计语言,以及开发平台的总称,最初命名是Oak,当时被作为嵌入式语言为消费类的电子产品而设计的,现在被广泛用于开发Internet程序,Java是一种平台无关的语言[8],可以跨平台编写开发应用。自从Java被开发出来,让整个Web开发发生了天翻地覆的变更。Java有着通用性、高效性等诸多特点,在各个平台可以很便利的进行移植,广泛的用于个人PC、数据库服务器、移动开发、嬉戏服务器、互联网开发、Web开发等领域,Java在全球的运用度和C不前不后。2.3MyEclipse介绍MyEclipse是在Eclipse的基础上,加入插件插件而形成的企业级应用开发环境,主要用于JAVA、JAVAEE以及移动应用的开发,MyEclipse因为其强大的功能,拥有者广泛的支持,对各种开源框架的支持也相当不错。全称是MyEclipseEnterpriseWorkbench,是一个功能特别丰富的JAVAEE集成开发环境,是对Eclipse的IDE的扩展,利用Myeclipse可以运用数据库进行JAVASE、JAVAEE的开发,发布以及应用程序的整合,Myeclipse因为其强大的开发环境支持,可以大大提高工作进度和效率,包括了完整的编码、调试、发布功能。Myeclipse几乎囊括了市场上全部主流的专属开发工具。2.4SqlServer2008SqlServer2008数据库是由微软公司推出的,在Sqlserver2005的基础上做出改进的关系型数据库系统。可以在各个Windows操作系统上正常运用,Sqlserver是一个特别全面的数据库平台,可以为任何规模的企业和机构供应强大的信息管理解决方案,运用了智能的商业智能工具供应了企业级的数据管理[9],可以让开发者构建更为强大的数据应用程序,因此本系统接受了SqlServer2008作为系统数据库进行开发。2.5JDBCJDBC[10],全称是JavaDataBaseConnectivity,即Java和数据库的连接技术,是一组针对连接数据库而开发的API,可以支持多个数据库,供应统一的访问方法,是一种标准,开发厂商可以由此定制自己的开发工具和结构,使系统的开发人员可以用此让Java和数据库得到连接,JDBC是一种数据库连接的基准,JDBC开发标准的的接口,并为数据库厂商和运用者供应了标准的数据库连接方法,由一组用Java编写的类和接口组成。有了JDBC技术,使从Java向数据库发送数据变得简洁,就不必再为每个数据库再特地编写程序,使得程序员不必再为跨平台的问题而担忧,不必再为不同的平台编写不同的程序,真正实现了“一次编写,到处运行”。3可行性分析在开绽开发工作之前,须要对可行性进行分析和调查,可行性分析是一个系统在开发之前探讨项目是否可行的技术,在分析系统之后,发觉开发中存在的问题和可能性,主要从经济、技术、运行、进行分析和探讨,削减开发风险,避开人力物力的奢侈,调查的方式有很多种,包括上网查阅资料,视察其他类似系统是怎么实现的,以及走访企业,和系统分析员进行沟通,和人事管理员进行沟通等等,并了解企业的工作方式和工作流程,以及具体的实施方法,分析结果是运用完善的企业人事管理系统可以特别便利的进行企业管理,极大的提高管理效率,依据上述分析,起先进行可行性探讨工作。3.1技术可行性开发环境(IDE[11])可行性:从目前主流的开发技术来看,运用基于JAVAEE的开发架构,B/S作为系统结构,运用Java开发语言以及SqlServer数据库完全可以胜任本系统的开发工作,Java语言始终比较平安,加上SqlServer强大的数据管理,以及MyEclipse的开发工具,完全满足本系统的开发环境要求。开发硬件可行性:系统在开发的过程中开发人员所具有的资料和计算机设备以及相关资源,以及在系统开发完成后,运用企业所具有的计算机设备以及其他资源,要综合考虑双方的状况,设计一个最合理的方案,保证系统在开发出来后,在客户的环境下可以完备运行,同时还要考虑性价比的因素。本系统对于计算机的运行有确定的性能要求,内存不低于1G,硬盘容量大于40G,并须要安装JRE,假如低于这个需求,将会影响系统的正常运行,从目前来看,主流的计算机均达到了这个要求,所以在硬件方面是可行的。3.2运行可行性由于本系统是一个内部系统,不向外部公开,所以避开了外来的恶意访问,本系统在运行过程中只是面对企业内部运用,包括员工、组长、经理等,尽管这些人之前可能没有运用过相关管理软件的阅历,但是本系统是建立在Windows操作系统之上,操作界面友好,简洁明白,学习成本较低,操作人员无需进行专业的培训即可胜任此工作,可以在专业人员的知道下快速的驾驭系统的运用方法,假如有必要的话,可以编写一个操作说明书,供相关人员进行学习,正确的操作人事管理系统。3.3经济可行性由于现阶段企业的管理仍旧存在很多问题,仍旧存在很多人工管理的现象,耗时多,效率低下,极易出错,得不偿失,利用计算机来管理人事成为了当今管理的主流方式,开发一套人事管理系统是特别有必要的。人事管理水平的提高,能够提高企业各方面的实力综合提高,利用本系统作为管理系统,削减因为操作事物造成的数据损失,也可以使企业在管理方面削减很多费用支出,比照实现了自动化操作,可以安排较少的人手去执行数据管理工作,精简人员,削减开支。由以上三方面可以看出,本系统经过可行性分析,从多个方面来考虑,系统的开发工作是可行的。4需求分析需求分析又称为需求调查,是整个系统开发过程的重要组成阶段,也是一个系统开发的基础,它明确了这个系统要实现什么功能,有哪些模块,有哪些数据是要被输入到系统的,最终会获得什么结果,要充分分析用户对系统的要求,对用户提出的问题进行具体的分析,弄清晰客户要求,才能进行下一步的工作,系统开发是以需求为引导的一个过程,为了开发一个好用的系统,首先要进行的就是需求调查和需求分析,明确调查方式,明确调查目的。要了解各个部门的大致工作流程和工作划分,由于开发者和运用者存在着各种各样的问题,提出需求的并不确定都是开发人员,个别用户不了解须要实现的功能,只是依据企业的业务需求提出要求,所以在系统的设计过程中须要两者紧密沟通,充分了解对方的业务需求以及实际状况,明确用户需求,进行可行性分析,确认系统的开发工作是否可以进行下去,为系统的开发工作供应有力帮助。在对企业需求进行了充分的分析工作后,对企业的业务需求有了确定的了解,对这些需求进行整理,并借鉴了软件工程的思想,最终分析出如下需求:4.1功能需求(1)功能完备,实现足够多的模块,要了解企业中各个部门的组成状况和主要业务,和相应的日常活动和职能,充分了解企业构造,一个完整的企业人事管理系统应当包括员工信息记录、考勤管理、薪资管理、应聘管理、请假管理、加班管理、公告、资料共享等,企业中的实际业务都要考虑到,并且在开发过程中和运用企业保持沟通,为企业量身定制,充分满足企业需求。(2)有严格的权限管理机制,由于企业的日常工作中会涉及到商业机密,员工的薪资信息、考勤信息都要妥当保存,要防止人为破坏,在系统的设计中要体现业务的严谨性,要保证数据平安,仅仅设置两种身份是不够的,对一些敏感数据的操作对象也要加以限制。4.2性能需求(1)运行稳定,不易出错,系统在设计过程中应当以平安和稳定运行为原则,对错误输入要进行处理,在处理错误输入时要有良好的提示,避开因为操作不当而引起的系统错误,造成服务器宕机等恶劣后果。(2)性能牢靠,有确定平安爱护措施,比如在实现后台方法时,避开运用Statement,要运用PrepareStatement来防止SQL注入攻击。(3)在面对高并发操作时仍旧具有良好的反应速度,比如在早晨员工签到的高峰期,以及晚上网络不好时,也应当可以正常的处理数据。4.3其他需求(1)易于学习,系统设计过程中应当保持留意页面的简洁,以及考虑操作的简便性,在系统实施的过程中保证运用人员可以快速上手,降低学习成本。(2)设计严谨,代码规范,可扩展性好,借鉴MVC设计模式,将业务层、限制层、显示层分开实现,方法不应当写在实体类中,而是要建立接口和实现类,当有一个模块须要变更时,可以只对该模块进行修改,而不会对其他模块产生影响,便于日后的修改维护和二次开发。(3)运行和维护成本低,考虑到中小型企业的经济承受实力,要尽量降低对服务器的性能要求尽量削减资金投入,满足经济性要求。总之,在系统开发之前,必须要对现有的系统进行调查,明确需求,保证所作的功能符合用户的需求,具体的调查状况,探讨现有系统的内部结构,设计出一个精确的开发逻辑模型,为之后的开发打好基础。避开耗费大量人力物力,最终却没有开发出让客户满足的系统的现象发生。5概要设计5.1系统总体设计在这个模块中运用结构图来对本系统进行具体描述,树形结构的顶层代表了系统的名称和功能范围,下面的分支则代表相应的子集,最底层的元素则代表具体的功能模块和系统组成,这些模块是最小元素,不能再进行分割,本系统一共包括十三个主要模块,已经基本覆盖了企业的日常业务,此外还有一个附加的应聘子系统,可以由应聘人员注册账号并登录,可以填写自己的应聘信息,以及查看公司的全部职位,还可以运用一些通用功能,以及查看自己是否被录用等等,但是这个系统是相对于主系统独立的,不能进入主系统的界面,为了保证系统的平安性,设计这个附属系统的缘由是考虑到聘请录入资料的工作较为繁琐,可以让应聘者自行登录,进行资料的填写,作为主系统的补充,可以让整个系统变得更为完善。本系统的总体设计图如图5-1所示。企业人事管理系统企业人事管理系统系统设置通用功能资料共享加班管理请假管理出勤管理奖惩管理公告系统薪资管理职位管理部门管理应聘管理系统设置通用功能资料共享加班管理请假管理出勤管理奖惩管理公告系统薪资管理职位管理部门管理应聘管理员工信息图5-1人事系统总体结构图5.2各个模块设计本系统共有十三个功能模块,基本已经覆盖了企业日常的全部业务,各个模块实现的功能有:(1)部门管理:可以分页查看企业的全部部门列表,点击查看部门具体信息,以及查询部门信息,管理员则可以进行添加部门,以及修改部门信息,同时可以查看该部门有多少员工,可以查看员工具体信息,部门不能删除。(2)职位管理:员工可以查看企业的全部职位以及查看职位具体信息,查询职位,管理员则可以增加职位,以及修改职位信息,管理员可以查看每个职位有多少个员工,并可以查看这些员工的具体信息。(3)员工信息:员工信息是整个系统最重要的组成部分,员工可以查看自己的信息,以及对信息进行修改,但是不能查看其他人的信息,管理员则可以查询和查看全部员工的信息,但是不能修改。(4)聘请管理:本模块是特地为聘请人员设计,并且一般用户无法进入到该页面查看里面的内容,管理员可以添加应聘人员的信息,修改应聘人员的信息,以及查询某个应聘人员的信息,还可以依据应聘人员的处理状态进行分类查看,如:未处理、未录用、已录用。(5)薪资管理:员工可以查看自己的薪资记录,管理员可以增加薪资信息,为了保证数据的完整性,薪资管理没有供应修改方法,只能删除。(6)公告管理:为了便利公司业务,员工身份也可以发布公告,管理员则可以修改公告和删除公告。(7)奖惩管理:员工可以查看和查询奖惩方法列表以及查看奖惩方法详情,管理员可以对奖惩信息进行增加、修改和删除。(8)出勤管理:员工每天进行签到,并且可以按月份查看自己的签到信息,出勤信息不能修改,不能手动增加,只有超级管理员可以删除出勤记录。(9)请假管理:员工可以申请请假,内容有请假天数,起先时间,理由等,以及查询自己的请假信息,请假信息初始为未处理状态,管理员可以处理请假申请,以及查询、删除请假记录。(10)加班管理:员工可以添加加班记录,添加后不能修改,管理员可以对加班信息进行修改和删除。(11)资料共享:全部人都可以上传和下载资料,便利企业的资料传递和沟通,但是只有管理员可以删除。(12)通用功能:打开系统自带的计算器软件,便利日常运用。(13)系统设置:可以修改员工的身份,以及新建帐号、修改权限、禁用账号。5.3应聘子系统设计为了便利人事人员的日常工作,考虑到录入大量的应聘人员资料是一个特别繁琐的工作,不如让应聘人员自己注册账号,登录系统进行应聘资料的填写,基于这个想法,在接受了指导老师的看法后,开发了企业人事管理系统的附属子系统:应聘系统,作为主系统的补充,可以由应聘人员自己注册账号进行登录,填写自己的应聘资料,同时应聘人员可以查看公司的全部职位,但是这个系统是相对于主系统独立的,不能进入到主系统的界面,保证了主系统的平安,具体的组成如图5-2所示。应聘子系统应聘子系统应聘资料查看结果公司职位信息应聘资料查看结果公司职位信息修改信息查看职位填写信息修改信息查看职位填写信息图5-2附属应聘子系统总体结构图子系统功能介绍:(1)应聘资料:应聘人员可以填写自己的应聘信息,并且可以修改信息,可以查看自己是否被录用。(2)公司职位信息:应聘人员可以查看企业的全部职位,不能进行修改。6数据库设计6.1数据分析数据分析是数据库在设计之前就要考虑的第一个步骤,设计者要分析数据库的物理结构和逻辑结构,确定须要获得哪些信息,以一种干脆的、分类的方法来捕获用户的信息。在本系统中,最为直观的对象就是员工,通过员工表将其余的各个表连接起来,来实现对员工信息的综合管理,是本系统的设计思路。在系统的设计过程中运用信息建模的技术,通过实体、关系、属性这三个最重要的因素来确定对象,实体是在系统的运用中须要维护的相关特征的集合,属性是这些实体的特征和特性,而最终的关系则是各个实体之间的联系,关系为各个实体之间的联系建立了基础。通过之前一系列的分析,依据各个实体之间的关系,设计出本系统的数据表结构,本系统的数据库E-R图如图6-1所示。查看查看资料职位应聘部门资料职位应聘部门上传拥有公告上传拥有公告属于属于发布处理发布处理制定奖惩请假申请用户制定奖惩请假申请用户发放属于生成申请发放属于生成申请薪资薪资加班加班角色出勤角色出勤 图6-1数据库E-R图6.2数据表实现数据库是每个系统必不行少的组成部分,在系统的实际运用过程中,不行能干脆调用数据库中的信息,而是要通过JDBC技术去获得数据库中的信息,所以必需将软件设计的概念转化为数据表去操作数据,要将其转换为逻辑结构[12]。本系统运用SqlServer2008作为数据库运用,一共有十二张数据表。(1)部门表(department):记录各个部分的具体信息。(2)职位表(position):保存企业的职位信息,以及进行修改。(3)用户信息表(userinfo):是整个系统中最重要的表,记录了系统的全部运用者的信息。(4)应聘信息表(candidate):为人事部设计,特地用来聘请工作的运用。(5)公告表(news):更新和发布、删除公告。(6)薪资表(salary):记录每个员工每个月的薪资信息。(7)奖惩方法表(jc):明确企业中对于每个奖惩方法的处理状况,使企业办事更加公开透亮,有利于企业内部团结。(8)出勤记录表(attendancerecord):记录每个员工每天的出勤状况,员工每天的签到记录都保存在这张表中,每人每天只能插入一条数据。(9)请假表(leaves):员工可以在这个表中记录请假信息和请假申请,并由管理员负责处理这些请假信息。(10)资料共享表(datum):每个员工都可以自由的上传和共享资料,并且可以下载,便利企业中资料的流传,有利于员工的日常沟通。(11)加班表(extrawork):记录每个员工的加班信息,用作月末时计算工资运用。(12)角色表(roles):保存了系统中的全部身份,用来实现权限限制。保存在cpmns.MDF文件中,这些表分工明确,分别记录了不同的数据,共同为系统的运行供应支持。下面将对数据库中的各个表内容做出具体说明。(1)部门表Department部门表包括部门ID,部门名称、部门负责人、部门联系电话、部门创建时间这几个信息,部门ID被userinfo表作为外键引入,每个员工都有自己的部门,员工表通过引入部门外键可以查看部门的具体信息以及进行相关统计工作,部门表的具体设计如表6-1所示。表6-1部门表Department字段名数据类型是否主键有无外键描述didintYes部门IDdepartmentnamevarchar(20)部门名称managervarchar(10)负责人telvarchar(11)部门电话createtimevarchar(50)创建时间(2)职位表Position保存企业中的全部职位和信息,如ID、职位名称、添加时间等、并作为用户表的外键引入,每个用户都有一个职位,创建时间不能修改,具体设计如表6-2所示。表6-2职位信息表Position字段名数据类型是否主键有无外键描述pidintYes职位IDpositionnamevarchar(20)职位名称memovarchar(80)备注addtimevarchar(50)创建时间(3)公告表News公告表用来保存发布的公告,可以记录发布者的名字,发布时间等信息,表中引入了用户表userinfo中的userid作为外键,在添加公告时可以记录发布者的名字,可以保存企业中的公告信息,具体设计如表6-3所示。表6-3公告表News字段名数据类型是否主键有无外键描述idintYes公告IDnewstitlevarchar(20)公告标题useridvarchar(20)Userinfo(userid)发布者IDnewstimedatetime发布时间newscontentvarchar(500)公告内容(4)用户表Userinfo用户表是企业中保存实际运用者的表,设计最为困难,保存了用户的全部信息,员工用来登录的帐号密码也保存在此表中,每个运用者都有一个身份信息,表中的isuseable字段代表了该帐号是否可用,默认为1,假如是0则帐号无法运用。因为用户表是整个系统中最为重要的信息,假如删除会造成其他数据出现异样,所以不能删除,只能禁用,pid则对应职位表中的职位ID,代表员工在企业中的职位。具体设计如表6-4所示。表6-4用户表Userinfo字段名数据类型是否主键有无外键描述useridintYes员工IDuaccountvarchar(20)帐号upasswordvarchar(20)密码isuseableint是否可用personnamevarchar(20)姓名sexvarchar(5)性别ageint年龄cardidvarchar(18)身份证号visagevarchar(20)政治面貌ancestralhomevarchar(20)籍贯borndatedatetime诞生日期schoolvarchar(20)毕业院校Majorvarchar(10)专业Schoolingvarchar(10)学历Telvarchar(11)电话Homeaddressvarchar(50)住址departmentidintdepartment(did)所属部门intimedatetime入职时间pidintposition(pid)职位外键ridintrole(rid)角色外键memovarchar(50)备注leavetimedatetime离职时间(5)薪资表Salary薪资表用来保存员工的每月的薪资信息,包括发放时间、基础工资、奖金、罚金以及备注信息等,具体设计如表6-5所示。表6-5薪资表Salary字段名数据类型是否主键有无外键描述idintYes薪资IDuseridintuserinfo(userid)员工编号paymonthdatetime发放日期basemoneydecimal基本工资rewarddecimal奖金forfeitdecimal罚金totalmoneydecimal实际薪资memovarchar(50)备注(6)应聘信息表Candidate为了便利人事部的聘请工作,设计了这个应聘信息表,用来记录全部应聘者的信息,对应聘人员进行筛选,该表保存了应聘者的全部信息,在附属子系统中,应聘人员可以运用帐号和密码进行登录,并可以查看自己是否被录用。具体设计如表6-6所示,应聘人员的登录信息都存放在这张表中,便于管理员进行操作。表6-6应聘表Candidate字段名数据类型是否主键有无外键描述idintYes应聘者IDcanaccountvarchar(20)帐号canpasswordvarchar(20)密码cannamevarchar(20)应聘者名字sexvarchar(5)性别ageint年龄borndatedatetime诞生日期schoolvarchar(20)毕业院校majorvarchar(20)专业schoolingvarchar(10)学历experiencevarchar(20)工作阅历telvarchar(11)电话homeaddressvarchar(50)住址memovarchar(200)备注createtimedatetime创建时间positionnamevarchar(20)应聘职位ispassint是否通过(7)奖惩方法表Jc奖惩方法表记录了企业对于各种奖惩方法的具体实施方法,员工在出现这类状况时,可以依据这些信息进行具体的奖惩方法实施,可以使办事制度公开透亮化,有利于企业的团结和凝合力,具体设计如下,具体设计如表6-7所示。表6-7奖惩方法表Jc字段名数据类型是否主键有无外键描述idintYes奖惩方法IDjctypeint奖惩类别jcnamevarchar(20)奖惩名称jcmoneydecimal奖惩金额memovarchar(50)备注addtimedatetime创建时间(8)出勤记录表Attendancerecord出勤信息表记录了全部员工日常的签到信息,全部员工的签到记录都保存在这张表中,记录每天的出勤信息,录入时间时调用GETDATE()变量,录入时间晚于9点则视为当天迟到,具体设计如表6-8所示。表6-8出勤记录Attendancerecord字段名数据类型是否主键有无外键描述idintYes出勤编号useridintuserinfo(userid)员工编号attendancetimedatetime签到时间flagint是否迟到(9)请假表Leaves为了更好的管理员工的请假记录,设计了请假表,该表保存了全部的请假信息,包括申请人,申请时间,离开时间,理由,以及处理人和处理时间等信息,添加请假记录时默认为未处理状态,处理时可以保存处理人的信息,系统中可以依据月份计算出每个月每名员工的请假次数,管理员可以依据员工每个月的请假次数来进行工资的发放,具体设计如表6-9所示。表6-9请假表Leaves字段名数据类型是否主键有无外键描述idintYes请假编号useridintuserinfo(userid)员工编号applytimedatetime申请时间leavetimedatetime离开时间daycountint离开天数reasonvarchar(50)理由ispassedint是否批准dealidintuserinfo(userid)处理人dealtimedatetime处理时间memovarchar(50)备注(10)资料共享表Datum资料共享列表可以记录全部资料上传者信息,以及资料的名称,上传时间等信息,上传的资料相关信息会记录到这张表上,作为管理员管理资料的依据,具体设计如表6-10所示。表6-10资料共享Datum字段名数据类型是否主键有无外键描述IdintYes资料编号Useridintuserinfo(userid)员工编号Datumnamevarchar(100)资料名称Uploadtimedatetime上传时间(11)加班信息表Extrawork几乎全部企业都存在加班的状况,所以本系统设计了加班信息表,记录了加班信息,如加班人、加班起先时间、加班时长、加班费等,加班信息表的数据最终会作为工资发放的依据之一。具体设计如表6-11所示。表6-11加班信息表Extrawork字段名数据类型是否主键有无外键描述idintYes加班编号useridintuserinfo(userid)用户编号starttimedatetime起先时间extratimeint加班时长extramoneydecimal加班费memovarchar(50)备注(12)角色表Roles角色表存储了本系统中所用到的角色,在UserInfo表中引入该表作为外键,用来实现系统的权限限制功能,具体设计如表6-12所示。表6-12角色表Roles字段名数据类型是否主键有无外键描述ridintYes角色编号rolenamevarchar(10)角色名称7系统实现本系统主要包括十一大模块,此外还有一个应聘系统作为本系统的附属系统运用,在每个模块中依据具体业务需求,分状况加入了相应的增删改查操作,以下将对这些模块的实现方法进行具体介绍。7.1各个模块实现(1)登录界面作为一个系统的入口,尤其是企业中运用的须要确定保密程度的系统,对登录人员的验证是必不行少的,在本系统中,假如想要访问主界面,就必须要进行身份验证,本系统的登录界面如图所示,只有胜利通过了验证,才能访问主界面,本模块对应数据库中的userinfo数据库,在输入账号和密码后,会由一个form表单提交给后台进行验证,后台处理文件为LoginServlet,在后台中运用request.getparameter()方法得到两个输入框中得到用户输入的信息,然后引入UserDao的实现子类UserDaoImpl,在登录时首先检查用户名密码是否正确,用户表中有无该用户,sql语句为:selectupasswordfromuserinfowhereuaccount=?。将输入的用户名和密码输入,假如没有得到User对象则登录失败。假如通过验证,登录胜利时会新建一个user类,调用登录方法:select*fromuserinfowhereuaccount=?andupassword=?,从数据库中得到该账号的信息,假如返回的user不为空,则说明数据库中存在该角色,然后须要推断该帐号是否已被禁用,假如已经被禁用,则禁止该账户登录,调用session的session.setattribute()[13]方法创建会话,里面装有登录用户的信息,用来保持该账号的登录状态,以便进行其他操作。登录界面如图7-1所示。图7-1登录界面(2)系统主界面在胜利验证了登录身份后,就可以进入到主界面,主界面由导航栏和左功能条组成,主页可以显示一条最新公告,主要功能模块都在主界面上显示,包括员工信息、应聘管理、部门信息等,左功能条则是考勤信息、公告系统以及资料共享系统,除此之为还为右上角可以显示登录人员的名称,显得更为人性化。在前台页面的构造中,运用了DIV+CSS的布局,这种布局的好处是可以把代码和显示格式分来,让编程人员可以专注于实现功能,而不用受到布局格式的干扰,使整个页面显得更为简洁,因为页面的导航栏和左功能条都是通用的,每个页面都要引入这两个模块,所以本系统运用两个jsp文件构建前台,一个是Top.jsp,一个是Left.jsp,在系统的每个前台页面中运用两条语句引入这两个jsp文件,达到页面复用的效果,实现代码如下。<jsp:includepage="Top.jsp"flush="true"/><jsp:includepage="Left.jsp"flush="true"/>这两条语句会引入每个页面所共用的Top和Left部分的jsp文件,不必再每个页面都重复的添加代码,假如须要修改界面,只须要修改一个,全部界面就会发生变更,不必再每个都作出修改,便利,提高了页面复用性,使前台页面的构造变得更加合理。主界面如图7-2所示。图7-2系统主界面图(3)员工信息员工信息管理是整个系统中最为核心,也是最重要的组成部分,员工在登录胜利后,可以点击员工信息中的“查看个人信息”进行个人具体信息的查看,会展示出来用户的全部信息,如姓名、年龄、性别、政治面貌、籍贯、住址等等信息,本模块对应数据库中的userinfo数据库,假如须要修改信息,可以进入到“修改个人信息”页面进行修改。一般员工只能进行个人信息的查看和修改操作,管理员在验证身份后,则可以进入到信息综合管理中,查询某个员工的信息并进行具体信息的查看。该模块的实现过程是在前台加入一个form表单,并运用name属性将表单中的各个输入框中的内容加以标识,在Employee_info.jsp中运用session.getparameter()方法得到登录用户的实体类,然后运用UserInfoDaoImpl类中的方法进行实现,将数据保存到数据库中,假如须要输出数据,则调用findUserById()方法,实现的关键sql语句为:select*fromuserinfowhereuserid=?;运用preparedstatement中的setObject()方法传入数据,将问号替换为员工编号,sql语句处理结束后会返回一个User类,运用setAttribute()方法拿到对应的员工信息,在前台页面运用<%=user.getuserid%>语句拿到用户的全部信息,员工信息界面如图7-3所示。图7-3员工信息界面(4)应聘管理应聘管理也是系统的重要组成部分之一,因为人才的管理也是对企业将来生命的管理,假如企业不主动的引入人才,企业将会变得奄奄一息,这个模块是特地为管理人员设计,在点击时会触发身份验证的方法,该方法会推断操作者的身份,须要管理员或管理员以上的身份才能进入,一般用户无权进行操作,本模块对应数据库中的candidate数据库,可以保存应聘者的全部信息,管理员可以进行增加应聘信息的操作,在后台页面运用request.getparameter()方法得到输入的数据,运用CaididateDao中的实现类CandidateDaoImpl类中的addCandidate()方法,将数据存放到数据库中,还可以修改应聘信息,以及查看未处理的应聘信息、未通过的应聘信息、已录用的应聘信息,这些信息的分类实现方式为在显示的时候,会推断应聘表的处理状态。未处理的表单查询语句为:select*fromcandidatewhereispassed=1;未录用的表单查询语句为:select*fromcandidatewhereispassed=2;已录用的表单查询语句为:select*fromcandidatewhereispassed=3;本模块供应了删除操作,相应的操作都会进入到后台进行处理。应聘人员资料填写界面如图7-4所示。图7-4应聘资料填写界面图(5)部门管理本模块对应数据库中的department数据库,用来保存企业中部门的具体信息,包括部门名称、创建时间、负责人、电话等信息,员工只能进行部门的查看操作,管理员可以增加部门,以及修改部门信息的操作,本模块没有供应部门的删除功能,因为在员工信息表中引入了该表的外键,假如删除部门,会造成员工信息的数据异样,并且在调查中发觉,解除部门这种现象在企业中极为少见,所以没有供应删除功能,只有修改功能,在部门管理界面还可以显示部门的员工数量,以及显示该部门员工的列表,实现语句为:selectCOUNT(userid)fromuserinfowheredepartmentid=?,该语句会统计出该职位的员工数量。部门模块的实现过程为在添加部门时,有一个form表单,会依据name属性记录输入的内容,后台会运用request.getparameter()方法得到这些值,然后调用DepartmentDao的实现类DepartmentDaoImpl类中的addDepartment()方法将数据插入到数据表中,进而实现整个部门模块的业务,界面如图7-5所示。图7-5部门信息界面图(6)职位管理本模块对应数据库中的position表,员工可以查看企业中全部职位的具体信息,如名称、创建时间、备注等,并可以进行查询操作,查询的sql语句为:select*frompositionwherepositionname=?。语句运用了preparestatement类,后面的问号在执行的时候会被preparedstatementd的setObect[]{},里面存放的变量通过下标代替,替换后就会变成可以让数据库执行的SQL语句,然后执行该语句,将数据存入到数据库中,管理员则可以添加企业的职位信息,以及修改职位信息。本模块没有供应职位的删除功能,在需求调查中发觉,撤销某个职位的业务在企业中基本不存在,并且假如删除某个职位,那么引入这个外键的全部员工信息都将出现数据异样的状况,所以没有供应删除方法。在职位的管理界面可以查看到该职位共有多少名员工,并且可以点击查看对应员工的具体信息,职位管理界面如图7-6所示。图7-6职位管理界面图(7)薪资信息本模块对应数据库中的salary表,员工可以查看自己的工资记录,以及查询历史记录,管理员可以添加工资、查询某个员工的工资记录,本模块供应了工资记录的删除功能,可以对员工工资的记录进行删除操作,查询工资只能由超级管理员进行,因为在企业中,薪资是严格保密的,不能随意查阅,薪资的删除操作也只能由超级管理员身份来完成,因为管理员可能会有很多,假如管理员身份就可以进行工资记录的删除操作,可能会有人恶意删除薪资记录,造成数据丢失,但是删除功能是的确须要的,因此把删除权限开放给超级管理员,只有超级管理员可以进行薪资记录的删除操作。员工可以查看自己的薪资记录,管理员则可以进入数据录入界面,在录入工资的时候,可以查看到当月该员工的全部考勤信息,如请假时长、迟到次数、加班时长等,并可以依据这些信息,依靠奖惩方法录入工资,薪资录入界面如图7-7所示。图7-7薪资信息录入界面图(8)奖惩方法管理本模块对应数据库中的jc数据表,员工可以查询企业中对各种须要进行嘉奖和惩罚的状况所作出的具体规定,管理员则可以进行增加奖惩方法、修改奖惩方法、删除奖惩方法的操作。本模块的实现过程是在页面中新建一个form表单,将须要输入的内容都包含在表单之中,通过name属性区分每个输入框输入的内容,在后台运用request.getparameter()方法取得输入的各个输入框中的内容,然后运用JcDao接口的JcDaoImpl实现类里的addJc()方法添加奖惩信息,记录奖惩信息时会自动生成添加时间,获得时间的语句为newSimpleDateFormat(“yyyy-MM-ddHH:mm:ss”).format(newDate());插入奖惩方法的sql语句为:insertjcvalues(?,?,?,?,?),newObject[]{};用preparedstatement中的setObject方法替换sql语句中的问号,并将数据存储到数据库中,奖惩信息录入界面如图7-8所示。图7-8薪资信息录入界面图(9)系统设置在此模块中,员工可以修改登录密码,在更改密码时须要输入原密码,而且两次输入新密码须要一样,管理员可以创建新账号为新员工运用,但是最高只能创建管理员身份的用户,这是考虑了系统数据平安问题后做出的实现方式,这样可以保证数据平安,假如随意管理员身份都可以创建超级管理员账号,会对系统数据平安造成隐患,假如须要创建超级管理员身份,就须要用超级管理员账号在权限修改界面将权限修改为超级管理员,管理员可以查看员工的权限状况,并可以最高修改为管理员身份,不能修改为超级管理员身份,可以对账号做出禁用操作,禁用的账号不能登录系统。实现方法为在form表单中输入须要修改的员工姓名,输入须要修改的身份,将数据提交到后台,运用preparedstatement的setObject方法将问号替换,执行修改操作,增加账号界面如图7-9所示。图7-9添加账号界面图(10)考勤系统本模块对应数据库中的attendance数据表,签到在每个企业中都是必须要有的一个功能,为此本系统加入了此模块,员工在每天进入到企业后,须要登录本系统,点击签到按钮进行签到,点击按钮时触发事务,在将签到信息保存到数据库时会进行验证,先查询该账号在当天的签到记录,假如查询到结果,证明该账号今日已经进行签到了,会提示用户不要重复签到,假如是当天第一次签到,则会获得签到时的时间,并保存到数据库中,并对签到时间做出推断,假如签到时间晚于早上9点,则认为该员工迟到,设置flag为0,并将这些信息记录到数据库中,员工可以进行签到操作,并可以按天和月份查询自己的签到信息,考勤记录是对员工进行综合考察的一项重要依据,所以本模块不供应考勤记录的修改方法,任何人都不能修改考勤信息,所以在删除考勤记录的权限方面只开放到了超级管理员,除超级管理员身份之外任何人不能删除考勤信息。本模块的实现方法为在员工登录后,点击“每日签到”,系统会在后台调用AttendanceDao的实现类AttendanceDaoImpl类中的AddAttendance()方法,该方法会首先执行一个新建日期的语句Format(“yyyy-MM-ddHH:mm:ss”).format(newDate());该语句会新建一个年月日时分秒格式的时间字符串,然后运用sql语句在数据库中查询:select*fromattendancerecordwhereattendancetimelike“?-?-?%anduserid=?”;运用preparedstatement.setObject()方法将年月日三个信息和userid传进去,假如返回有结果,则说明该账号当天已经进行过签到,会提示用户不要重复签到,假如没有查询到数据,则会加入一条记录,并推断时间是否晚于9点,晚点则视为迟到,实现的sql语句为:insertattendancerecordvalues(?,?,?,?);然后运用findAttedanceByMonthAndDate()方法查询记录,得到一个装有Attendancerecord的List<>对象,返回给前台后,前台用增加的for循环将List<>中的类取出来,并获得他们的属性,将结果展示在前台页面上,的考勤界面展示列表如图7-10所示。图7-10出勤记录信息列表图(11)请假系统本系统对应数据库中的leaves数据表,员工可以申请请假,并输入请假信息,包括离开时间、天数、理由等,在前台页面点击提交按钮,请假的表单就会以post方式提交,输入name属性,得到表单中各个数据的输入内容,调用LeavesDao层并运用多态[16]的方法,父类=new子类,将LeavesDaoImpl实例化,调用addLeaves方法将请假信息保平到数据库中,添加时的处理状态默认为未处理,在提交之后,会显示到待处理的请假信息表中,管理员登录系统后,可以查询全部未处理的请假信息,处理这些请假信息,可以允许或拒绝请假申请,更改ispassed为2或3,并会自动保存处理人的ID,还可以输入备注信息。请假信息申请界面如图7-11所示。图7-11添加请假界面图(12)加班管理本系统对应数据库中的extrawork数据表,加班状况在企业中是很正常的现象,为了记录这些信息,实现了这个加班信息的模块,员工可以添加加班信息,管理员可以查看全部人的加班信息,考虑到可能会有人记录虚假的加班信息,在本模块中供应了加班信息的删除功能,本系统把权限开放给了管理员,管理员可以查询某个人的加班信息,并可以对这些信息进行删除操作,加班信息填写界面如图7-12所示。图7-12加班信息填写界面图(13)公告系统本系统对应数据库中的news数据表,考虑到在企业实际运作的过程中,录入公告的不确定是管理员,公告的录入和发布工作可能由员工完成,所以把发布公告的权限开放给了员工,员工可以在这个模块中发布、查询公告、查看公告详情的操作。并且第一条公告会在系统主页中显示,为了保证公告内容的精确和平安,防止有人恶意修改公告,造成数据丢失,本系统没有实现公告的修改功能,至于公告的删除权限则开放到了管理员身份,管理员可以对公告进行删除操作,界面如图7-13所示。图7-13添加公告信息界面图(14)资料共享本模块对应的数据表是datum数据表,该表记录了资料的上传时间、上传者、存储路径等信息,和公告系统相同,企业内部任何人都可以上传资料,可以上传doc、docx、pdf等文件,上传的文件存放在apache的upload路径下,每个人都可以查询文件名称,选择文件进行下载,管理员可以对资料进行删除。本模块的实现方法为在书目中加入了一个开源工具包:smartupload,利用开源包里供应的方法实现文件的上传和下载,执行胜利后,会将文件保存到tomcat[15]服务器中的upload文件夹中,并将上传人的信息、上传时间、文件名称等信息记录到Datum数据表中,管理员可以依据数据表中存储的记录进行文件的整理工作,在下载页面可以进行文件的下载操作,下载实现的方法为。filename=request.getParameter("filename");StringdownPath="upload/"+filename;su.downloadFile(downPath); 上传资料界面如图7-14所示。图7-14上传文件界面截图(15)通用功能打开计算器:在calcServlet中实现,点击按钮触发调用系统自带的calc.exe文件,然后文件起先执行,就可以完成打开计算器软件的操作,实现过程为新建一个Runtime对象,创建线程Process,用该进程启动须要启动的软件,关键语句为:processp=r.exec("calc.exe"),系统自带的应用不须要输入完整路径,输入exe文件名称即可执行,执行结束后系统自带的计算器程序胜利运行,打开计算器界面如图7-15所示。图7-15打开计算器界面图7.2应聘子系统实现为了便利人事管理人员的资料录入工作,考虑到聘请工作特别繁忙,人事专员须要花费大量的时间对应聘资料进行录入,所以设计了企业人事管理系统的附加系统:应聘子系统,该系统和主系统的应聘表candidate共用一张数据表,但是页面不相同,应聘人员只能访问自己的信息页面,以及查看企业的所以要职位,和打开excel、计算器、word文档等通用功能,不能访问系统的主页面,此附属系统在界面上是独立于主系统的,并且这个系统会发布到互联网上,全部应聘者可以通过这个页面填写应聘信息,应聘人员可以在这个附属系统上注册账号,并可以登录系统,完善自己的应聘资料,在完善自己的资料后,点击提交,应聘者的信息会出现在主系统的应聘管理中的未处理表中,在进行处理后,状态变更,应聘者可以查看自己的录用状况。登录界面如图7-16所示。图7-16子系统登录界面图假如没有账号,可点击左下角的注册按钮注册一个账号,注册提交时会调用checkisExist()方法,检测该帐号是否已存在,假如已存在则无法注册,注册帐号界面如图7-17所示。图7-17应聘注册界面输入账号密码,验证胜利后可以登录到主页面中,应聘人员可以填写自己的应聘资料,填写完毕后点击提交,则自己的信息将会出现在应聘管理的未处理表格中,人事人员在登录后,可以处理这些应聘信息,添加备注并可以修改处理状态,1为默认状态,未处理。2为未录用,3为已录用,状态更改后,应聘人员可以在应聘系统中看到结果,处理状况的界面如图7-18所示。图7-18应聘处理状况截图应聘人员可以随时修改自己的应聘资料,备注自己的个人技能等信息,应聘资料填写界面如图7-19所示。图7-19应聘资料填写界面图7.3关键方法(1)JDBCJDBC是系统和数据库交互的重要组成部分,假如须要运用JDBC让java代码和数据库之间传输数据,首先须要在项目的WebRoot书目下的WebInf,lib文件夹中加入JDBC驱动的jar包,在项目中导入,初始化Connection和PrepareStatement类,加载JDBC驱动,取得连接后用PrepareStatement中的exec方法执行输入的Sql语句,运用SetObject代替Sql语句中的问号,执行结束后依据所执行的语句推断是否须要返回值,假如没有返回值则方法会返回一个布尔类型的值去提交给系统运用,假如有返回值则用ResultSet接收,最终封装成为一个List<List<String>>对象交给调用方法处理,主要代码如下。Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=cpmns",sa,sa);(2)导航栏Tab切换特效的实现在鼠标移动到导航栏上的模块时,会自动显示该模块下对应的子模块的选项,本系统的实现方法是在Top.jsp页面中,建立一个主menu,下面的子选项则是7个小menu,初始时只有第一个menu可以显示,其他六个不显示,将其余六个子menu的display属性设为none,然后在主menu的七个<></li>标签中添加onmouseover(i)事务,当鼠标移动到主menu时触发这些事务,方法中有一个for循环,在推断鼠标在哪个主menu上,将对应的子menu的display属性设为block,然后在for循环里将其他子menu的display属性设为none,达到Tab特效的效果,关键实现代码如下。for(vari=1;i<=7;i++){if(i==num){document.getElementById("content"+i).style.display="block";}else{document.getElementById("content"+i).style.display="none";}(3)分页方法在系统运行时,必定会有大量的数据,假如这些数据都在同一页显示是很不明智的,这时就要用到分页方法,分页方法实现的思想是先在后台获得前台页面的页数属性,假如为空,则说明是第一页,将currentpage设为1,然后定义每一页显示几条数据,在这里定义了一个页面可以显示8条数据,intpagesize=8;然后在前台进行操作时,假如是上一页的操作,将currentpage减一,假如是下一页的操作,将currentpage加一,首页则把currentpage设为1,尾页则要先计算数据库中有多少数据,除以pagesize得到总的页面数,再返回最终几条数据即可,最终就是将得到的List返回给前台,关键的实现代码如下。intpageSize=3;intcurrPage=Integer.parseInt(scurrPage);inttotalPage=PageUtil.pageTotal(pageSize,count);List<UserInfo>list=uid.findInfoByPage(pageSize,currPage);request.setAttribute("list",list);(4)数据库通用类DBUtil数据库和系统的交互是常常须要被调用的,然而一次一次的重复写代码是效率特别低下的行为,为了提高代码的复用性,使代码变得简洁高效,在项目中创建了一个的包,里面的DBUtil类实现了和JDBC交互的通用方法,首先将Connection和preparedstatement初始化为null,然后加载JDBC驱动,运用connection方法建立连接,和数据库得到连接后,执行sql语句,返回须要得到的结果集,最终关闭连接,完成整个交互过程,具体代码如下所示。ps=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论