企业人力资源管理系统-数据库课设.doc_第1页
企业人力资源管理系统-数据库课设.doc_第2页
企业人力资源管理系统-数据库课设.doc_第3页
企业人力资源管理系统-数据库课设.doc_第4页
企业人力资源管理系统-数据库课设.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

目录1. 概述 21.1. 设计题目及实现目标 21.1.1. 设计题目 21.1.2. 实现目标 21.2. 开发环境简介 22. 需求分析 32.1. 系统功能描述 32.2. E-R图 32.3. 功能结构图 52.4. 流程图 53. 数据库逻辑结构 63.1. 数据库树形结构图 63.2. 数据库主要表详细结构 63.3. 数据库关系表 84. 程序核心代码及控件描述94.1. SSH框架配置关系图 94.2. 公共模块设计 94.2.1. 获取时间的类 94.2.2. 获取自动编号的类 94.2.3. 字符串自动处理类 104.2.4. 分页Bean 104.2.5. 数据持久化类 124.2.6. Spring框架注入映射文件 144.3. 主要页面设计 164.3.1. 登录页面 164.3.2. 企业人力资源管理首页面 164.3.3. 员工管理页面 174.3.4. 员工信息修改页面 184.4. 管理员模块设计 184.4.1. 管理员ActionForm类 194.4.2. 管理员属性信息xml配置文件 204.4.3. 管理员Action实现类 204.5. 招聘管理模块设计 224.6. 员工管理模块设计 235. 总结23参考文献24 1 概述1.1 设计题目及实现目标1.1.1设计题目企业人力资源管理系统1.1.2实现目标人力资源管理系统(Human Resources Management System,HRMS)包括人事日常事务、薪酬、招聘、培训、考核以及对企业的人力资源管理方方面面进行分析、规划、实施、调整,提高企业人力资源管理水平,使人力资源更有效的服务于组织或团体目标。人力资源管理系统的具体目标如下:(1) 对企业人力资源管理的基本信息进行管理。(2) 管理企业员工的信息(即人事管理功能)。(3) 实现为个人提供网络工作平台的功能。(4) 实现企业的应聘信息的管理功能。(5) 实现企业员工培训的一系列相关信息管理。(6) 员工薪酬信息管理。(7) 系统用户信息的管理。(8) 系统运行稳定、安全可靠。1.2 开发环境简介本系统以eclipse + myeclipse插件作为集成开发环境,该开发环境界面友好,功能强大,是从事Java开发的开发主流IDE,使用的Java开发包为JDK1.6.0u25。数据库方面,采用SQL server 2005,此数据库为Microsoft公司的数据库之一,性能良好,在中、小型项目中使用较为普遍。故本系统采用SQL server 2005作为数据库。页面实现过程中使用的测试浏览器为IE9.0和FireFox5.0。2 需求分析2.1 系统功能描述人力资源管理目标是指企业人力资源管理需要完成的职责和需要达到的绩效。随着企业内人力资源管理的网络化和系统化的日益完善,人力资源管理系统在企业管理中越来越受到企业管理者的青睐。人力资源管理是组织的一项基本管理职能,它是以提高劳动生产率、工作生活质量(Quality of Working Life)和取得经济效益为目的而对人力资源进行获取、保持、开发、激励和调整等一系列管理的过程。2.2 E-R图系统中使用的数据库实体包括管理人员实体、招聘人员实体、员工信息管理实体、薪资管理实体、培训信息实体以及部门信息实体。以下是几个关键的实体的E-R图:图1 招聘人员管理实体 图2 员工信息管理实体图3 薪资管理实体图4 管理员实体E-R图 2.3 功能结构图企业人力资源管理系统主要包括部门管理、招聘管理、员工管理、培训管理、奖惩管理、薪资管理及系统管理模块。各个模块及其包括的具体功能如图5所示。图5 人力资源管理系统功能结构图2.4 流程图为了更加清晰地表达系统的业务功能模块,下面给出人力资源管理系统的业务流程图,如图6所示。 图6 人力资源管理系统业务流程图3 数据库逻辑结构设计3.1 数据库表树形结构图图7 数据树形结构图3.2 数据库主要表详细结构数据库共7张表,其中主要表的4张表(tb_manager,用于保存管理员信息;tb_inviteJob,用于保存招聘信息;tb_employee,用于保存员工的详细信息;tb_train,用于保存培训信息;tb_pay,用于保存员工薪资的信息)的具体结构如表1、表2、表3、表4、表5所示。表1 表tb_manager的结构字段名数据类型是否为空是否为主键默认值描述idint(4)NOYESID(自动编号)accountvarchar(20)NO管理员账号passwordvarchar(30)NO管理员密码managerLevelchar(10)管理员级别表2表tb_inviteJob的结构字段名数据类型是否为空是否为主键默认值描述idint(4)NOYESID(自动编号)namechar(10)YESNULL应聘人员姓名sexchar(10)YESNULL应聘人员性别ageint(4)YESNULL应聘人员年龄bornvarchar(50)YESNULL应聘人员出生日期jobvarchar(50)YESNULL应聘职务specialtyvarchar(50)YESNULL应聘人员所学专业experiencechar(10)YESNULL应聘人员工作经验teachSchoolvarchar(30)YESNULL应聘人员文化程度afterSchoolvarchar(50)YESNULL应聘人员毕业学校telvarchar(50)YESNULL应聘人员联系电话addressvarchar(50)YESNULL应聘人员家庭住址createtimevarchar(50)YESNULL登记信息contentntnext(16)YESNULL备注信息isstockbit(1)YESNULL是否录用标识表3表tb_employee的结构字段名数据类型是否为空是否为主键默认值描述idint(4)NOID(自动编号)en_serialNumbervarchar(30)NOYES员工账号enm_namechar(2)NO员工姓名em_sexchar(2)NO员工性别em_ageint(4)NO员工年龄em_IDCardvarchar(30)NO员工身份证号em_bornvarchar(50)NO出生日期em_nationchar(10)NO民族信息em_marriagechar(10)NONULL是否结婚em_visagechar(10)NONULL政治面貌em_ancestralHomechar(30)YESNULL籍贯em_telvarchar(50)YESNULL联系电话em_addressvarchar(50)YESNULL联系地址em_afterSchoolvarchar(50)YESNULL毕业学校em_specialityvarchar(50)YESNULL所学专业em_culturechar(10)YESNULL文化程度em_startimechar(30)YESNULL开始工作时间em_departmentIdint(4)NO部门信息表外键信息em_typeWorkchar(10)YESNULL工种em_creatimevarchar(50)YESNULL登记时间em_createNamechar(30)YESNULL登记人em_bzvarchar(50)YESNULL备注信息表4表tb_train的结构字段名数据类型是否为空是否为主键默认值描述idintNOYESID(自动编号)tn_namechar(10)NO培训人名称tn_titlevarchar(50)NO培训名称tn_contentvarchar(50)NO培训内容tn_timechar(30)NO培训时间tn_addresschar(30)NO培训地点tn_joinvarchar(50)NO培训机构tn_bztextYESNULL备注表5表tb_pay的结构字段名数据类型是否为空是否为主键默认值描述idint(4)NOYESID(自动编号)pay_emNumbervarchar(30)NO员工编号pay_emNamechar(10)NO员工姓名pay_monthvarchar(50)NO发放工资时间pay_baseMoneyint(4)NO基本工资pay_overtimeint(4)NO加班费pay_ageint(4)NO工龄pay_checkmoney(8)NO考勤费pay_absentmoney(8)NO旷工费pay_safetymoney(8)NO保险费4 程序核心代码及控件描述4.1 SSH框架配置关系图图9 SSH框架配置关系图4.2 公共模块设计在开发网站的过程中,经常会使用到一些公共类,因此开发时,首先需要设计这些公共类。4.2.1获取时间的类该类名称为GetSystemTime,再该类中提供获取当前系统时间的方法,源代码如下:public class GetSystemTime private Calendar now = Calendar.getInstance();private int year = now.get(Calendar.YEAR);private int month = now.get(Calendar.MONTH) + 1;private int day = now.get(Calendar.DAY_OF_MONTH);public String getToday() String today = this.year + - + this.month + - + this.day;return today;public String getYearMonth() String today = this.year + - + this.month ;return today;4.2.2 获取自动编号的类该类名称为GetAutoNumber,再该类中提供获取自动编号的方法,如果编号的一位,则在前面加“00”,如果是两位则加“0”,源代码如下:public class GetAutoNumber public static String getMaxNuber(String number) if (number.length() = 1)number = 00 + number;if (number.length() = 2)number = 0 + number;return number;4.2.3 字符串自动处理类该类名称为SelfRequestProcessor,该类继承了Struts框架中的DelegatingRequestProcessor类,实现类中的processPreprocess方法,该方法是将form表单中的字符串转换成gk2313,源代码如下:public class SelfRequestProcessor extends DelegatingRequestProcessor public SelfRequestProcessor() protected boolean processPreprocess(HttpServletRequest request,HttpServletResponse response) cessPreprocess(request, response);try request.setCharacterEncoding(gb2312); catch (UnsupportedEncodingException ex) ex.printStackTrace();return true;4.2.4 分页Bean该类名称为MyPagination,该类是一个提供分页功能的JavaBean,源代码如下。public class MyPagination public List list=null;private int recordCount=0;private int pagesize=0;private int maxPage=0;/初始化分页信息public List getInitPage(List list,int Page,int pagesize)List newList=new ArrayList();this.list=list;recordCount=list.size();this.pagesize=pagesize;this.maxPage=getMaxPage();try for(int i=(Page-1)*pagesize;i=recordCount)break;catch(Exception e)newList.add(Object)list.get(i);catch(Exception e)e.printStackTrace();return newList;/获取指定页的数据public List getAppointPage(int Page)List newList=new ArrayList();tryfor(int i=(Page-1)*pagesize;i=recordCount)break;catch(Exception e)newList.add(Object)list.get(i);catch(Exception e)e.printStackTrace();return newList;/获取最大记录数public int getMaxPage()int maxPage=(recordCount%pagesize=0)?(recordCount/pagesize):(recordCount/pagesize+1);return maxPage;/获取总记录数public int getRecordSize()return recordCount;/获取当前页数public int getPage(String str)System.out.println(STR:+str+&+recordCount);if(str=null)str=0;int Page=Integer.parseInt(str);if(PagerecordCount)Page=maxPage;return Page;/输入记录导航的方法public String printCtrl(int Page)String strHtml= 当前页数:+Page+/+maxPage+  tryif(Page1)strHtml=strHtml+第一页;strHtml=strHtml+  上一页;if(PagemaxPage)strHtml=strHtml+  下一页  最后一页 strHtml=strHtml+ ;catch(Exception e)e.printStackTrace();return strHtml;/输入记录导航的方法public String printCtrl(int Page,String method)method=method+&;String strHtml= 当前页数:+Page+/+maxPage+  tryif(Page1)strHtml=strHtml+第一页;strHtml=strHtml+  上一页;if(PagemaxPage)strHtml=strHtml+  下一页  最后一页 strHtml=strHtml+ ;catch(Exception e)e.printStackTrace();return strHtml;4.2.5 数据持久化类对数据持久化类地名称为ObjectDao,本系统使用了SSH框架整合技术,在编写数据库持久化类时,必须继承通过关键字extends继承HibernateDaoSupport类,并通过HibernateTemplate类提供持久层访问的模板化。使用HibernateTemplate无需实现特定的接口,只需要提供一个SessionFactory的引用,就可以执行持久化操作,具体源代码如下。public class ObjectDao extends HibernateDaoSupport / condition为条件,查询一组数据,该方法的返回类型为Objectpublic Object getObjectForm(String condition) List list = null;Object object = null;try list = getHibernateTemplate().find(condition);if (list.size() = 1) object = (Object) list.get(0); catch (DataAccessException ex) ex.printStackTrace();return object;/ condition为条件,查询多组数据,该方法的返回类型为Listpublic List getObjectList(String condition) List list = null;try list = getHibernateTemplate().find(condition); catch (DataAccessException ex) ex.printStackTrace();return list;/ 修改一组数据,该方法的返回类型为booleanpublic boolean updateObjectForm(Object object) boolean flag = false;try getHibernateTemplate().update(object);flag = true; catch (DataAccessException ex) ex.printStackTrace();return flag;/ 添加一组数据,该方法的返回类型为booleanpublic void insertObjectForm(Object object) try getHibernateTemplate().save(object); catch (DataAccessException ex) ex.printStackTrace();/ 删除一组数据,该方法的返回类型为booleanpublic boolean deleteObjectForm(Object object) try getHibernateTemplate().delete(object); return true; catch (DataAccessException ex) ex.printStackTrace();return false;4.2.6 Spring框架注入映射文件本系统采用SSH架构,因此由Spring负责控制,Spring的核心是applicationContext.xml配置文件,详细代码如下。com.microsoft.jdbc.sqlserver.SQLServerDriverjdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=db_personManagersasaorg.hibernate.dialect.SQLServerDialectcom/alex/form/ManagerForm.hbm.xmlcom/alex/form/DepartmentForm.hbm.xmlcom/alex/form/InviteJopForm.hbm.xmlcom/alex/form/EmployeeForm.hbm.xmlcom/alex/form/PayForm.hbm.xmlcom/alex/form/TrainForm.hbm.xmlcom/alex/form/CjForm.hbm.xml 4.3 主要页面设计下面列举了本系统的一些典型页面,具体如下。4.3.1 登录页面系统名称单击可登录输入登录账号输入登录密码图10 登录页面4.3.2企业人力资源管理首页面导航栏,包含快速进行登陆管理员功能条功能面板,包含进入所有功能操作页面的按钮声明栏,通常用于声明版权类的信息单击可快速进入相关业务的链接功能按钮,单击进入相应功能页面图11 企业人力资源管理首页面4.3.3员工管理页面部门切换功能条,单击可切换到相应部门员工信息列表修改、删除员工信息点击添加员工信息切换页码功能条图12 员工管理页面(部分页面,不包含上部导航栏)4.3.4员工信息修改页面员工信息修改主页面,可修改员工相关的信息修改相关功能按钮图13 员工信息修改页面(部分页面,不包含上部导航栏)4.4 管理员模块设计管理员模块主要用于实现普通用户的添加、删除、修改及查询操作。管理员模块主要包括管理员登录、添加管理员、查询管理员、删除管理员及修改管理员密码等几部分。挡在网站的登录页中输入正确的账号和密码之后,如果该管理员为系统管理员,则具有添加管理员、查询所有管理员、删除管理员及修改管理员密码的操作权限。如果该管理员为普通管理员,则只具有修改自己密码的操作权限。管理员管理模块的框架图如图14所示。图14 管理员管理模块的架构图由于本系统是采用SSH技术开发。因此在实现管理员功能模块时,需要编写管理员模块的ActionForm类和Action实现类,并且需要编写与ActionForm属性及数据表字段一一对应的xml映射文件,以及在Spring框架中的applicationContext.xml文件中进行配置。在Struts框架中,ActionForm类是一个具有getXXX()和setXXX()方法的类,用于获取或设置HTML表单数据。同时,该类可以实现验证表单数据的功能。Action实现类是Struts中控制器组件的重要组成部分,是用户请求和业务逻辑之间沟通过的媒介。在Hibernate框架中,需要将ActionForm类地属性名称与数据库字段一一对应,这样,对ActionForm属性操作的同时会对数据表字段操作。在Spring框架中,通过依赖注入的方法来取得数据库的连接及操作数据持久化类(ObjectDao)。下面将分别给出核心文件的简要说明和核心源代码。4.4.1 管理员ActionForm类管理员信息表保存的是管理员账号和密码等信息。根据这些信息可以得出管理员模块的ActionForm类,其名称为ManagerForm,核心源代码如下。public class ManagerForm extends ActionForm private String id =null;/设置数据库IDprivate String account =null;/设置用户账号private String password =null;/设置用户密码private String managerLevel =null;/设置用户级别/*提供控制accout属性的方法*/public String getAccount() return account;public void setAccount(String account) this.account = account;public String getId() return id;public void setId(String id) this.id = id;public String getManagerLevel() return managerLevel;public void setManagerLevel(String managerLevel) this.managerLevel = managerLevel;public String getPassword() return password;public void setPassword(String password) this.password = password;4.4.2 管理员属性信息xml配置文件Hibernate框架采用XML格式的文件来指定对象和关系数据之间的映射。在运行时,Hibernate将根据这个映射文件来生成各种SQL语句。在本系统中,其名称为ManagerForm.hbm.xml,其核心源代码如下。 4.4.3 管理员Action实现类管理员管理模块的Action实现类集成饿了DispatchAction类,实现了Struts框架中的多业务处理操作。在该类中设置了ObjectDao类型对象,并对这个对象实现getXXX()和setXXX()方法。在applicationContext.xml文件中配置依赖与注入的关系,通过ObjectDao类地对象调用该类中的各类方法,从而实现对数据表的各种操作。其名称为ManagerAction,核心源程序如下。public class ManagerAction extends DispatchAction private ObjectDao objectDao;public ObjectDao getObjectDao() return objectDao;public void setObjectDao(ObjectDao objectDao) this.objectDao = objectDao;/ 用户登录操作public ActionForward checkManager(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) ManagerForm managerForm = (ManagerForm) form;HttpSession session = request.getSession();ManagerForm managerform = (ManagerForm) objectDao.getObjectForm(from ManagerForm where account=+ managerForm.getAccount() + );if (managerform = null) request.setAttribute(errorNews, 您输入的账号不存在); else if (!managerform.getPassword().equals(managerForm.getPassword() request.setAttribute(errorNews, 您输入的密码不正确); else session.setAttribute(managerform, managerform);return mapping.findForward(checkManager);/ 用户修改操作public ActionForward updateManager(ActionMapping mapping

温馨提示

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

评论

0/150

提交评论