首页 创业指南 致富视频 网上开店 养殖视频 范文大全 创业项目开店经验创业杂谈如何创业技术资料创业防骗项目分析微信营销农村创业投资理财
  • 工作总结
  • 工作计划
  • 心得体会
  • 发言稿
  • 演讲稿
  • 读后感
  • 脱贫攻坚
  • 扫黑除恶
  • 民主生活会
  • 对照材料
  • 述职报告
  • 主题教育
  • 讲话稿
  • 素材金句
  • 党团建设
  • 图表展板
  • 公文技巧
  • 不忘初心
  • 四中全会
  • 党课下载
  • 整改报告
  • 公文范文
  • 人力资源管理系统数据库课程设计

    时间:2020-08-06 13:14:35 来源:东东创业网 本文已影响 东东创业网手机站

    相关热词搜索:

    第一章 绪论 1.1 开发背景 随着企业的信息化和体制改革的步伐,人才竞争使企业的人力资源面临前所未有的挑战。越来越多的企业不断地加大对员工的投资,从而更好地吸引、保留和发展所需要人才,是企业拥有持久的、强大的竞争优势。

    在过去很长一个传统的计划经济管理体制的时期中,国有企事业和公共事业单位中的人员管理一直实行着集中统一的计划管理模式,企业中人员的差异并没有构成主要的决定因素,随着市场经济的发展,市场竞争的加剧,企业的成功与其员工队伍之间的关注。而传统的手工纪录管理的模式越来越不能满足企业人力资源管理的要求,随着计算机应用的普及,采用计算机进行人力资源管理的快捷、方便、高效的优越性时企业管理人员的共识。

    因此我们选用《人力资源管理系统数据库设计》作为我们的数据库课程设计的设计题目,通过人力资源会计理论为指导,将人力资源需求、人力资源招聘、人力资源审计、人力资源使用、人力资源培训、人力资源评估、人力资源二次调配等每一个动态环节编制成类似于财务报表的记录,从而完成人力资源的货币形式的衡定。以工资核算为核心、以员工的绩效考核为依据,通过建立多种数据模型辅助完成人力资源管理对企业经营决策的支持作用。

    本说明书目的在于明确说明系统需求,界定系统实现功能的范围,指导系统设计以及编码。本说明书的编写为下阶段的设计、开发提供依据,为项目组成员对需求的详尽理解,以及在开发开发过程中的协同工作提供强有力的保证。同时本文档也作为项目评审验收的依据之一。

    1.2项目背景 人力资源管理模块以经营管理为基础,采用成熟、先进的计算机软、硬件集成技术,融入科学的人事管理思想和模式,对企业及其下属公司的人事信息进行采集、储存、加工、处理和分析,使其及时准确地反映企业的人事聘用状况、人员流动情况、薪资情况等人事信息,为各层管理者提供快速准确的人事管理依据与辅助决策数据。

    企业公司发展现状几十年来,企业经营单位和从业人员急速发展,人员良莠不齐,懂专业知识的少,小本经营多。面对危机与机遇,出路只有一条:通过改革和创新,提高管理能力,提高核心竞争力。通过导入规范化信息管理系统,尤其是人力资源管理系统,建立信息化平台。只有在人力资源得到合理的分配,才能发挥出企业的整体实力,站稳脚跟。建立一个完善的人力资源管理系统,对一个企业的领导者在人力管理方面有着非常重要的作用。

    我们的项目就是基于人力资源管理在企业发展中的重要作用而开发的,使公司能更好的管理人力资源,提高企业的整体竞争力。通过实施人力资源管理系统,提高人力资源部在日常人力资源操作性等事物的工作效率,为高层提供即时的搞笑的人力资源数据查询、分析,为高层提供决策支持。同时有利于人力资源内部流程的规范与再造优化。

    1.3定义 1.3.1专业术语 数据流图:数据流图是结构化方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。

    1.3.2主页术语定义 Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

    SQL:是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

    甘特图:它是以图式的方式通过活动列表和时间刻度形象地表示出任何特定的活动顺序与持续时间。

    第二章 任务概述 2.1目标 传统的企业人力资源管理已不能满足现代化管理的需要。因此,对企业人力资源的信息处理实行计算机化这一需要就显得越来越重要。要对人力资源中人员甑选、人员录用、员工培训、人员调整、考勤管理、人事评议、人事档案管理,实现全面、科学、系统的管理;

    提高工作效率、增强交流与协作、提高辅助决策、有效地提高管理水平、完善人力资源管理活动中诸多不足之处就成为SYSWAYHR的设计目标。

    充分利用网络资源,根据企业实际需求,进一步优化和再造管理流程:使人力资源的管理更为高效和科学,数据更为准确。

    完善人力资源决策支持系统,及时提供相关数据和报表:使基于人力资源系统数据的决策更为直观和精确。

    增强员工自助服务的功能,简化人力资源事务性的管理流程:使人力资源部门的人员有更多的时间和精力用于人力资源的战略规划。

    完善人力资源系统的业务管理功能,建立流程引擎和角色管理机制:使得达到降低成本,提高效率,合理利用人才,改进员工服务模式的目的。

    2.2 运行环境 开发环境:Microsoft Visual Studio 2008 Microsoft SQL Server2005 运行平台:Windows XP 操作系统附加功能:IIS 6.0 应用平台:Bea Weblogic 8.1 客户端软件:MS IE 6.0 语种:简体中文或英文 硬件环境:
    列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:
    1处理器型号及内存容量;

    2外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;

    3输入及输出设备的型号和数量,联机或脱机;

    4数据通信设备的型号和数量;

    5功能键及其他专用硬件 例如:
    设备名称 用途 配置信息 备注 应用和数据库服务器 数据存储和处理 1CPU:P4 2.20G 无 整个系统相关人员有:系统管理人员,人力资源管理员,普通员工,应聘人员以及财务的后勤人员。

    人力资源管理员可以利用该系统好好利用公司人力资源,普通员工可以及时查询相关信息并更新自己的信息…… 2.3 条件限制 由于系统用户层次广,用户面宽,所以用户对于电脑,网络知识的掌握不一,可能有尚未接触过电脑的,可能有软件使用高手……故应该考虑根据调查用户实际设计出使用方便,统一,简易尽量多可视化的系统,提高用户的可操作性,减少用户培训。

    同时由于不同层次的用户有不同的系统使用管理权限,健全安全机制,完善系统安全监控审计功能也是很重要的。

    第三章 需求分析 3.1 功能划分 我们的人力资源管理将要完成招聘入职管理管理,薪资管理,出勤统计,员工奖惩管理,保险管理,合同管理,培训管理等功能,经过划分为以下五个子系统。如下图是我们的功能结构图。

    在后续设计中,我主要负责人事关系管理子系统,因此,在此只反映人事管理的二级结构分类。

    人力资源管理系统 人事管理 招聘管理 培训管理 社会关系管理 薪资管理 离职管理 升降管理 员工基本信息维护 转正处理 凭调处理 图3.1 功能结构图 3.1.1 招聘入职子系统 由人事主管部门制定招聘计划,并且负责人员的面试工作,并且对面试及招聘过程中员工的信息加以记录,流程从员工登记开始一直到面试通过进入实习期为止。

    3.1.2 培训管理子系统 在该子系统中,集中管理通过面试进入培训阶段的员工信息,记录员工在培训期间的业绩表现,平时考核以及结课考试成绩,作为入职转正的标准。

    3.1.3 人事管理子系统 在该子系统中,负责员工的日常关系管理,包括人员凭调,升降变动,转正审批,离职等级等人事业务 3.1.4 社会关系子系统 在该子系统中,主要管理员工的个人合同,保险,以及公积金,业务包括合同续签及审核,保险关系转入转出缴纳,公积金转入转出缴纳 3.1.5 薪资管理子系统 在该子系统中,主要包括员工考勤,奖惩统计,员工工资统计,系统将根据该月员工出勤及加班违纪情况自动统计员工薪资 3.2 个人模块 在该项目中,我负责的是人事管理模块,按照要求,在下面的数据库设计中,我将按照概念设计——逻辑设计——物理设计的步骤来进行阐述。

    在我的人事管理模块中,人事专员负责员工的各项人事业务管理,可以发起对一个员工的调动申请,并且指定审批的上级领导,上级领导审批后,人事管理员根据审批结论修改员工信息。当员工试用期满后,由员工个人发起转正申请,人事专员受理后指定审批领导。审批后根据审批结论修改员工状态。员工离职后,人事专员记录该员工离职信息及其原来所在部门。

    因此,在我的模块中,我主要分以下几个功能进行设计:
    1. 人员基本信息管理 2. 人员凭调处理 3. 人员转正处理 4. 人员升迁降职处理 5. 离职记录登记 我们的人力资源管理系统的全局数据流图如图4.1所示:
    图3-1 全局数据流图 由上图进行进行分析,与我的人事管理产生交集的模块是培训模块,在一个员工通过面试后,进入实习状态,而要转正的话,是由人事部门根据该员工在实习期的业绩进行评估,达到转正标准的,将由人事专员发起转正申请。也就是说,可以发起转正申请的人员信息来自于培训模块。

    同时,在员工的升迁降职中,人事部门要统计员工的业绩,根据业绩判断该员工是否到达升迁降职的标准,并且发起调动,由上级批准,即就是,升迁降职将参考效绩模块的数据。

    在下描述的过程中,如有用到其他模块的数据的功能,将有所提及,但不做深入讲解,如有疑问,可以参考其他模块的具体设计。

    3.3 数据流图 1.内部调动 图3-2 内部调动E-R图 人事专员可以发起对一名员工的调动申请,申请包括该员工现在部门职位和将要调往的部门职位,发起的申请存入系统,然后交由上级领导审批,上级审批后,产生的审批记录存入系统。

    2.升迁降职处理 图3-3 升迁降职E-R图 人事专员可以根据员工入职以后的个人业绩针对员工发起升迁降职申请,由上级批准后,升迁降职信息存入系统 3.离职登记 图3-4 离职登记数据流图 4. 员工转正 图3-5 员工转正E-R图 人事专员根据员工在实习期间的表现决定是否可以对该员工发起转正,如果调价达到,则该员工发起转正,并且对该员工产生转正记录,记录的转正时间,从次月起对员工缴纳保险和公积金。与社会关系管理模块契合。

    第四章 概念结构设计 4.1 数据字典 数据文件:调动申请表 文件组成:调动编号,员工编号,现在部门,现在岗位,调动部门,调动岗位,申请日期,上级编号 序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 调动编号 int 4 0 是 是 否 2 员工编号 varchar 50 0 否 3 现在部门 varchar 50 0 否 4 现在岗位 varchar 50 0 否 5 调动部门 int 4 0 否 6 调动岗位 int 4 0 否 7 申请日期 int 4 0 否 数据文件:调动审批表 文件组成:审批编号,调动编号,审批日期,审批评语,审批结论,上级编号 序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 审批编号 int 4 0 是 是 否 2 调动编号 varchar 50 0 否 3 审批日期 date 50 0 否 4 审批评语 varchar 4 0 否 5 审批结论 varchar 4 0 否 6 审批人 varchar 4 0 否 数据文件:升迁降职表 文件组成:编号,员工编号,现在部门,现在岗位,变动部门,变动岗位,变动日期,上级编号 序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 编号 int 4 0 是 是 否 2 员工编号 varchar 50 0 否 3 现在部门 varchar 50 0 否 4 现在岗位 varchar 50 0 否 5 变动部门 int 4 0 否 6 变动岗位 int 4 0 否 7 变动日期 int 4 0 否 8 审批人 Int 4 0 否 数据文件:离职登记表 文件组成:离职编号,员工编号,离职原因,离职时间 序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 离职编号 int 4 0 是 是 否 2 员工编号 varchar 50 0 否 3 离职原因 varchar 4 0 否 4 离职时间 int 4 0 否 数据文件:转正申请表 文件组成:申请编号,员工编号,培训编号,部门编号,岗位编号,申请时间,审批人编号 序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 转申编号 int 4 0 是 是 否 2 员工编号 varchar 50 0 否 3 申请内容 varchar 50 0 否 6 申请时间 int 4 0 否 7 审批人编号 Int 4 0 否 数据文件:转正审批表 文件组成:申请编号,员工编号,转申编号,审批日期,审批评语,审批结论,审批人 序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 审批编号 int 4 0 是 是 否 2 员工编号 varchar 50 0 否 3 转申编号 varchar 50 0 否 4 审批日期 varchar 50 0 否 5 审批评语 int 4 0 否 6 审批结论 int 4 0 否 7 审批人 varchar 4 0 否 4.2 E-R图 1. 员工调动申请ER图 一个员工可以有多个调动申请,一个人事专员可以发起多个凭调申请 4-1 员工调动申请ER图 2. 员工调动申请审批ER图 调动审批是对凭调申请的回复,一条凭调申请可以有一个或零个调动审批 4-2 员工调动审批ER图 3. 转正申请ER图 4-3 员工转正申请ER图 4. 转正审批ER图 4-4 员工转正审批ER图 5.员工离职 5-5 员工离职ER图 6.人员升降 4-6 员工升迁降职ER图 第五章 逻辑设计 5.1 关系模式 从上面的概念设计中,可以得出以下的关系模式:
    1. 凭调申请(申请编号,员工编号,原来部门,调动部门,原来岗位,调动岗位,申请时间) 2. 调动审批(审批编号,申请编号,审批评语,审批结论,审批时间,审批人) 3. 转正申请(申请编号,员工编号,申请内容,申请时间,人事专员编号,审批人) 4. 转正审批(审批编号,审批评语,审批结论,审批时间,申请编号) 5. 离职信息(离职编号,员工编号,离职时间,离职原因,原来部门) 6. 升降记录(变动编号,变动时间,调动部门,调动岗位,上级编号) 5.2 关系模式分析 1.凭调申请关系模式 凭调申请(申请编号,员工编号,原来部门,调动部门,原来岗位,调动岗位,申请时间) 在关系模式中,审请编号是主属性。

    申请编号-->(员工编号,原来部门,调动部门,原来岗位,调动岗位,申请时间) 其中,每一个数据项都单一,满足1NF, 并且,主属性是申请编号,不存在非主属性对主属性的部分依赖。满足第二范式。

    同时,主属性是申请编号,不存在非主属性对主属性的传递依赖。满足第三范式。

    因此:凭调申请∈3NF 2.调动审批关系模式 调动审批(审批编号,申请编号,审批评语,审批结论,审批时间,审批人) 在关系模式中,审批编号是主属性。

    审批编号-->(申请编号,审批评语,审批结论,审批时间,审批人) 其中,每一个数据项都单一,满足1NF, 并且,主属性是审批编号,不存在非主属性对主属性的部分依赖。满足第二范式。

    同时,主属性是审批编号,不存在非主属性对主属性的传递依赖。满足第三范式。

    因此:凭调申请∈3NF 3.转正申请关系模式 转正申请(申请编号,员工编号,申请内容,申请时间,人事专员编号,审批人) 在关系模式中,申请编号是主属性。

    申请编号-->(申请编号,员工编号,申请内容,申请时间,人事专员编号,审批人) 其中,每一个数据项都单一,满足1NF, 并且,主属性是申请编号,不存在非主属性对主属性的部分依赖。满足第二范式。

    同时,主属性是申请编号,不存在非主属性对主属性的传递依赖。满足第三范式。

    因此:凭调申请∈3NF 4.转正审批关系模式 转正审批(审批编号,审批评语,审批结论,审批时间,申请编号) 在关系模式中,审批编号是主属性。

    审批编号-->(审批评语,审批结论,审批时间,申请编号) 其中,每一个数据项都单一,满足1NF, 并且,主属性是审批编号,不存在非主属性对主属性的部分依赖。满足第二范式。

    同时,主属性是审批编号,不存在非主属性对主属性的传递依赖。满足第三范式。

    因此:凭调申请∈3NF 5.离职信息关系模式 离职信息(离职编号,员工编号,离职时间,离职原因,原来部门) 在关系模式中,离职编号是主属性。

    离职编号-->(员工编号,离职时间,离职原因,原来部门) 其中,每一个数据项都单一,满足1NF, 并且,主属性是离职编号,不存在非主属性对主属性的部分依赖。满足第二范式。

    同时,主属性是离职编号,不存在非主属性对主属性的传递依赖。满足第三范式。

    因此:凭调申请∈3NF 6.升降记录关系模式 升降记录(变动编号,变动时间,调动部门,调动岗位,上级编号) 在关系模式中,变动编号是主属性。

    变动编号-->(变动时间,调动部门,调动岗位,上级编号) 其中,每一个数据项都单一,满足1NF, 并且,主属性是变动编号,不存在非主属性对主属性的部分依赖。满足第二范式。

    同时,主属性是变动编号,不存在非主属性对主属性的传递依赖。满足第三范式。

    因此:凭调申请∈3NF 第六章 物理设计 6.1 类图 在我负责的业务模块中,有人事专员,调动申请,申请审批,升迁降职,离职记录,转正申请,和转正审批,他们之间的关系如下 图6-1 类图 6.2 功能设计 6.2.1 员工凭调 人事专员发起对一个员工的调动申请,由上级领导审批后,人事专员根据审批结果修改员工状态,如果审批结果未通过,则不变化,只产生申请审批记录,如果通过,则修改员工信息即新的岗位好和部门号。

    如下图的活动图:
    图6-2 员工凭调活动图 图6-3 员工凭调时序图 6.2.2 员工转正 在培训阶段的培训成绩合格后,员工可以自己发起自己的转正申请,人事专员受理后,指定审批领导,由上级领导审批后,人事专员根据审批结果修改员工状态,如果审批结果未通过,则不变化,只产生申请审批记录,如果通过,则修改员工信息即状态为正式员工。

    如下图的活动图:
    图6-4 转正活动图 图7-5 转正用例图 图6-5 转正时序图 6.2.3 员工升迁降职 人事专员可以发起一条员工的升迁降职记录申请,由上级领导审批后,人事专员根据审批结果确定该员工是否可以升迁或降职,然后修改修改员工状态。然后新增一条升迁降职记录,记录该员工何时由谁审批从何位置调往何职位。

    图6-6 升迁降职活动图 图6-7 转正用例图 6.2.4 员工离职 当一个员工离职后,人事专员负责记录该员工的离职信息,包括离职时间和离职原因,而员工离职后,并不将该员工从员工综合记录中删除,而是将其状态置为离职,即就是执行逻辑删除,然后在以后的在职员工操作过程中,该员工将不再查询范围之内。

    图6-8 员工离职活动图 图6-9 员工离职时序图 6.2.5员工信息维护 1,员工信息查询 员工成功登录人力资源管理系统,输入相关信息条件,进行员工信息查询。其流程如图所示:
    图6-10 员工信息查询时序图 员工对于自己的相关基本信息进行查看,以及相关人员查看员工的信息。流程中主要涉及的业务实体以及它们之间的关系如图所示:
    图6-11 员工信息查询类图 在这个业务流程中,有两个直接与系统交互的用户:系统管理员,员工,涉及的业务活动如图所示:
    图6-12 员工信息查用例图 2. 员工信息修改 人力资源管理部门等相关人员根据情况对员工信息进行修改更新与维护,员工自身对于自己的信息的更正等。整个流程如图所示:
    图6-13 员工信息修改活动图 流程中涉及的的业务实体在上图的基础上增加了人力资源部门的员工,它们之间的关系如图所示:
    图6-14 员工信息修改类图 这个业务流程中有三个直接与系统交互的用户:系统管理员,员工,人力资源部门人员,他们涉及的业务活动如图所示:
    图6-15 员工信息修改用例图 3.新员工信息添加 当公司招聘进新的员工时,需要将新员工的信息存进系统中。其流程如图所示:
    图6-16 员工信息添加活动图 这个业务流程中涉及的业务实体同上面信息修改。其系统直接交互用户也包括系统管理员,员工,人力资源部门人员,在上面的业务活动的基础上,人力资源部门人员涉及的业务活动添加了添加员工信息 第七章 测试实现 7.1用户界面 在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对WINDOW 风格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用 Delphi 进行编程,在界面上可使用Delphi 所提供的可视化组件,向WINDOWS 风格靠近。其中服务器程序界面要做到操作简单,易于管理。在设计上采用下拉式菜单方式,在出错显示上可调用Delphi 库中的错误提示函数。

    总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用。

    图7-1 系统运行主界面 进入员工信息管理后,可以对员工信息进行维护,并且发起对员工的各项人事业务 进入员工信息的管理界面,可以浏览全部员工的基本信息,如图8-2所示 图7-2 系统运行主界面 在该页面,可以对员工进行基本的操作,如下图所示,就是删除员工记录的操作过程。

    图7-3 员工操作界面 点击添加员工按钮,进入添加员工页面,输入员工信息,就能将员工信息录入系统。

    图7-4 添加员工界面 点击添加修改信息按钮,进入修改员工页面,重新输入员工信息,就能将员工信息录入系统。

    图7-5 添加员工界面 7.2 代码展示 -------------------------------------------------员工基本类------------------------------------------- public class Employee implements java.io.Serializable { // Constructors /** default constructor */ public Employee() { } /** minimal constructor */ public Employee(Integer id, String name, String password) { this.id = id; this.name = name; this.password = password; } /** full constructor */ public Employee(Integer id, String name, String password, String sex, String tel, String address, String birthday, String content) { this.id = id; this.name = name; this.password = password; this.sex = sex; this.tel = tel; this.address = address; this.birthday = birthday; this.content = content; } } -------------------------------------------------员工控制类------------------------------------------- @SuppressWarnings(“serial“) public class EmpManager extends ActionSupport { private EmpService empService = null; private Employee employee = null; private String birthday; public Employee getEmployee() { return employee; } public void setEmployee(Employee employee) { this.employee = employee; } public void setEmpService(EmpService empService) { this.empService = empService; } public void setBirthday(String birthday) { this.birthday = birthday; } /** * 显示员工主界面 * @return success */ public String main(){ return “success“; } //过滤查询功能 public void list() { try { JSONObject root = new JSONObject(); PageList<Employee> list = empService.list(like, (page - 1) * rows, rows); int count = list.getRows(); root.put(“page“, page); root.put(“total“, count / rows + ((count % rows) > 0 ? 1 : 0)); root.put(“records“, count); JSONArray rows = new JSONArray(); for (Employee s : list) { rows.add(s, JsonUtil.config()); } root.put(“rows“, rows); ServletActionContext.getResponse().setCharacterEncoding(“utf-8“); root.write(ServletActionContext.getResponse().getWriter()); } catch (Throwable e) { e.printStackTrace(); } } public String add() throws ModelException { empService.add(employee); return “success“; } public String modify() { try { empService.modify(employee); return “success“; } catch (ModelException e) { // TODO Auto-generated catch block e.printStackTrace(); } return “error“; } public void load() { try { JSONObject root = new JSONObject(); Employee emp = empService.load(id); root.element(“employee“, emp, JsonUtil.config()); ServletActionContext.getResponse().setCharacterEncoding(“utf-8“); root.write(ServletActionContext.getResponse().getWriter()); } catch (Throwable e) { // TODO Auto-generated catch block e.printStackTrace(); } } } -------------------------------------------------员工服务类------------------------------------------- public class EmpServiceImpl implements EmpService { private EmpDao empDao = null;//该模块对应的DAO public void setEmpDao(EmpDao empDao) { this.empDao = empDao; } public Employee add(Employee employee) throws ModelException { int a = 10000000; int aid = (int) (System.currentTimeMillis()%1000000); employee.setId(new Integer(a+aid)); empDao.add(employee); return null; } public PageList<Employee> list(Employee employee, int skip, int size) throws ModelException { return empDao.list(employee, skip, size); } public Employee load(int id) throws ModelException { return empDao.load(id); } public void modify(Employee employee) throws ModelException { empDao.modify(employee); } } ----------------------------------------------员工数据访问类------------------------------------------- public class EmpDaoImpl extends HibernateDaoSupport implements EmpDao { @SuppressWarnings(“unchecked“) public PageList<Employee> list(final Employee employee, final int skip,final int size) throws ModelException { try{ PageList<Employee> list = (PageList<Employee>) this.getHibernateTemplate().execute(new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException { Criteria query = session.createCriteria(Employee.class); //组合条件 if(employee.getName()!=null){ query.add(Restrictions.like(“name“, employee.getName(),MatchMode.ANYWHERE)); } //统计行数 query.setProjection(Projections.rowCount()); Long count = (Long) query.uniqueResult(); //查询结果 query.setProjection(null); query.addOrder(Order.asc(“id“)); query.setFirstResult(skip); query.setMaxResults(size); PageList<Employee> list = new PageList(count.intValue()); list.addAll(query.list()); return list; }}); return list; }catch(Exception e){ e.printStackTrace(); throw new ModelException(1,e.getMessage()); } } public Employee add(Employee employee) throws ModelException { try{ this.getHibernateTemplate().save(employee); this.getHibernateTemplate().flush(); return employee; }catch(Exception e){ e.printStackTrace(); throw new ModelException(1,e.getMessage()); } } public Employee load(int id) throws ModelException { try{ return (Employee) this.getHibernateTemplate().get(Employee.class, id); }catch(Exception e){ e.printStackTrace(); throw new ModelException(1,e.getMessage()); } } public void modify(Employee employee) throws ModelException { Employee emp = (Employee) this.getHibernateTemplate().get(Employee.class, employee.getId()); try{ emp.setName(employee.getName()); emp.setPassword(employee.getPassword()); emp.setSex(employee.getSex()); emp.setTel(employee.getTel()); emp.setAddress(employee.getAddress()); emp.setBirthday(employee.getBirthday()); emp.setContent(employee.getContent()); this.getHibernateTemplate().saveOrUpdate(emp); }catch(Exception e){ e.printStackTrace(); throw new ModelException(1,e.getMessage()); } } } 7.3 运行需求 7.3.1 运行环境 服务器程序可使用Delphi 提供的对 SQL SERVER 的接口,进行对数据库的所有访问。

    服务器程序上可使用SQL SERVER 的对数据库的备分命令,以做到对数据的保存。

    网络软件接口方面,使用一种无差错的传输协议,采用滑动窗口方式对数据进行网络传输及接收。

    7.3.2 硬件接口 在输入方面,对于键盘、鼠标的输入,可用Delphi的标准输入/输出,对输入进行处理。

    在输出方面,打印机的连接及使用,也可用Delphi的标准输入/输出对其进行处理。

    7.3.4 内部接口 内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。

    • 创业指南
    • 网上开店
    • 养殖视频
    • 理财
    • 政策
    • 技术
    • 致富视频

    推荐访问