基于Hibernate的工资管理系统开发【计算机科学专业】【毕业设计+文献综述+开题报告】

基于Hibernate的工资管理系统开发【计算机科学专业】【毕业设计+文献综述+开题报告】

ID:479607

大小:432.50 KB

页数:44页

时间:2017-08-09

上传者:U-944
基于Hibernate的工资管理系统开发【计算机科学专业】【毕业设计+文献综述+开题报告】_第1页
基于Hibernate的工资管理系统开发【计算机科学专业】【毕业设计+文献综述+开题报告】_第2页
基于Hibernate的工资管理系统开发【计算机科学专业】【毕业设计+文献综述+开题报告】_第3页
基于Hibernate的工资管理系统开发【计算机科学专业】【毕业设计+文献综述+开题报告】_第4页
基于Hibernate的工资管理系统开发【计算机科学专业】【毕业设计+文献综述+开题报告】_第5页
资源描述:

《基于Hibernate的工资管理系统开发【计算机科学专业】【毕业设计+文献综述+开题报告】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

(20届)本科毕业论文基于Hibernate的工资管理系统开发 摘要:工资管理在各个组织中的作用日益突出,工资管理主要包括职工管理、工资设定、工资修改、考勤管理等若干部分,这些信息数据量巨大、关系复杂,如若通过工资管理软件进行计算机自动化管理,将会大大提高财务部门的办公效率,从而做出正确的人力资源配置。本文首先概括介绍了Java技术,接着对Hibernate技术进行了较为详细的研究,并严格按照软件工程的流程和思想对系统做了详尽的需求分析,设计并实现了一个基于Hibernate的工资管理系统,最后对实现的系统的功能进行了功能测试。论文根据软件工程方法从系统需求分析、数据库设计、系统设计、系统功能和代码几个方面来叙述工资管理软件的开发过程。关键词:Java;Hibernate;工资管理系统;功能测试; SalarymanagementsystemdevelopmentbaseonHibernateAbstract:Salarymanagementineachorganization'sroleisincreasinglyprominent.Salarymanagementincludesstaffmanagementwagesetting,wagechanges,somepartoftheattendancemanagement.Thisinformationishugeandcomplex.Iftheyaremanagedbysalarymanagementsystemsoftwareofcomputerizedmanagement,workefficiencyofpersonnelmanagedepartmentwillbeimprovedgreatlyandmanpowerresourcewillbearrangedcorrectly.FirstlyanoverviewofJavaisintroduced,SecondlyamoredetailedstudyistakentotheHibernatetechnologyandinstrictaccordancewiththeflowandthoughtofsoftwareengineering,detailedrequirementanalysisistakentothesystem,DesignandimplementationofasalarymanagementsystembaseonHibernate.finallythefunctionaltestistakentotherealizationofthefunctionalityofthesystem.Salarymanagementsoftwaredevelopmentprocessisdescribedfromthesystemrequirementanalysis,databasedesign,systemdesign,systemfunctionandcodeseveralaspects.Keywords:Java;Hibernate;Salarymanagementsystem;Functionaltest; 目录1绪论11.1课题研究背景及意义11.2工资管理系统的可行性分析31.2.1技术可行性31.2.2管理可行性31.2.3经济可行性31.3国内外研究现状分析31.4论文的实践基础41.5本文主要工作42相关的技术和工具的简介52.1关系映射简介52.2.1ORM模式52.2.2ORM实现原理52.2Hibernate简介62.3Hibernate原理72.4系统开发工具简介72.4.1tomcat简介72.4.2Eclipse简介72.5数据库简介82.5.1数据的规范化82.5.2数据库的完整性设计93系统功能概况和核心代码113.1系统的主要功能113.1.1登陆模块123.1.2人事管理模块153.1.3工资管理模块193.2编写Hibernate的配置文件23 3.4实体类和映射文件233.5针对非功能性需求的解决方案253.6小结254数据库设计264.1数据库的概念设计264.2工资管理系统数据库表概览27开发总结及心得体会28参考文献29致谢31 1绪论1.1课题研究背景及意义市场经济条件下,技术的竞争、市场的竞争、服务的竞争归根结底还是人才的竞争。当今社会,在“以人为本”观念的熏陶下,人事管理在各个单位中的作用日益突出,而工资管理又是人事管理的一个最重要的模块。工资管理是一个单位日常工作中不可或缺的重要部分,它对于本单位的决策者和管理者来说都至关重要。飞速发展的技术变革和创新,以及新竞争环境的出现,使得越来越多的单位通过构筑自身的人事竞争力来维持生存并促进持续发展。而人员的复杂性却使得工资管理成为难题[1]。工资信息的一大显著特点就是数据量大、关系复杂。用传统人工的方式管理文件档案,效率低、保密性差,查找、更新、维护也特别困难。以往的财务工作者由于缺乏适当的软件给其工作带来了诸多不便。随着科学技术的不断发展和计算机科学的日益成熟,人事工作者急切希望能够将工资管理中大部分繁琐的工作交给计算机处理,从而减轻人工的压力并提高工作效率。工资管理系统应运而生,而计算机的普及更加快了工资管理系统的产生技术的不断发展。工资管理系统是一个典型的信息管理系统(MIS),本课题来源于某事业单位对工资档案管理的个性化需求,开发此系统的目的是为了提高该单位的工资管理效率,实现工资管理的自动化和信息化。工资管理系统使用计算机对人事档案信息进行管理,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低廉等优点是手工管理所无法比拟的。工资管理系统功能全面、操作简便,能够快速地为员工建立电子档案,而且便于修改、保存和查询,实现了无纸化存档,能够为使用者节省大量资金和空间。工资管理系统利用计算机进行信息控制和数据处理,不仅提高了工作效率,而且还大大的提高了其安全性[1]。在工资管理系统的开发过程中,项目涉及到的用户和数据较多,因此用到的表也较多且与表之间还存在着复杂的映射关系,若采用传统的JDBC(JavaDataBaseConneetivityStandard),要编写的代码将会相当复杂,日后的维护量也将会直线上升,而且不利于调试,也很难实现代码的复用。于是这就需要有一种更方便、更通用的方案来解决需求的变动所带来的代码重用和产品维护问题,也需要一种更方便的实现数据持久层的框架以及实现这种框架需要的工具。而当前比较流行的Hibernate数据持久层框架可以很好的满足这种要求[2]。39 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装。有了它,Java程序员便可以随心所欲的使用对象编程思维来操纵数据库。同时,Hibernate是一个功能强大、高性能、相当流行的对象关系映射工具,它推动了基于普通Java对象模型、用于映射底层数据结构的持久对象的开发,且能够提供高级数据查询和检索服务[2]。Hibernate框架完全基于对象关系模型,使开发者在开发过程中省去了很多繁琐的工作,可以将精力集中到业务问题的实现上。不论开发者使用何种应用开发策略(自项向下,从域模型开始或者自底向上,从一个现有的数据库模式开始),使用Hibernate和适当的工具将会减少大量的开发时间[4]。在手工编码的持久性系统中,关系表示和对象模型之间存在一种不可避免的紧张。改变一个几乎总是包含改变其它的,并且一种表示设计经常需要妥协来适应其它的存在。基于Hibernate的代码编写相对较少,这使得对系统操作的理解更容易。在有时间限制的项目中,手工编码的持久层通常只允许开发者利用一点时间做一些优化,而Hibernate允许开发者在全部的时间内做更多的优化。因此,使用Hibernate开发者可以花更多的时间手工优化一些其余的瓶颈。此外,Hibernate还具有以下优点:1.Hibernate使用Java反射机制而不是字节码增强程序来实现透明性;2.Hibernate是个轻量级框架,因此它的性能非常好,映射的灵活性也很出色;3.它支持各种关系数据库,从一对一到多对多的各种复杂关系。基于Hibernate的这些优点和该单位要求开发时间尽量短以尽早使用该系统的需求,笔者着手开发基于Hibernate的实用型人事档案管理系统。开发这样一个工资管理系统具有很强的现实意义:1.大幅度提高工作效率和工作质量,使该单位的人事管理者从繁重琐碎的人事管理工作中解脱出来2.通过计算机对数据库进行管理代替手工统计工作,将在很大程度上减少数据统计的工作量,并且能使数据统计过程中的错漏减少到最低程度。3.大大节约工资管理方面的成本,从而使该单位获得更好的社会效益和经济效益。4.使该单位的工资管理工作更加规范、高效,在一定程度上加快了该单位的管理信息化进程。39 1.2工资管理系统的可行性分析工资管理系统使得职工工资档案查询、调用的速度加快,同时也使得精确分析大量员工的工资、出勤、信息成为可能,从而实现工资管理的标准化、科学化、信息化。因此建立工资管理系统,使工资管理自动化,提高信息处理的速度和准确性十分必要。以下几个方面的调查分析可知开发此工资管理系统的各种条件已经具备,开发此工资管理系统必要且可行。1.2.1技术可行性该人事管理系统虽然在组织关系上存在着较大的复杂性、繁琐性,但是从整个系统的技术构成上来看,它属于一个基于数据库应用的系统,其基本操作是对己存在的数据库信息进行添加、删除、查找、编辑等。使用此系统的事业单位属于小型事业单位,总人数才50多人,若对全部员工的人事信息建立数据库的话,规模算不上庞大,且开发此工资管理系统得到了人事处领导的大力支持和重视,对新系统的开发提供了大量完整的正确的原始档案数据,因此,就单纯的数据库应用来看,不存在太大的技术问题。而Hibernate是Java开源项目,拥有丰富的参考文档与实例。因此,Hibernate相关技术的获取和应用也不存在太大的问题。1.2.2管理可行性项目组在系统开发时充分注意了可操作性和易用性,现有员工通过简单培训或阅读操作手册完全能掌握系统并能方便地使用系统。随着时代的发展和计算机的普及,该单位人员的素质己逐步提高,不管是对于电脑系统的基本操作还是对于系统的维护都有了一定的基础。同时该单位还可以配置专业的电脑维护人员来维护电脑,不必担心电脑故障问题。1.2.3经济可行性该单位财务处、人事处用于此工资管理系统开发的预算完全可满足设备投入和人力投入,系统投入使用后将会极大地提高管理者的工作效率和工作质量,大大节约该单位工资管理的成本,从而将获得很好的社会效益和经济效益。1.3国内外研究现状分析工资管理系统此前已有许多解决方案,所用技术也是越来越先进。较早的工资管理系统主要采用Foxbase、FoxPro39 、VB等数据库开发工具,系统开发环境也是数据库内置的开发工具。其特点是单机单用户方式,开发简单,能充分利用数据库的特性。其缺点是:开发出的系统依赖性很强,运行必须依托数据库环境;不容易升级与扩展;无法实现数据的共享与并行操作;代码重用性差。而后出现了基于传统的C/S模式下采用面向对象的开发工具开发的一系列工资管理软件。采用可视化的面向对象的开发工具PowerBuilder7.0进行系统程序设计;缺点是客户端由于担当了过多的角色而显得臃肿和服务器端负担过重,而且系统的安装和部署也比较麻烦,难于升级或改进,不具有很强的可伸展性。随着Internet技术、面向对象技术和分布式计算相互融合,传统的C/S两层体系结构已经不能适应当今大型应用系统的发展要求,因此,多层分布式体系结构应运而生,这些系统一般是采用B/S(Browser/Server)结构来开发。值得注意的是,以上所提到的B/S结构的工资管理系统的研究都是适用于大型应用系统,其开发成本之高和开发周期之长是小型单位所不能忍受的,且小型单位并不需要使用很多复杂的功能,将大型应用系统用在小型单位未免有点“大材小用”。这也就意味着小型工资管理系统仍有应用空间和潜在市场,本论文介绍的基于Hibernate的工资管理系统就是为了满足小型单位的个性化需求而开发设计的。系统使用JavaSwing技术获得了简单实用的用户界面,使用C/S架构和Hibernate框架技术大大减少了软件开发成本和开发时间,并实现了系统运行与数据库无关:在程序编写过程中,不用考虑系统最终使用的数据库。使用系统时,根据用户选用的数据库平台,直接修改Hibernate的配置文件即可[4]。1.4论文的实践基础本论文是结合某事业单位的工资管理系统项目的开发设计而进行的,作者本人从项目的开始阶段就参与了进来,在开发的过程中不断学习和实践,经过了将近一年的磨练,对笔者负责的需求、设计、测试阶段都积累了一定的经验,:并对后面的设计开发以及论文的撰写创造了有利条件。1.5本文主要工作为某事业单位开发的工资管理系统采用了安全性较高的C/S架构,系统前台采用了html技术实现用户界面,后台数据库采用了MYSQL,对于数据持久化操作采用了Hibernate框架技术。我所做的工作是首先对html技术做了简要介绍,主要分析了html的优点和选用Swing开发工资管理系统的原因,接着对在ORM(Object-RelationMapping)思想指导下的ORM框架Hibernate进行了较为细致的研究,并严格按照软件工程的流程和思想对系统部分功能做了详尽的需求分析和设计,最后对实现的系统的部分功能进行了功能测试以验证功能是否实现以及是否能够满足实际需要。我的工作重点是用html和Hibernate两个主流工具实现工资管理系统的设计。39 2相关的技术和工具的简介2.1关系映射简介对象关系映射ORM(Object-RelationMapping)是为了解决面向对象的开发与关系型数据库的数据访问之间的冲突而提出来的[15]。本章主要阐述了ORM技术,并对在ORM思想指导下的ORM框架Hibernate进行了较为细致的研究。2.2.1ORM模式在研究对象关系映射的模式时,通常采用如下的对应关系将对象与数据表进行关联:属性一一列类/实例一一表/行关系一一外键根据抽象对象与关系数据库的特性,在以下几个方面实现:(1)从类属性到数据表列的映射。类属性和表列并非一一对应。一个类属性可对多个实体表的字段。所以,在设置主键时,一般会采用无业务意义的字段对象标识符作为各个实体表的主键,也作为类与数据库映射时的对象的惟一标识。(2)从类到数据表的映射。当不同层次的父类和子类映射到数据表时,应该根据实际的系统设计结果,权衡采用怎样的映射策略。这种映射主要是指继承映射,可以采用的映射策略主要分为以下3种:1个类继承树1个表、1个具体类1个表和l类l表。(3)类间关系映射为键值。这是映射的难点。主要是体现类关系中的关联和聚集。2.2.2ORM实现原理(1)ORM具体实现方式ORM的实现技术一般有两种:一是利用反射机制,在运行时自动产生SQL语句,执行ORM的操作。二是通过ORM工具,生成代码,把其代码加到项目中。这种方法缺点是生成了大量的代码,不便于修改和阅读。(2)关联表的处理对于有外键关系的表,对应的实体层就是有参照关系的类,这是0RM实现的一个难点。(3)唯一标识的处理数据表中的一个主键,唯一标识一条数据记录。那么,在对应的实体类中,就使用这个主键作为判断两个类是否相等的唯一标识。主键的选择一般用没有含义的主键。39 (4)SQL语句的生成ORM的结果就是把类的操作最后转变成Insert,Update,Delete,Select等语句进行数据库操作。因此开发ORM工具时需要有一个生成SQL语句的方法。有了这个方法以后,就可以节省下写SQL的时间了。2.2Hibernate简介Hibernate是一种Java语言下的对象/关系映射解决方案。它是使用GNU宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。Hibernate不仅负责从Java类到数据库表的映射(包括从Java数据类型到SOL数据类型的映射),还提供了面向对象的数据查询检索机制,从而极大地缩短了手动处理SOL和JDBC上的开发时间。另外,Hibernate可以利用代理模式来简化载入类的过程,这将大大减少利用HQL(HibernateQueryLanguage)从数据库提取数据的代码编写量,从而节约开发时间和开发成本。通过使Hibernate开发者可以轻松解决在使用传统的CMP以及JDBC和DAO(DataAccessObject)技术开发持久层时遇到的困难,使生产力得到极大的提升。选择Hibernate的原因及其应用优势:1.Hibernate是Java开源项目,其底层代码对用户开放,这样用户可以在需要的时候修改其源代码,对其进行功能的定制或者拓展,并且拥有丰富的参考文档与实例。2.Hibernate具有一支活跃的社区开发队伍,这使其长期发展有了稳定的保证。3.Hibernate使用方便,既适用于桌面程序开发,也可以引入到企业级应用开发中。4.由于Hibernate对JDBC进行了轻量级的对象封装,如果有需要,用户可Hibernate,直接访问JDBCAPI。Hibernate的Transaction实际上就是底层的JDBCTransaction的封装,这样大大简化了数据持久层的开发与调试,减轻了程序员的负担。5.具有可扩展性。6.使用方便,容易上手。7.Hibernate可以和多种Web服务器、应用服务器良好集成,并且支持几乎所有流行的数据库服务器。2.3Hibernate原理Hibernate技术本质上是一个提供数据库服务的中间件。图3-i显示了Hibernate39 的工作原理。Hibernate在构建Java应用中的作用是:应用程序通过Hibernate对数据库进行访问,对持久层操作,而Hibernate自身通过properties配置文件和XMLMapping映射文件将类型映射到数据库的记录。从而Application应用可以通过起着应用与数据库之间的桥梁作用的持久化对象直接访问数据库,而不是必须使用JDBC和SOL进行数据的操作。Hibernate具有很大的灵活性,提供了好几种不同的运行方式。在轻型体系中,应用程序提供JDBC连接,并且自行管理事务,这种方式使用了Hibernate的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的JDBC/JTAAPI都被抽象了,Hibernate会照管所有的细节。2.4系统开发工具简介2.4.1tomcat简介自从JSP发布之后,推出了各式各样的JSP引擎。ApacheGroup在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持Servlet,这样Tomcat就诞生了。Tomcat是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的java产品,同时它又是sun公司官方推荐的servlet和jsp容器,因此其越来越多的受到软件公司和开发人员的喜爱。servlet和jsp的最新规范都可以在tomcat的新版本中得到实现。其次,Tomcat是完全免费的软件,任何人都可以从互联网上自由地下载。2.4.2Eclipse简介Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、RationalSoftware、RedHat及Sybase等。Eclipse是一个开发源码项目,它其实是VisualAgeforJava的替代品,其界面跟先前的VisualAgefor39 Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。近期还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。2.5数据库简介在开发工资管理系统时,对数据库的操作肯定是必不可少的,而数据库的设计优秀与否,将会直接影响到软件的开发进度和性能,对数据库的设计于是就显得非常重要和关键。数据库的设计应当根据程序的需求及其功能制定,如果在开发软件之前不能很好地设计数据库的话,会导致在开发过程中反复修改数据库,到时势必严重影响开发进度[14]。在服务器端,笔者采用了MYSQL。MySQL是一个真正的多用户、多线程SQL数据可服务器。SQL是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构实现的,是有一个服务器守护程序mysqld和很多不同的客户程序和库组成的。SQL是一种标准化语言,它使得存储、更新和存取信息更容易。如果您想用SQL语言为一个网站检索产品信息及存储顾客信息,那么,MySQL能够以足够快的速度和灵活来允许您存储纪录文件和图像。尽管MySQL还在不断的开发中,但它已经提供了一个丰富的和极其有用的功能集。2.5.1数据的规范化之所以对数据库进行规范化是为了防止数据冗余,如果冗余数据较多的话,极易导致在处理插入、删除和更新数据操作时的异常,这是因为一个值可能存储在多个位置上,这样就会增加数据更改时发生异常的概率。还有,由于需要较多的语句维护多个位置的相同值,特别是在一个表中存储大量相同且重复的信息的时候,很有可能会造成系统性能的下降。因此我们需要数据库设计的三大范式来达到规范化的目的[14]:第一范式(1NF):第一范式规定当且仅当表中所有的字段不可分割时,才会符合第一范式。例如一个电子商务的程序,如果在“商品名”字段中同时包含产地信息,则认为此字段违反了原子性的要求,解决的方式是将产地分离到一个单独的字段中。39 第二范式(2NF):第二范式在符合第一范式的基础上,规定每一个非主键字段都可用主键表示,但不强制只使用主键表示,第二范式允许字段的传递依赖,这种情况下,一个字段可被多个其他字段标识。第三范式(3NF):第三范式是在符合第二范式的基础上,规定每一个非主键字段有且只有主键可唯一标识时,才符合第三范式。通常拥有多个组合键的表会不符合第三范式。在设计表结构时,最好应符合第三范式,但若一个表在符合第三范式的基础上有较多的表链接时,比如超过4个表链接时很有可能会影响到性能,这时我们就可以考虑保持较少的冗余数据。进行数据库设计时,我们应当在规范化和性能之间寻求一个最佳平衡点。2.5.2数据库的完整性设计良好的数据库设计是数据库应用程序成功的基础,在数据库服务器上实现数据完整性,有利于数据维护和更新。MYSQL提供了如下机制来保证数据的完整性[14]:参照完整性:关系数据库的参照完整性是指每个表的每一行都能够被唯一地标识。SQLServer通过主键(PrimaryKey)来确保这种唯一性。一个表只允许拥有一个主键,在定义一个表时,可指定某个列或某些列的组合作为主键,通常定义一个具有唯一性的编号作为主键。MYSQL通过外键(ForeignKey)约束实现表之间的逻辑关系。默认值:默认值是指插入数值时在用户没有提供明确数值时,由数据库插入的预先指定的值。约束和规则:约束和规则用于检查某列的值是否在某一特定范围内,或匹配特定的条件等。其中约束最为灵活,在定义列时,可以很方便地定义约束,并且可以针对多个列定义。在约束中,可以使用系统函数返回的值,并且可参照表中其他的列值。当在列中保存值时,SQLServer参照为此列建立的所有约束和规则,只有符合所有约束的值才会被正常保存。触发器:触发器与约束类似。当触发器与某些列关联时,每当更改数据,MYSQL将会自动执行触发器。触发器可以说是一种特殊的存储过程,触发器中可使用Transact.SQL包含的函数和语句对数据进行精确限制。事务处理:事务处理可以把多个SQL命令作为一个处理单元看待,发出COMMIT命令后,所有更新才会被应用。而当出现错误时,所有的操作将会回滚,这样可保证数据库的一致性和可恢复性。在一个事务中,所有的操作要么执行,要么全部终止。39 3数据库设计3.1数据库的概念设计在开发工资管理系统时,对数据库的操作肯定是必不可少的,而数据库的设计优秀与否,将会直接影响到软件的开发进度和性能,对数据库的设计于是就显得非常重要和关键。数据库的设计应当根据程序的需求及其功能制定,如果在开发软件之前不能很好地设计数据库的话,会导致在开发过程中反复修改数据库,到时势必严重影响开发进度。数据库设计是通过系统的整体需求而制定的,工资管理系统的需求主要包括对人事档案的管理和对人事考勤的管理,考勤和绩效的信息将体现到待遇统计中。以下为系统主要信息表的E-R图:工资信息基本工资医保失业保险养老保险实发工资缺勤扣除加班工资员工名字个人税图1工资管理E-R图员工信息姓名部门入职时间考勤信息加班信息图2员工管理E-R图39 3.2工资管理系统数据库表概览由于数据库表很多,笔者只列出以下主要数据库表:表1jiaban加班信息表:字段名类型长度是否为空备注ygnamevarchar20no员工姓名jbmonthint11no加班月份yearint11no加班年份jbzjineint11no加班小时数jbtsint11no每小时金额表2kqinfo考勤管理表:字段名类型长度是否为空备注kqidint11no考勤号ygnamevarchar20no姓名kqmonthint11no月份yearint11no年份kqkouchuint11no扣除金额39 4系统功能概况和核心代码4.1系统的主要功能工资管理系统,是为了满足单位或企业在工资管理工作上的具体需求而设计开发的管理信息系统,主要目的是为了方便其在工资发放和工资管理上的工作任务,实现工资管理的标准化、科学化、信息化。在出现工资管理系统之前,财务管理人员一般都是通过人工管理档案的方式来完成工资管理和发放,这种原始方式不但费时又费力而且效率低、保密性差,对员工信息进行查找、更新、维护比较困难。工资管理系统出现后,使用计算机对职工档案信息进行管理使得工资查询、调用的速度加快,也使得精确分析大量员工的工资情况、工作时间、出勤情况等成为可能。因此,工资管理系统在当今社会得到了广泛的应用。企业工资管理系统的主要任务是用计算机对各种工资信息进行日常的管理,如查询、修改、增加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,快速打印出工资报表,针对系统服务对象的具体要求,设计了企业工资管理系统。企业工资管理系统主要有以下几大功能:(1)对单位人员的变动进行处理。一个单位的职工不会是一成不变的,总是在不断的变化:有调出、有调入、也有职工在本单位内部调动。因此,设计系统是应考虑到这些情况。(2)对职工的工资进行计算、修改。可以对职工的工资档案进行个别、部分和批量修改,同时,能对各职工的工资进行计算,即计算应发金额、应扣金额及实发金额等。(3)查询统计功能。要求即可以单项查询,比如查看某个职工的工资情况等;也可以多项查询,比如某部门工资数在某一范围的职工的工资情况等。(4)对员工的出勤情况进行统计,查询。出勤情况包括加班和缺勤信息等。通过对这两类用户的功能需求分析、角色分析,形成了系统的功能设计。系统需要拥有的功能有:管理登陆、工资管理、考勤管理、工资汇总。系统功能结构图如下图:39 人事部财务部员工基本管理工资管理计算员工工资查看工资信息部门工资汇总员工考勤管理添加员工信息查看员工信息添加考勤信息删除考勤信息修改考勤信息图3功能结构4.1.1登陆模块◆用户通过登录窗体输入用户名和密码,为了系统的安全性,不允许用户名和密码为空。◆验证用户名和密码是否正确。◆用户在登录后被分配了相应权限许可范围。◆用户可以选择管理员的部门。39 登陆界面截图:图4登陆界面登陆模块的核心代码:publicActionForwardlogin(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){AdminFormadminForm=(AdminForm)form;Stringcheckcode=adminForm.getAdmincheckcode();Stringccheck=(String)request.getSession().getAttribute("ccode");if(ccheck.equals(checkcode)){Stringadminname=adminForm.getAdminname();Stringadminpwd=adminForm.getAdminpwd();intstatus=adminForm.getStatus();booleanflag=false;try{flag=DAOFactory.getGongziDAO().queryadmin(adminname,adminpwd,status);if(flag==true&&status==1){request.getSession().setAttribute("status",status);returnmapping.findForward("loginrenshisuccess");}if(flag==true&&status==2){39 request.getSession().setAttribute("status",status);returnmapping.findForward("logincaiwusuccess");}if(flag==true&&status==3){request.getSession().setAttribute("status",status);returnmapping.findForward("loginweihusuccess");}else{ActionMessageserrors=newActionMessages();errors.add("adminnameoradminpwd",newActionMessage("adminnameoradminpwd.error"));super.saveErrors(request,errors);returnmapping.findForward("loginfailure");}}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();returnmapping.getInputForward();}}else{ActionMessageserrors=newActionMessages();errors.add("ckeckcode",newActionMessage("ckeckcode.error"));super.saveErrors(request,errors);returnmapping.findForward("loginfailure");}}publicActionForwardlogout(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){request.getSession().removeAttribute("adminname");returnmapping.findForward("logoutdo");39 }4.1.2人事管理模块◆人事管理员可以登陆人事管理模块对员工的基本信息进行添加、修改等操作。◆管理员可以在人事管理模块中可以对员工的出勤情况进行操作。人事管理界面:图5人事管理首页图6员工添加图7考勤添加39 人事管理模块的部分代码:publicActionForwardinsert(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){KqFormkqForm=(KqForm)form;Kqinfokqinfo=newKqinfo();kqinfo.setQqkcje(5);kqinfo.setYgid(Integer.parseInt(kqForm.getYgid()));kqinfo.setYgname(kqForm.getYgname());kqinfo.setYear(Integer.parseInt(kqForm.getYear()));kqinfo.setKqmonth(Integer.parseInt(kqForm.getKqmonth()));kqinfo.setQqts(Integer.parseInt(kqForm.getQqts()));kqinfo.setKqzkouchu(Integer.parseInt(kqForm.getQqts())*5);kqinfo.setQqkcje(5);try{DAOFactory.getKqDAO().insert(kqinfo);returnmapping.findForward("success");}catch(Exceptione){e.printStackTrace();returnmapping.getInputForward();}}publicActionForwardqueryallkqByname(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){Listall=null;intcurrentpage=1;intlinesize=4;intallRecorders=0;try{intygid=Integer.parseInt(request.getParameter("ygid"));if(!(request.getParameter("cp")==null||"".equals(request39 .getParameter("cp")))){currentpage=Integer.parseInt(request.getParameter("cp"));}allRecorders=DAOFactory.getKqDAO().queryCountByname(ygid);all=DAOFactory.getKqDAO().queryByname(ygid,currentpage,linesize);Kqinfokqinfo=newKqinfo();for(inti=0;i0){request.setAttribute("all",all);}else{request.setAttribute("flag","flag");request.setAttribute("currentPage",0);}request.setAttribute("jspUrl","kq.do");request.setAttribute("method","queryallkqByname");request.setAttribute("flagname","ygid");request.setAttribute("flagvalue",ygid);returnmapping.findForward("querybynamedo");}catch(NumberFormatExceptione){e.printStackTrace();returnmapping.getInputForward();}catch(Exceptione){e.printStackTrace();returnmapping.getInputForward();39 }}publicActionForwardqueryallkq(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){Listall=null;intcurrentpage=1;intlinesize=4;intallRecorders=0;try{if(!(request.getParameter("cp")==null||"".equals(request.getParameter("cp")))){currentpage=Integer.parseInt(request.getParameter("cp"));}allRecorders=DAOFactory.getKqDAO().queryallCount();all=DAOFactory.getKqDAO().queryall(currentpage,linesize);request.setAttribute("currentPage",newInteger(currentpage));request.setAttribute("lineSize",newInteger(linesize));request.setAttribute("allRecorders",newInteger(allRecorders));if(all.size()>0){request.setAttribute("all",all);}else{request.setAttribute("flag","flag");request.setAttribute("currentPage",0);}request.setAttribute("jspUrl","kq.do");request.setAttribute("method","queryallkq");returnmapping.findForward("queryallkqdo");}catch(NumberFormatExceptione){e.printStackTrace();returnmapping.getInputForward();39 }catch(Exceptione){e.printStackTrace();returnmapping.getInputForward();}}4.1.3工资管理模块财务部可以在工资管理模块对员工的工资情况进行操作。部分界面如下:图8工资管理操作界面图9工资信息工资管理模块的部分代码:publicActionForwardinsert(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){MonthsalaryFormmonthsalaryForm=(MonthsalaryForm)form;Stringygname=request.getParameter("ygname");System.out.println(ygname);Jibengzjibengz=newJibengz();intyear=Integer.parseInt(request.getParameter("year"));intmonth=Integer.parseInt(request.getParameter("month"));39 try{Listlist=DAOFactory.getJibenDAO().queryallBynameyearmonth(ygname,year,month,1,1);if(list.size()==0){intkq=DAOFactory.getKqDAO().querykqByname(ygname,year,month);intjb=DAOFactory.getJiabanDAO().queryjbByname(ygname,year,month);intyears=year*12+month;Datedate=newDate();SimpleDateFormatsdf=newSimpleDateFormat("yyyy");SimpleDateFormatsdf1=newSimpleDateFormat("MM");intnowyear=Integer.parseInt(sdf.format(date));intnowmonth=Integer.parseInt(sdf1.format(date));intnowyears=nowyear*12+nowmonth;intgongling=nowyears-years;intjiben=0;intyanglao=0;intshiye=0;intyiliao=0;if(gongling<6){jiben=1500;}if(gongling<24&&gongling>=6){jiben=2300;}if(gongling<60&&gongling>=24){jiben=3000;}if(gongling>=60){jiben=4000;}39 yanglao=(int)(0.08*jiben);shiye=(int)(0.02*jiben);yiliao=(int)(0.01*jiben);intsjgz=jiben+jb-yanglao-shiye-yiliao-kq;intgerensdsh=0;intkcbz=2000;floatshuilv=0.0f;intsusuan=0;if(sjgz>kcbz){intcha=sjgz-kcbz;if(cha<500){shuilv=0.05f;susuan=0;gerensdsh=(int)(cha*shuilv-susuan);}if(cha>=500&&cha<2000){shuilv=0.1f;susuan=25;gerensdsh=(int)(cha*shuilv-susuan);}if(cha>=2000&&cha<5000){shuilv=0.15f;susuan=125;gerensdsh=(int)(cha*shuilv-susuan);}if(cha>=5000&&cha<20000){shuilv=0.2f;susuan=375;gerensdsh=(int)(cha*shuilv-susuan);39 }if(cha>=20000&&cha<40000){shuilv=0.25f;susuan=1375;gerensdsh=(int)(cha*shuilv-susuan);}if(cha>=40000&&cha<60000){shuilv=0.3f;susuan=3375;gerensdsh=(int)(cha*shuilv-susuan);}if(cha>=60000&&cha<80000){shuilv=0.35f;susuan=6375;gerensdsh=(int)(cha*shuilv-susuan);}if(cha>=80000&&cha<100000){shuilv=0.4f;susuan=10375;gerensdsh=(int)(cha*shuilv-susuan);}if(cha>=100000){shuilv=0.45f;susuan=15375;gerensdsh=(int)(cha*shuilv-susuan);}}else{gerensdsh=0;}39 4.2编写Hibernate的配置文件rootjdbc:mysql://localhost:3306/xinchouorg.hibernate.dialect.MySQLDialect123qwecom.mysql.jdbc.Drivertruecreate4.3实体类和映射文件由于系统的实体类和映射文件很多所以笔者只写其中一组。实体类Admin:publicclassAdmin{privateStringadminpwd;privateintstatus;privateStringadminname;privateintadminid;39 publicintgetStatus(){returnstatus;}publicvoidsetStatus(intstatus){this.status=status;}publicStringgetAdminpwd(){returnadminpwd;}publicvoidsetAdminpwd(Stringadminpwd){this.adminpwd=adminpwd;}publicStringgetAdminname(){returnadminname;}publicvoidsetAdminname(Stringadminname){this.adminname=adminname;}publicintgetAdminid(){returnadminid;}publicvoidsetAdminid(intadminid){this.adminid=adminid;}}映射文件Admin.hbm.xml:39 4.4针对非功能性需求的解决方案针对“操作简单方便,用户界面简洁大方、层次清晰"的需求,我们采用了html技术开发用户界面。然而客户又有着短开发周期的需求,并需要软件能够兼容多个数据库,于是笔者采用了Java平台下的Hibernate框架。首先,Hibernate能够和多种Web服务器、应用服务器良好集成,并且支持几乎所有流行的数据库服务器。其次,Hibernate框架是完全基于对象关系模型的,开发者能省去很多繁琐的工作而能将精力集中到业务问题的实现上,使用Hibernate和适当的工具将会减少大量的开发时间。最后,Hibernate技术完全可做到系统的运行与使用哪种数据库无关,如果需要更换数据库,只需要修改配置文件就可,不需要修改程序。针对“软件具有较高的安全性"的需求,同时考虑到此系统主要是在人事处的一两台电脑上运行和该单位的网络环境不是太好,该系统使用了C/S架构来提高安全性。4.5小结本章介绍了工资管理系统的基本概念和基本特点,并对工资管理系统的典型需求进行了分析描述。此外还介绍了工资管理系统的具体功能需求和非功能性需求,并针对非功能性需求提出了技术解决方案。39 结束语工资管理系统在高校的财务系统中有着举足轻重的作用,它是高校信息现代化,管理规范化的产物和需要,实现工资发放的信息化管理已成为迫切需要。一个学期的毕业设计已接近尾声了,这个工资管理系统也基本上完成了,虽然有许多不足的地方,但也有许多值得自己骄傲的地方,毕竟自己从来都没有开发过这么大的系统,虽然以前也有过管理信息系统的编写经历,但是像这次系统这么专业这么复杂的却是第一次。在这次系统的开发过程中学到了好多知识,以前学的JAVA编程都拿出来重新温故,而且更加深入,而且更加熟练地掌握了数据库,锻炼了我的项目开发能力,使我对软件工程的知识有了更深刻的理解、更贴切的感受。在这过程中有许多顺利的时候,也有过不顺利的时候,有时,一个问题能一连几个星期都解决不了,然后就和我就找同学讨论,实在讨论不出来,就到图书馆、上网查资料,有时候,资料都查不到,然后靠自己摸索,请我的指导老师胡智喜老师帮忙讲解,最终会柳暗花明又一村的。通过一个学期的实习和设计,磨炼了自己的耐心,培养了自己查资料和同学讨论的好习惯,这些对即将走上工作岗位的我是有很大的帮助的,相信我以后工作时在这些方面会做的更好。同时,我也发现和同学讨论会增强自己的记忆,但这次毕业设计还是有许多不足之处,如编程的能力,分析问题的能力不够强等,这些都有待今后进一步加强、改进、完善。工资管理系统已经基本完成,本系统主要由以下几大部分组成,包括:员工管理和工资设定、考勤管理等部分。此系统的规划虽然已经完成,功能基本实现了目标规划一些重要功能,但由于时间仓促,所以只要满足设计的需求就行了,并没有过多考虑到系统的技术含量,此系统采用的是C/S结构,而实际上采用B/S和C/S相结合的结构更为合理,但技术难度太大。由于时间仓促,用户管理未能很好的实现,本系统安全性没有很好的保障。其它一些不重要的辅助性、完善性的功能也未能在毕业设计所限定的时间内实现,而本文的内容也并未能完全表达整个系统的功能发展状态。参考文献[1]常君义.管理信息系统.2003年9月.中国电力出版社.[2]苏华军.基于Hibernate的Java对象持久化技术.电脑知识与技术.2008.[3]CHRISTIANBAUER,GOVINKINGHibernate实战.英文版,2版.北京:人民邮电出版社,2007.39 [4]胡建华.基于Hibernate开发与数据库无关的系统.计算机与现代化.2005.[5]雪焘.Hibernate开发及整合应用大全.北京:清华大学出版社.2006.[6]GB/T16260.2.2006软件工程产品质量第2部分:外部度量[7]凯纳等著,韩柯等译,软件测试经验与教训,机械工业出版社,2004.[8] 曹宇. 基于业务流程的生产管理信息系统的研究[J].市场周刊.研究版,2005,(4).[9] 纪兆毅,戴跃洪,罗中先,吴士燕.面向集成化敏捷供应链的ERP采购管理系统的研究[J].工业控制计算机,2006,(04)  [10] 吴云峰,汪进前.纺织ERP中生产管理系统的研究[J].浙江理工大学学报 ,2005,(02)[11] 李强.在MIS开发中引入面向对象的设计思想[J].郑州经济管理干部学院学报,2002,(03) [12] 纪兆毅,戴跃洪,罗中先,吴士燕.面向集成化敏捷供应链的ERP采购管理系统的研究[J].工业控制计算机 , 2006,(04)  [13] 杨珺,刘志刚.基于B/S模式的新闻发布系统[J].江西农业大学学报 ,2001,(05)[14] John Kauffman,Brain Matasik.张哲峰 黄翔宇译.《asp.net数据库入门经典》.清华大学出版社,2002 [15] 孙卫琴.精通Hibernate.电子工业出版社,2010.[16]夏听,曹晓钢,唐勇.深入浅出HIBERNATE.北京:电子工业出版社,2005.[17] 王珊,萨师煊. 数据库系统概论[M].北京:高等教育出版社,2006.5 [10] Emily J.Marsh, Hongliang Luo and Hua Wang.A three-tiered approach to differentiate Listeria monocytogenes biofilm-forming abilities[J].FEMS Microbiology Letters,Volume 228,Issue 2,21 November 2003,Pages 203-210 .[18] S.Johnson,D.J.Resnick,D.Mancini,K.Nordquist,W.J.Dauksher, K.Gehoski,J.H.Baker,L.Dues,A.Hooper,T.CBailey,S.V.Sreenivasan,J.G.Ekerdt and C.G.Willson.Fabrication of multi-tiered structures on step and flash imprint lithography templates[J].Microelectronic Engineering,Volumes 67-68, June 2003, Pages 221-228.[19] David A.Scott,Leon Lorenc.A Multi-tiered Evaluation of Adolescent Therapeutic Group Homes[J].Child and Youth Care Forum.2007,8(4).39 文献综述基于hiberate的工资管理系统开发一、前言部分:上世纪八、九年代以来十,计算机产业飞速发展,其应用渗透在社会生产的各个领域。计算机在国内的崛起加速了各企事业单位、机关的自动化进程,提高了国民生产的效率,从而为国民经济的飞速发展创造了必要的条件。步入21世纪以来,计算机更是以惊人的普及速度,进入各行各业和大部分家庭。各种应用的需求也不断增加,人们更加追求生活的品质和工作的效率,企业更是视提高生产效率为生存和发展之道,于是通过科技手段提高生产和管理效率自然成为竞争和发展的焦点。这不仅包括如何实现企业生产设备的改进和生产技术的提高还包括如何有效地组织和管理企业各项事务,实现企业的办公自动化。而管理信息系统(ManagementInformationSystem,MIS)在办公自动化的进程中发挥着重要的作用。市场需求也日益增加[1]。大型企业的分工比较严格、细致,组织较为紧密,对软硬件的要求也就比较高,因此试图以一款软件来解决企业的所有问题显然是不可能的,这就需要我们细化事务,有针对性地开发纵向应用广泛的MIS系统。不仅能够解决大型企业和机构的某方面问题,还应该能为更多的中、小型企业利用,提高他们的工作效率,加速企业的发展,从而促进国民经济的建设。财务是每一个单位都会涉及的问题,管理软件雨后春笋般崛起的今天,企业不仅需要通过软件有效地对其实施管理,还想操作能够尽可能简单,软件易于上手。通过查阅相关资料,对市场需求进行分析,对既成工资管理软件的研究和测试,我们认为本课题是一个适应现今工资管理需求的计算机信息管理系统,具有一定的现实意义和开发使用价值。二、主题部分2.1系统开发目的本系统开发的主要目的就是要使企事业单位工资管理实现计算机管理,使管理员能够有序地管理每一位职工的各项工资条款的发放以及员工个人台帐的生成,使企业运用现代化技术创造更多更高的经济效益。39 2.2国内外研究现状管理信息系统是70年代初“后工业经济时代”的产物,在企业管理信息系统在其发展的初期,是单一的人-机系统,系统功能简单,效率低,对管理的作用有限。进入20世纪80年代末,随着计算机网络和通信技术的大力发展,企业管理信息系统进入网络化的发展时期。世界发达国家已建立起了完善的先进的管理信息系统体系。他们在数十年的实践中积累了丰富的管理信息系统开发经验,在企业管理方面也已形成了一套行之有效的理论和规范。由于管理信息系统本身及与其相应的计算机信息应用技术均非常成熟。几乎所有发达国家均建立了自己的人力资源管理信息系统,这个系统是全国性的,覆盖了全国的人力资源管理领域。国外公司的人事部或劳工部一般均建立了计算机信息系统,负责公司内部的人力资源或劳工管理。所以,国外的工资管理信息系统的开发与应用己非常普及。同时,由于发达国家的人力资源管理信息系统已实现全国联网,因此,在社会经济发展领域中发挥着巨大的作用。我国的管理信息系统大发展是在80年代末90年代初,国家相继建立起了“金卡”、“金关”、“金桥”工程,多数企事业单位建立了局域网和广域网管理信息系统。随着世界经济和我国经济逐步向知识经济迈进,无论是基于工业经济的管理信息系统,还是面向少数专家和管理人员的专家系统(ES)或决策支持系统(SS),其处理对象和服务对象,自身的系统结构,处理能力,都有了进一步的发展。进入21世纪,伴随着信息化的普及和互联网的快速发展,IT技术更广泛的应用于企业工资管理,如何提高工资部门的效率,降低人工成本,成为企业管理者重点关心的问题。目前,国内工资管理信息系统的开发技术基本成熟,主要原因在于人事工资管理系统本身具有业务清晰、数据处理规范等许多优点,为其实现计算机信息化提供了必要的优越条件。加上近十年来计算机技术的飞跃发展,以及国内各企业的高度重视,工资管理信息系统在国内基本上已进入了普及应用的阶段。国内近90%以上的应用计算机及开发管理信息系统的公司和单位均开发并运行了工资管理信息系统,其他没有和正准备开发计算机应用或开发管理信息系统的公司和单位,也把工资管理信息系统作为其应用与开发的首要目标。加上国家劳动主管部门及国内计算机应用开发商的共同努力,国内目前己有多种通用的工资管理信息系统软件供企业单位选择使用,而且还有多种工资管理信息系统开发通用工具供企业开发自己的工资管理信息系统择用。应该说,工资管理信息系统的开发与应用在国内已经进入了相对成熟期。39 2.3工资管理系统概述对于小型企业,功能上的实用、够用,是企业选择软件产品的重要条件,这里的实用性主要表现为软件的管理方式要符合企业原用的管理习惯[3]。在我国,大量小型企业管理不够规范,尤其是各个行业间,更是有其鲜明的行业特性,即使是同行业间,其管理方式亦存在一定的差异。所以,对于一个可普遍使用的工资管理系统,一方面应即有通用性,更需要有效高的灵活性。如,允许企业根据实际需求取舍多种计工薪方式;或根据实际制订薪资条目及条目间的逻辑关系等。小型企业信息化人才比较缺乏,对于这些企业,CIO是一个比较遥远的概念。同时,为节省运营成本,小型企业在用人上往往会采取从紧方式。对于进入小型企业的信息化产品,容易使用、高效实用是一个基本的要求。薪资数据是一个企业的重要的基础数据。同时,计件工资数据自然关联到企业的产量、成本以及质量等商业机密。所以,对于实行计件(计时)工资混合制的小型企业,其对工资数据的安全性要求,会较一般的企业为高。小型企业是我国最活跃的经济体,属于成长性群体。其群体中的大量的优秀企业,会迅速成长为中型,甚至大型企业。提供一个高可扩展性的工资管理系统,将有利于保障小型企业的信息化的投入,以及应用上的延续性。当前不乏优秀的企业信息化产品,但其高昂的应用代价,使大量的小型企业望而却步。对于这些企业所需的工资管理系统,一方面要求软件系统本身价廉物美,另一方面也要求其相应的硬件投入要相对较低。同时,在应用过程性,尽量降低维护成本,包括人力成本、技术成本以及资金成本等。通过工资数据的有机管理,可以从中挖掘出产品、产量、产品质量以及员工技能水平等信息。为小型企业建立一套基于Hibernate的工资管理系统,符合广大小型企业(尤其是劳动密集型企业)的现实需求[3]。2.4HIBERNATE研究2.4.1ORM技术简述对象关系映射(ObjectRelationalMapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术[8]。ORM提供了实现持久化层的另一种模式,它采用映射元数据来描述对象关系的映射,使得ORM中间件能在任何一个应用的业务逻辑层和数据库层之间充当桥梁。Java典型的39 ORM中间件有:Hibernate,ibatis,speedframework。在业务逻辑层和用户界面层中,我们是面向对象的。当对象信息发生变化的时候,我们需要把对象的信息保存在关系数据库中。ORM解决的主要问题是对象关系的映射。域模型和关系模型分别是建立在概念模型的基础上的。域模型是面向对象的,而关系模型是面向关系的。一般情况下,一个持久化类和一个表对应,类的每个实例对应表中的一条记录,类的每个属性对应表的每个字段。ORM技术特点:•1.提高了开发效率•2.ORM提供了对数据库的映射,不用sql直接编码,能够像操作对象一样从数据库获取数据。2.4.2HIBERNATE简述Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任[8]。Hibernate使Java程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从Java类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用JDBC和SQL来手工操作数据库,Hibernate可以大大减少操作数据库的工作量。另外Hibernate可以利用代理模式来简化载入类的过程,这将大大减少利用HibernateQL从数据库提取数据的代码的编写量,从而节约开发时间和开发成本Hibernate可以和多种Web服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器[8]。2.4.3数据库技术的现状与发展数据库是60年代末出现的一门计算机软件技术,到现在虽然只有三十多年的历史,但在理论和时间上都得到了和很大的发展。现在,数据库是数据处理的主要工具,是管理信息系统(MIS)的核心部分。数据库系统是当今计算机信息系统的核心,是计算机技术和应用发展的关键。传统的数据库系统旨在处理永久、稳定的数据,强调维护数据的完整性、一致性[9]。39 数据库理论与技术的发展极其迅速,其应用日益广泛,在当今的信息社会中,它几乎无所不在。以关系型为代表的三大经典(层次、网状、关系)型数据库在传统的(商务和管理的事务型)应用领域获得了极大成功[9]。计算机世界报社与IBM公司联合举办了"21世纪数据库技术发展专家研讨会"。IBMDB2的创始人DonaldHaderle先生与国内著名数据库专家,就下世纪数据库发展的趋势、数据库领域革命性的突破、IBMDB2的应用、数据仓库的实施、我国数据库技术和应用的现状及趋势、我国数据库用户的需求等问题,进行了广泛而深入的讨论。一、需求分析:3.1需求陈述本系统拟在完成工资管理的同时,集成其他必要的功能,以保证系统的完整性和安全性。具体包括,员工基本信息管理、部门管理、当前工资及历史工资管理等。现对有关要求描述如下:①整体结构合理,风格一致,模块化结构,界面清晰,接口灵活,操作简便。②开发方法,文档规范化,便于管理,可扩充。③完善的数据输入,维护,输出。④自检性能高,用户误输、错输均有提示。⑤容错性能高,某个用户的操作错误不会引起整个系统的瘫痪,每一功能的操作都有信息提示以免重复操作,错误操作有警告,以便用户及时改正。3.2可行性分析3.2.1时间、设备可行性半年的时间足够开发一个满足中小型企业简单需求的工资管理系统,现有计算机的软硬件配置能够满足系统开发的要求,具备时间和设备的可行性。3.2.2经济可行性基于企业的现有计算机及配套设备,建设MIS系统。不但能大大减少重复性的书面报告,降低办公费用,提高办公室效率,而且能提高检测数据效用,为企业提供很方便。由于企业工资管理系统是一个比较小型的系统,开发工具也均可免费使用,网络资源丰富,只需较少的花费在技术文献上,开发成本较低,因此,开发本系统具有经济上的可行性。二、小结:39 通过以上综述,可以看出设计和实现一个基于Hibernate平台工资管理信息系统可行的。在实用性方面,通过这个系统公司在计算员工工资方面减少了人力的支出,提高了效率和可靠性,同时还为企业的日后查询提供了方便。在技术方面,该系统准备采用Hibernate作为数据库前台开发工具,后台数据库采用的是SQLServer2000。一、参考文献[1] 曹宇. 基于业务流程的生产管理信息系统的研究[J].市场周刊.研究版,2005,(04)[2] 纪兆毅,戴跃洪,罗中先,吴士燕.面向集成化敏捷供应链的ERP采购管理系统的研究[J].工业控制计算机,2006,(04) [3] 吴云峰,汪进前.纺织ERP中生产管理系统的研究[J].浙江理工大学学报 ,2005,(02) [4] 李强.在MIS开发中引入面向对象的设计思想[J].郑州经济管理干部学院学报,2002,(03)[5] 纪兆毅,戴跃洪,罗中先,吴士燕.面向集成化敏捷供应链的ERP采购管理系统的研究[J].工业控制计算机 , 2006,(04) [6] 杨珺,刘志刚.基于B/S模式的新闻发布系统[J].江西农业大学学报 ,2001,(05)[7] John Kauffman,Brain Matasik.张哲峰 黄翔宇译.《asp.net数据库入门经典》.清华大学出版社,2002[8] 孙卫琴.精通Hibernate.电子工业出版社,2010[9]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006.5[10] Emily J.Marsh, Hongliang Luo and Hua Wang.A three-tiered approach to differentiate Listeria monocytogenes biofilm-forming abilities[J].FEMS Microbiology Letters,Volume 228,Issue 2,21 November 2003,Pages 203-210[11] S.Johnson,D.J.Resnick,D.Mancini,K.Nordquist,W.J.Dauksher, K.Gehoski,J.H.Baker,L.Dues,A.Hooper,T.CBailey,S.V.Sreenivasan,J.G.Ekerdt and C.G.Willson.Fabrication of multi-tiered structures on step and flash imprint lithography templates[J].Microelectronic Engineering,Volumes 67-68, June 2003, Pages 221-228[12] David A.Scott,Leon Lorenc.A Multi-tiered Evaluation of Adolescent Therapeutic Group Homes[J].Child and Youth Care Forum.2007,8(4).39 开题报告基于Hibernate的工资管理系统开发  一、选题的背景、意义随着经济的发展,企业正向着大型化、规模化发展,而对于大中型企业、员工、职称等工资管理有关的信息随之急剧增加,在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。对企业而言,人事是企业最宝贵的资源,也是企业的“生命线”。如何做到企业人事与经济效益具有良好匹配?如何做到事得其才,人尽其用?如何在满足企业效益的同时又兼顾企业职工的需求?如何能在瞬息万变的时代使企业与社会环境相适应并且处理好随时变化的人事?这一系列的问题都是需要亟待解决的问题。管理信息系统(MIS)是一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体。1985年,管理信息系统创始人,明尼苏达大学卡尔森管理学院的著名教授戴维斯(Gordon.B.Davis)给出了一个具有代表性的定义:“管理信息系统是一个利用计算机硬件和软件,手工作业、分析、计划、控制和决策模型以及数据库的用户-机器系统。它能提供信息支持企业或组织的运行、管理和决策功能。”企业的工资管理是公司管理的一个重要内容。随着当今企业人员数量增加,企业的工资管理工作也变得越来越复杂。如果能实现工资管理的自动化,无疑将给企业部门带来企业管理部门带来很大的方便该工资管理系统基本能够满足现代企业工资管理的需求。现代化工资管理系统中使用了各种表格,保存相关的工资信息,方便查询、浏览、修改等操作。工资管理系统适用于企业、行政、事业及科研单位等各个行业,它提供了简单的工资核算和发放功能,以及强大的工资分析和管理功能,并提供了同一企业存在多种工资核算类型的解决方案。二、研究的基本内容与拟解决的主要问题系统的目标设计39 通过使用企业工资管理系统,使企业的工资管理工作系统化、规范化、自动化,从而达到提高企业管理效率的目的。系统开发的总体任务是使办公人员可以轻松快捷地完成工资管理任务。系统功能分析系统功能分析是在系统开发的总体任务的基础上完成的。企业工资管理系统需要完成的功能主要有:l系统登陆部分:包括添加用户和修改密码;l员工基本信息数据的添加、修改、删除和查询;l企业工资的基本设定包括基本工资、奖金、补助、缺勤扣款、养老保险、住房公积金、代扣税;l员工个人工资的查询;l部门工资的查询;l工资总表的查询;l工资报表打印。开发设计思想本系统开发设计思想:l尽量利用企业现有软硬件环境,采用先进的管理系统开发方案,从而达到充分利用企业现有资源,提高系统开发水平和应用效果的目的。l系统应符合企业工资管理的规定,满足企业相关人员日常使用的需要,并达到操作过程中的直观、方便、实用、安全等要求。l系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员进行补充、维护。l设计一个企业工资的数据库管理系统,由计算机来代替人工执行一系列诸如增加新员工、删除旧员工、工资的修改、查询、统计和打印等操作。这样就使办公人员可以轻松快捷地完成工资管理的任务。l39 系统应具备数据库维护功能,及时根据用户需要进行数据的添加、删除、修改、备份等操作。数据库设计在数据库应用系统的开打过程中,数据库的结构设计是其中非常重要的一个环节。数据库设计的好坏将直接对应用系统的效率以及实现的效果产生影响。好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度,能简化基于此数据库的应用程序的实现等。在数据库系统开始设计的时候应该尽量考虑全面,尤其应该仔细考虑用户的各种需要,避免浪费人力和物力。数据库需求分析设计是数据库结构设计的第一个阶段,是非常重要的一个阶段。这个阶段主要是确定基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为以后进一步设计打下基础。三、研究的方法与技术路线、研究难点,预期达到的目标研究的方法与技术路线l选用Hibernate作为框架用myeclipse进行开发l选用MYSQL作为后台数据库开发中的难点与解决技巧系统的容错性在数据库系统的设计中有一个需要注意的问题,那就是系统的容错功能。一个好的系统要有准备应付不同的用户,因为用户在使用中是不可能完全按照设计者的思路来进行操作的,刻板地要求用户按照设计者的思路来进行操作是不现实的。设计的系统要考虑适应不同的使用者,能够在用户错误操作时给以提示。在本次设计中容错能力较好的是员工信息模块查询的设计,因为这个表里的数据输入、修改等涉及到了大量的需要容错处理的地方,其他表的容错性相比而言要差一些,因为情况不同不需要进行特殊的容错处理设计。容错处理技术可归纳为两类:在可以预见错误出现的地方编制代码,用语言控制程序流程,当错误出现时,把它引导到处理错误的地方。如在用户输入密码时,很有可能误输入,这时可通过编程提醒用户密码有误,并询问其是否从新输入。39 当错误不可在代码中预见,就将错误放入一个对象的Error事件代码中进行管理。在方法代码中出现一个错误时,系统查找与此对象Error事件关联的错误处理代码,如果没有为此对象的Error事件编写代码,系统就查找一个ONERROR例程,如果在ONERROR例程中也没有找到处理代码,则显示默认的错误信息。四、论文详细工作进度和安排第七学期第10周至第18周(2011年01月06日前):文献检索和资料收集,完成毕业论文(设计)文献综述、开题报告和外文翻译;第八学期 第1周 至第3周(2011年03月11日前):撰写论文提纲,完成毕业论文(设计)初稿、需求分析和概要设计;第八学期 第4周 至第12周(2011年05月13日前):详细设计、系统调试、和毕业论文(设计)完成定稿;第八学期第13周(2011年05月20日前):完成应用软件系统的设计和毕业论文(设计)送指导老师和评阅老师评阅,准备答辩;第八学期第14周:参加毕业论文(设计)答辩。五、主要参考文献:[1] 曹宇. 基于业务流程的生产管理信息系统的研究[J].市场周刊.研究版,2005,(04)[2] 纪兆毅,戴跃洪,罗中先,吴士燕.面向集成化敏捷供应链的ERP采购管理系统的研究[J].工业控制计算机,2006,(04) [3] 吴云峰,汪进前.纺织ERP中生产管理系统的研究[J].浙江理工大学学报 ,2005,(02) [4] 李强.在MIS开发中引入面向对象的设计思想[J].郑州经济管理干部学院学报,2002,(03)[5] 纪兆毅,戴跃洪,罗中先,吴士燕.面向集成化敏捷供应链的ERP采购管理系统的研究[J].工业控制计算机 , 2006,(04) [6] 杨珺,刘志刚.基于B/S模式的新闻发布系统[J].江西农业大学学报 ,2001,(05)[7] John Kauffman,Brain Matasik.张哲峰 黄翔宇译.《asp.net数据库入门经典》.清华大学出版社,2002[8] 孙卫琴.精通Hibernate.电子工业出版社,2010[9]王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006.5[10] Emily J.Marsh, Hongliang Luo and Hua Wang.A three-tiered approach to differentiate 39 Listeria monocytogenes biofilm-forming abilities[J].FEMS Microbiology Letters,Volume 228,Issue 2,21 November 2003,Pages 203-210[11] S.Johnson,D.J.Resnick,D.Mancini,K.Nordquist,W.J.Dauksher, K.Gehoski,J.H.Baker,L.Dues,A.Hooper,T.CBailey,S.V.Sreenivasan,J.G.Ekerdt and C.G.Willson.Fabrication of multi-tiered structures on step and flash imprint lithography templates[J].Microelectronic Engineering,Volumes 67-68, June 2003, Pages 221-228[12] David A.Scott,Leon Lorenc.A Multi-tiered Evaluation of Adolescent Therapeutic Group Homes[J].Child and Youth Care Forum.2007,8(4).39

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭