登陆界面Actor_1输入账号密码账号密码输入正确管理首页查询奖惩信息修改界面添加界面点击奖惩管理账号密码错误按ID查询个人奖惩信息删除奖惩信息点击修改按钮返回修改结果添加奖惩信息返回添加后结果点击首页
2.1.4数据库设计
根据项目需要,我们需要对项目的实体类进行相应的数据库设计。而数据库设计又分为概念设计(包括了主外键约束,类的持久化)、逻辑设计、以及物理设计等方面。首先先进行的是数据库的概念设计,以下是数据库的概念设计表
21
表名称 表属性 员工姓名、员工ID、性别、年龄、职位、部门、毕业员工表 院校、文化水平、开始工作时间、电话、地址、工龄、国籍出生年月、部门ID 人员id 、姓名、性别、年招聘表 龄、出生地、应聘工作毕业院校、联系方式、地址、出生地、应聘部门部门ID 人员id 、姓名、性别、年龄出生地、应聘工作、毕培训表 业院校、联系方式、地址、出生地、应聘部门、部门ID、培训安排、培训开始时间 部门名称,部门编号、部部门表 门经理、部门人数、部门描述、部门创建时间、备注 薪资表 员工ID、发薪日期、薪资金额、薪资年份 奖惩编号、奖惩人姓名、奖惩表 奖惩时间、奖惩金额、奖惩条目、员工编号、奖惩奖惩编号 人员ID 员工ID 部门编号 员工ID 人员ID(id) 部门ID 人员ID(id) 部门ID 员工ID(id) 部门ID 主键 外键 22
类型 系统管理员表 系统管理员姓名,管理员ID、管理员级别 管理员ID(S_id) 无 其中我负责奖惩管理部分和系统管理,经过对表的规范化设计,去除冗余之后,对我负责的两张表的设计如下
奖惩表结构 字段名称 奖惩编号 奖惩人姓名 奖惩时间 奖惩金额 奖惩条目 员工编号 奖惩类型 系统表结构 字段名称 管理员ID 管理员姓名 管理员级别
为了方便数据库存储,不容易导致错误,所有表名和属性名均由英文书写。最终数据库各表之间关系和表属性的总结如下图:
数据类型 数字 文本 数字
长度 10 20 10
数据类型 数字 文本 时间/日期 数字 文本 数字 文本
长度 15 20 20 30 50 10 50
23
tb_department+dt_name : int+dt_createtime : Date-dt_bz : Stringtb_inviteJob-name : string-sex : string-age : int-born : string-job : string-specialty : string-experiencr : string-teacherschool : string-afterschool : string-tel : int-address : string-createtime : string-content : string-isstock : stringtb_employee-id : int-em_name : string-em_sex : string-em_age : int-em_IDCard : int-em_born : string-em_nation : string-em_tel : int-em_address : string-em_starttime : Date-em_createtime : Date-afterschool : string-marriage : string-em_culture : string-em_visage : int-em_typework : string-em_departmentid : int-em_speciality : stringtb_pay-pay_ennumber : int-vemname : string-pay_month : Date-pay_basemoney : float-pay_overtime : Date-pay_age : int-pay_check : string-pay_absent : string-pay_safety : stringtb_cj-id : int-cj_title : string-cj_type : string-cj_content : string-cj_money : float-cj_time : Datetb_train-id : int-tn_man : string-tn_title : string-tn_content : string-tn_time : Date-tn_address : string-tn_join : string-tn_bz : stringtb_manager-id : int-account : string-passsword : string-managelevel : inttb_department:部门表tb_employee:员工表 tb_invitejob:招聘表tb_pay:薪资表 tb_manager:管理员表tb_train:培训表 tb_cj:奖惩表 2.1.4 代码设计
设计好整个项目的流程和功能以及数据库之后,接下来就是详细的代码层次设计和代码的书写。代码主要包括了实体类部分(hs.com.vo)数据访问对象部分(hs.com.Dao)Action部分(hs.com.Action)。vo层就是对应的数据库表的实体类。Dao层则是使用Hibernate连
24
接数据库。对数据库操作(增删改查)的代码实现。Action层:引用对应的Dao层,结合页面上配置的Action方法和Structs.xml文件中对于Action的配置完成对应页面的跳转工作,同时可以接受页面的传参请求,通过Dao对数据库进行修改。也可以做些计算处理。在SSH框架中,以上所说的的Hibernate,Struts,都需要注入到Spring的配置文件中,利用Spring把他们都联系起来,作为一个整体。 Vo实体类代码设计
在本项目中使用了Hibernate进行数据的实体化操作,类与类之间的关系使用Annotation注解在持久化时实现下面是相关类的代码
员工类的部分代码,它与奖惩表是一对多的关系@OneToMany @Entity @Table(name=\) publicclass Employee { privateintid; private String eserialNumber;//员工账号 private String ename; private List