第一章 绪论
开发背景
随着企业的信息化和体制改革的步伐,人才竞争使企业的人力资源面临前所
未有的挑战。越来越多的企业不断地加大对员工的投资,从而更好地吸引、保留
和发展所需要人才,是企业拥有持久的、强大的竞争优势。
在过去很长一个传统的计划经济管理体制的时期中,国有企事业和公共事业
单位中的人员管理一直实行着集中统一的计划管理模式,企业中人员的差异并没
有构成主要的决定因素,随着市场经济的发展,市场竞争的加剧,企业的成功与其
员工队伍之间的关注。而传统的手工纪录管理的模式越来越不能满足企业人力资
源管理的要求,随着计算机应用的普及,采用计算机进行人力资源管理的快捷、
方便、高效的优越性时企业管理人员的共识。
因此我们选用《人力资源管理系统数据库设计》作为我们的数据库课程设计
的设计题目,通过人力资源会计理论为指导,将人力资源需求、人力资源招聘、
人力资源审计、人力资源使用、人力资源培训、人力资源评估、人力资源二次调
配等每一个动态环节编制成类似于财务报表的记录,从而完成人力资源的货币形
式的衡定。以工资核算为核心、以员工的绩效考核为依据,通过建立多种数据模
型辅助完成人力资源管理对企业经营决策的支持作用。
本说明书目的在于明确说明系统需求,界定系统实现功能的范围,指导系统
设计以及编码。本说明书的编写为下阶段的设计、开发提供依据,为项目组成员
对需求的详尽理解,以及在开发开发过程中的协同工作提供强有力的保证。同时
本文档也作为项目评审验收的依据之一。
项目背景
人力资源管理模块以经营管理为基础,采用成熟、先进的计算机软、硬件集
成技术,融入科学的人事管理思想和模式,对企业及其下属公司的人事信息进行
采集、储存、加工、处理和分析,使其及时准确地反映企业的人事聘用状况、人
员流动情况、薪资情况等人事信息,为各层管理者提供快速准确的人事管理依据
与辅助决策数据。
企业公司发展现状几十年来,企业经营单位和从业人员急速发展,人员良莠
不齐,懂专业知识的少,小本经营多。面对危机与机遇,出路只有一条:通过改
革和创新,提高管理能力,提高核心竞争力。通过导入规范化信息管理系统,尤
其是人力资源管理系统,建立信息化平台。只有在人力资源得到合理的分配,才
能发挥出企业的整体实力,站稳脚跟。建立一个完善的人力资源管理系统,对一
个企业的领导者在人力管理方面有着非常重要的作用。
我们的项目就是基于人力资源管理在企业发展中的重要作用而开发的,使公
司能更好的管理人力资源,提高企业的整体竞争力。通过实施人力资源管理系统,
提高人力资源部在日常人力资源操作性等事物的工作效率,为高层提供即时的搞
笑的人力资源数据查询、分析,为高层提供决策支持。同时有利于人力资源内部
流程的规范与再造优化。
定义
专业术语
数据流图:数据流图是结构化方法中使用的工具,它以图形的方式描绘数据
在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是
一种功能模型。
主页术语定义
Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun
Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即
JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台
移植性和安全性,广泛应用于个人 PC、数据中心、游戏控制台、科学超级计算
机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和
移动互联网的产业环境下,Java 更具备了显著优势和广阔前景。 SQL:是一
种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库
系统。
甘特图:它是以图式的方式通过活动列表和时间刻度形象地表示出任何特定
的活动顺序与持续时间。
第二章 任务概述
目标
传统的企业人力资源管理已不能满足现代化管理的需要。因此,对企业人力
资源的信息处理实行计算机化这一需要就显得越来越重要。要对人力资源中人员
甑选、人员录用、员工培训、人员调整、考勤管理、人事评议、人事档案管理,
实现全面、科学、系统的管理; 提高工作效率、增强交流与协作、提高辅助决
策、有效地提高管理水平、完善人力资源管理活动中诸多不足之处就成为
SYSWAYHR 的设计目标。
充分利用网络资源,根据企业实际需求,进一步优化和再造管理流程:使人
力资源的管理更为高效和科学,数据更为准确。
完善人力资源决策支持系统,及时提供相关数据和报表:使基于人力资源系
统数据的决策更为直观和精确。
增强员工自助服务的功能,简化人力资源事务性的管理流程:使人力资源部
门的人员有更多的时间和精力用于人力资源的战略规划。
完善人力资源系统的业务管理功能,建立流程引擎和角色管理机制:使得达
到降低成本,提高效率,合理利用人才,改进员工服务模式的目的。
运行环境
开发环境:Microsoft Visual Studio 2008
Microsoft SQL Server2005
运行平台:Windows XP
操作系统附加功能:IIS
应用平台:Bea Weblogic
客户端软件:MS IE
语种:简体中文或英文
硬件环境:
列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:
1 处理器型号及内存容量;
2 外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;
3 输入及输出设备的型号和数量,联机或脱机;
4 数据通信设备的型号和数量;
5 功能键及其他专用硬件
例如:
设备名称 用途 配置信息 备注
应用和数据库服务
器
数据存储和处
理
1CPU : P4
无
整个系统相关人员有:系统管理人员,人力资源管理员,普通员工,应聘人
员以及财务的后勤人员。
人力资源管理员可以利用该系统好好利用公司人力资源,普通员工可以及时
查询相关信息并更新自己的信息……
条件限制
由于系统用户层次广,用户面宽,所以用户对于电脑,网络知识的掌握不一,
可能有尚未接触过电脑的,可能有软件使用高手……故应该考虑根据调查用户实
际设计出使用方便,统一,简易尽量多可视化的系统,提高用户的可操作性,减
少用户培训。
同时由于不同层次的用户有不同的系统使用管理权限,健全安全机制,完善
系统安全监控审计功能也是很重要的。
第三章 需求分析
功能划分
我们的人力资源管理将要完成招聘入职管理管理,薪资管理,出勤统计,员
工奖惩管理,保险管理,合同管理,培训管理等功能,经过划分为以下五个子系
统。如下图是我们的功能结构图。
在后续设计中,我主要负责人事关系管理子系统,因此,在此只反映人事管
理的二级结构分类。
人力资源管理系统
薪
资
管
理
招
聘
管
理
社
会
关
系
管
理
培
训
管
理
人
事
管
理
图 功能结构图
招聘入职子系统
由人事主管部门制定招聘计划,并且负责人员的面试工作,并且对面试及招
聘过程中员工的信息加以记录,流程从员工登记开始一直到面试通过进入实习期
为止。
培训管理子系统
在该子系统中,集中管理通过面试进入培训阶段的员工信息,记录员工在培
训期间的业绩表现,平时考核以及结课考试成绩,作为入职转正的标准。
人事管理子系统
在该子系统中,负责员工的日常关系管理,包括人员凭调,升降变动,转正
审批,离职等级等人事业务
社会关系子系统
在该子系统中,主要管理员工的个人合同,保险,以及公积金,业务包括合
同续签及审核,保险关系转入转出缴纳,公积金转入转出缴纳
薪资管理子系统
在该子系统中,主要包括员工考勤,奖惩统计,员工工资统计,系统将根据
凭
调
处
理
转
正
处
理
员 工
基 本
信 息
维护
升
降
管
理
离
职
管
理
该月员工出勤及加班违纪情况自动统计员工薪资
个人模块
在该项目中,我负责的是人事管理模块,按照要求,在下面的数据库设计
中,我将按照概念设计——逻辑设计——物理设计的步骤来进行阐述。
在我的人事管理模块中,人事专员负责员工的各项人事业务管理,可以发
起对一个员工的调动申请,并且指定审批的上级领导,上级领导审批后,人事管
理员根据审批结论修改员工信息。当员工试用期满后,由员工个人发起转正申请,
人事专员受理后指定审批领导。审批后根据审批结论修改员工状态。员工离职后,
人事专员记录该员工离职信息及其原来所在部门。
因此,在我的模块中,我主要分以下几个功能进行设计:
1.人员基本信息管理
2.人员凭调处理
3.人员转正处理
4.人员升迁降职处理
5.离职记录登记
我们的人力资源管理系统的全局数据流图如图 所示:
图 3-1 全局数据流图
由上图进行进行分析,与我的人事管理产生交集的模块是培训模块,在一个
员工通过面试后,进入实习状态,而要转正的话,是由人事部门根据该员工在实
习期的业绩进行评估,达到转正标准的,将由人事专员发起转正申请。也就是说,
可以发起转正申请的人员信息来自于培训模块。
同时,在员工的升迁降职中,人事部门要统计员工的业绩,根据业绩判断该
员工是否到达升迁降职的标准,并且发起调动,由上级批准,即就是,升迁降职
将参考效绩模块的数据。
在下描述的过程中,如有用到其他模块的数据的功能,将有所提及,但不做
深入讲解,如有疑问,可以参考其他模块的具体设计。
数据流图
1.内部调动
图 3-2 内部调动 E-R 图
人事专员可以发起对一名员工的调动申请,申请包括该员工现在部门职位和
将要调往的部门职位,发起的申请存入系统,然后交由上级领导审批,上级审批
后,产生的审批记录存入系统。
2.升迁降职处理
图 3-3 升迁降职 E-R 图
人事专员可以根据员工入职以后的个人业绩针对员工发起升迁降职申请,由
上级批准后,升迁降职信息存入系统
3.离职登记
图 3-4 离职登记数据流图
4.员工转正
图 3-5 员工转正 E-R 图
人事专员根据员工在实习期间的表现决定是否可以对该员工发起转正,如果
调价达到,则该员工发起转正,并且对该员工产生转正记录,记录的转正时间,
从次月起对员工缴纳保险和公积金。与社会关系管理模块契合。
第四章 概念结构设计
数据字典
数据文件:调动申请表
文件组成:调动编号,员工编号,现在部门,现在岗位,调动部门,调动岗位,
申请日期,上级编号
序号 列名 数据类型 长
度
小数位 标识 主键 允许空 默认值 说明
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 否
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 图
第五章 逻辑设计
关系模式
从上面的概念设计中,可以得出以下的关系模式:
1.凭调申请(申请编号,员工编号,原来部门,调动部门,原来岗位,调动岗位,
申请时间)
2.调动审批(审批编号,申请编号,审批评语,审批结论,审批时间,审批人)
3.转正申请(申请编号,员工编号,申请内容,申请时间,人事专员编号,审批
人)
4.转正审批(审批编号,审批评语,审批结论,审批时间,申请编号)
5.离职信息(离职编号,员工编号,离职时间,离职原因,原来部门)
6.升降记录(变动编号,变动时间,调动部门,调动岗位,上级编号)
关系模式分析
1.凭调申请关系模式
凭调申请(申请编号,员工编号,原来部门,调动部门,原来岗位,调动岗
位,申请时间)
在关系模式中,审请编号是主属性。
申请编号-->(员工编号,原来部门,调动部门,原来岗位,调动岗位,申请
时间)
其中,每一个数据项都单一,满足 1NF,
并且,主属性是申请编号,不存在非主属性对主属性的部分依赖。满足第二
范式。
同时,主属性是申请编号,不存在非主属性对主属性的传递依赖。满足第三
范式。
因此:凭调申请∈3NF
2.调动审批关系模式
调动审批(审批编号,申请编号,审批评语,审批结论,审批时间,审批人)
在关系模式中,审批编号是主属性。
审批编号-->(申请编号,审批评语,审批结论,审批时间,审批人)
其中,每一个数据项都单一,满足 1NF,
并且,主属性是审批编号,不存在非主属性对主属性的部分依赖。满足第二
范式。
同时,主属性是审批编号,不存在非主属性对主属性的传递依赖。满足第三
范式。
因此:凭调申请∈3NF
3.转正申请关系模式
转正申请(申请编号,员工编号,申请内容,申请时间,人事专员编号,审
批人)
在关系模式中,申请编号是主属性。
申请编号-->(申请编号,员工编号,申请内容,申请时间,人事专员编号,
审批人)
其中,每一个数据项都单一,满足 1NF,
并且,主属性是申请编号,不存在非主属性对主属性的部分依赖。满足第二
范式。
同时,主属性是申请编号,不存在非主属性对主属性的传递依赖。满足第三
范式。
因此:凭调申请∈3NF
4.转正审批关系模式
转正审批(审批编号,审批评语,审批结论,审批时间,申请编号)
在关系模式中,审批编号是主属性。
审批编号-->(审批评语,审批结论,审批时间,申请编号)
其中,每一个数据项都单一,满足 1NF,
并且,主属性是审批编号,不存在非主属性对主属性的部分依赖。满足第二
范式。
同时,主属性是审批编号,不存在非主属性对主属性的传递依赖。满足第三
范式。
因此:凭调申请∈3NF
5.离职信息关系模式
离职信息(离职编号,员工编号,离职时间,离职原因,原来部门)
在关系模式中,离职编号是主属性。
离职编号-->(员工编号,离职时间,离职原因,原来部门)
其中,每一个数据项都单一,满足 1NF,
并且,主属性是离职编号,不存在非主属性对主属性的部分依赖。满足第二
范式。
同时,主属性是离职编号,不存在非主属性对主属性的传递依赖。满足第三
范式。
因此:凭调申请∈3NF
6.升降记录关系模式
升降记录(变动编号,变动时间,调动部门,调动岗位,上级编号)
在关系模式中,变动编号是主属性。
变动编号-->(变动时间,调动部门,调动岗位,上级编号)
其中,每一个数据项都单一,满足 1NF,
并且,主属性是变动编号,不存在非主属性对主属性的部分依赖。满足第二
范式。
同时,主属性是变动编号,不存在非主属性对主属性的传递依赖。满足第三
范式。
因此:凭调申请∈3NF
第六章 物理设计
类图
在我负责的业务模块中,有人事专员,调动申请,申请审批,升迁降职,离
职记录,转正申请,和转正审批,他们之间的关系如下
图 6-1 类图
功能设计
员工凭调
人事专员发起对一个员工的调动申请,由上级领导审批后,人事专员根据审
批结果修改员工状态,如果审批结果未通过,则不变化,只产生申请审批记录,
如果通过,则修改员工信息即新的岗位好和部门号。
如下图的活动图:
图 6-2 员工凭调活动图
图 6-3 员工凭调时序图
员工转正
在培训阶段的培训成绩合格后,员工可以自己发起自己的转正申请,人事
专员受理后,指定审批领导,由上级领导审批后,人事专员根据审批结果修改员
工状态,如果审批结果未通过,则不变化,只产生申请审批记录,如果通过,则
修改员工信息即状态为正式员工。
如下图的活动图:
图 6-4 转正活动图
图 7-5 转正用例图
图 6-5 转正时序图
员工升迁降职
人事专员可以发起一条员工的升迁降职记录申请,由上级领导审批后,人
事专员根据审批结果确定该员工是否可以升迁或降职,然后修改修改员工状态。
然后新增一条升迁降职记录,记录该员工何时由谁审批从何位置调往何职位。
图 6-6 升迁降职活动图
图 6-7 转正用例图
员工离职
当一个员工离职后,人事专员负责记录该员工的离职信息,包括离职时间和
离职原因,而员工离职后,并不将该员工从员工综合记录中删除,而是将其状态
置为离职,即就是执行逻辑删除,然后在以后的在职员工操作过程中,该员工将
不再查询范围之内。
图 6-8 员工离职活动图
图 6-9 员工离职时序图
员工信息维护
1,员工信息查询
员工成功登录人力资源管理系统,输入相关信息条件,进行员工信息查询。
其流程如图所示:
图 6-10 员工信息查询时序图
员工对于自己的相关基本信息进行查看,以及相关人员查看员工的信息。流
程中主要涉及的业务实体以及它们之间的关系如图所示:
图 6-11 员工信息查询类图
在这个业务流程中,有两个直接与系统交互的用户:系统管理员,员工,涉
及的业务活动如图所示:
图 6-12 员工信息查用例图
2. 员工信息修改
人力资源管理部门等相关人员根据情况对员工信息进行修改更新与维护,
员工自身对于自己的信息的更正等。整个流程如图所示:
图 6-一三 员工信息修改活动图
流程中涉及的的业务实体在上图的基础上增加了人力资源部门的员工,它们
之间的关系如图所示:
图 6-14 员工信息修改类图
这个业务流程中有三个直接与系统交互的用户:系统管理员,员工,人力资
源部门人员,他们涉及的业务活动如图所示:
图 6-一五 员工信息修改用例图
3.新员工信息添加
当公司招聘进新的员工时,需要将新员工的信息存进系统中。其流程如图所示:
图 6-16 员工信息添加活动图
这个业务流程中涉及的业务实体同上面信息修改。其系统直接交互用户也包
括系统管理员,员工,人力资源部门人员,在上面的业务活动的基础上,人力资
源部门人员涉及的业务活动添加了添加员工信息
第七章 测试实现
用户界面
在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界
面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显
示重要以及出错信息。外观上也要做到合理化,考虑到用户多对 WINDOW 风
格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用 Delphi 进行编
程,在界面上可使用 Delphi 所提供的可视化组件,向 WINDOWS 风格靠近。
其中服务器程序界面要做到操作简单,易于管理。在设计上采用下拉式菜单方式,
在出错显示上可调用 Delphi 库中的错误提示函数。
总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用。
图 7-1 系统运行主界面
进入员工信息管理后,可以对员工信息进行维护,并且发起对员工的各项人
事业务
进入员工信息的管理界面,可以浏览全部员工的基本信息,如图 8-2 所示
图 7-2 系统运行主界面
在该页面,可以对员工进行基本的操作,如下图所示,就是删除员工记录的
操作过程。
图 7-3 员工操作界面
点击添加员工按钮,进入添加员工页面,输入员工信息,就能将员工信息录
入系统。
图 7-4 添加员工界面
点击添加修改信息按钮,进入修改员工页面,重新输入员工信息,就能将员
工信息录入系统。
图 7-5 添加员工界面
代码展示
------------------------------------------------- 员 工 基 本 类
-------------------------------------------
public class Employee implements {
// Constructors
/** default constructor */
public Employee() {
}
/** minimal constructor */
public Employee(Integer id, String name, String password) {
= id;
= name;
= password;
}
/** full constructor */
public Employee(Integer id, String name, String password, String sex,
String tel, String address, String birthday, String content) {
= id;
= name;
= password;
= sex;
= tel;
= address;
= birthday;
= content;
}
}
------------------------------------------------- 员 工 控 制 类
-------------------------------------------
xSuppressWarnings("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) {
= employee;
}
public void setEmpService(EmpService empService) {
= empService;
}
public void setBirthday(String birthday) {
= birthday;
}
/**
* 显示员工主界面
* xreturn success
*/
public String main(){
return "success";
}
//过滤查询功能
public void list() {
try {
JSONObject root = new JSONObject();
PageList<Employee> list = (like, (page - 1) * rows,
rows);
int count = ();
("page", page);
("total", count / rows + ((count % rows) > 0 ? 1 : 0));
("records", count);
JSONArray rows = new JSONArray();
for (Employee s : list) {
(s, ());
}
("rows", rows);
().setCharacterEncoding("utf-8");
(().getWriter());
} catch (Throwable e) {
();
}
}
public String add() throws ModelException {
(employee);
return "success";
}
public String modify() {
try {
(employee);
return "success";
} catch (ModelException e) {
// TODO Auto-generated catch block
();
}
return "error";
}
public void load() {
try {
JSONObject root = new JSONObject();
Employee emp = (id);
("employee", emp, ());
().setCharacterEncoding("utf-8");
(().getWriter());
} catch (Throwable e) {
// TODO Auto-generated catch block
();
}
}
}
------------------------------------------------- 员 工 服 务 类
-------------------------------------------
public class EmpServiceImpl implements EmpService {
private EmpDao empDao = null;//该模块对应的 DAO
public void setEmpDao(EmpDao empDao) {
= empDao;
}
public Employee add(Employee employee) throws ModelException {
int a = 10000000;
int aid = (int) (()%1000000);
(new Integer(a+aid));
(employee);
return null;
}
public PageList<Employee> list(Employee employee, int skip, int size)
throws ModelException {
return (employee, skip, size);
}
public Employee load(int id) throws ModelException {
return (id);
}
public void modify(Employee employee) throws ModelException {
(employee);
}
}
---------------------------------------------- 员 工 数 据 访 问 类
-------------------------------------------
public class EmpDaoImpl extends HibernateDaoSupport implements EmpDao {
xSuppressWarnings("unchecked")
public PageList<Employee> list(final Employee employee, final int skip,final int
size)
throws ModelException {
try{
PageList<Employee> list = (PageList<Employee>)
().execute(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria query = ();
//组合条件
if(()!=null){
(("name",
(),));
}
//统计行数
(());
Long count = (Long) ();
//查询结果
(null);
(("id"));
(skip);
(size);
PageList<Employee> list = new PageList(());
(());
return list;
}});
return list;
}catch(Exception e){
();
throw new ModelException(1,());
}
}
public Employee add(Employee employee) throws ModelException {
try{
().save(employee);
().flush();
return employee;
}catch(Exception e){
();
throw new ModelException(1,());
}
}
public Employee load(int id) throws ModelException {
try{
return (Employee) ().get(, id);
}catch(Exception e){
();
throw new ModelException(1,());
}
}
public void modify(Employee employee) throws ModelException {
Employee emp = (Employee)
().get(, ());
try{
(());
(());
(());
(());
(());
(());
(());
().saveOrUpdate(emp);
}catch(Exception e){
();
throw new ModelException(1,());
}
}
}
运行需求
运行环境
服务器程序可使用 Delphi 提供的对 SQL SERVER 的接口,进行对数据库
的所有访问。
服务器程序上可使用 SQL SERVER 的对数据库的备分命令,以做到对数据
的保存。
在网络软件接口方面,使用一种无差错的传输协议,采用滑动窗口方式对数
据进行网络传输及接收。
硬件接口
在输入方面,对于键盘、鼠标的输入,可用 Delphi 的标准输入/输出,对输
入进行处理。
在输出方面,打印机的连接及使用,也可用 Delphi 的标准输入/输出对其进
行处理。
内部接口
内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信
息传递。具体参数的结构将在下面数据结构设计的内容中说明。接口传递的信息
将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。