资源描述
江西经济管理干部学院
毕业设计(论文)
题目:基于ESSH框架平台日志管理与审批的开发
系别 信息工程系 专业班级
学生姓名
指导教师
指导教师职称
2016年5月20日
目 录
摘 要 1
引 言 2
一、需求分析 3
(一)概述 3
(二)日志管理系统运行环境 4
(三)总体功能描述 4
(四)功能性需求描述 6
二、系统设计 10
(一)架构设计 10
(二)数据库设计 13
(三)界面设计 16
(四)模块设计 17
三、编码实现 21
(一)编码规范 21
(二)算法分析与实现 24
(三)系统调试与单元测试 24
四、系统测试 26
(一)测试方法和技术 26
(二)测试流程 27
五、小结 28
(一)创新点、特点、难点 28
(二)心得与体会 28
致 谢 30
参考文献 31
31
基于ESSH框架平台日志管理与审批的开发
摘要:本文阐明了开发本系统的目的和意义。然后阐述了本系统的系统概述以及各个子系统模块的功能需求。之后又具体介绍了系统整体页面风格和效果。最后,介绍了系统的开发机制、运行环境和数据库的设计实现,并对一些具体功能作了详细阐述,还叙述了系统的实现以及对系统开发全过程的结论建议。
本系统利用ESSH(easyui+Struts+Spring+Hibernate)框架开发,并结合java中间软件开发高效的web应用程序。在开发过程中涉及到easyui等相关技术,在文中都有详细的阐述。系统使用MyEcilpse软件开发,使用的Oracle数据库的特点以及数据库的建立和操作,在文中也做了具体的说明。
关键词:ESSH 数据库 easyui Oracle
引 言
全球化的网络化、信息化进程正改变着人们的生活方式,办公自动化也成为企业现代化的新名词。回顾我国企业办公的进程,从完全依赖人工办公到现在使用计算机来提高个人办公效率并且利用网络把应用范围从部门内部,部门之间扩展到行业、系统内部,乃至跨部委系统,为企业的飞速增长带来了深刻的影响。但不少企业站点在建设规划、管理和维护以及安全性方面还停留在较低的水平。各个企业单位还有待建立和完善从页面制作、审批、更新,流程管理,应用开发,安全性保证,与后台应用系统,集成的以及客户支持的一整套行之有效的管理模式、运营方法和技术平台。因此,有必要专门构建一个更安全的,完善的办公系统。而我们所开发的办公日志系统就是为了帮助各个企事业单位的职员书写和提交办公计划和总结,提高工作的效率。在页面的设计上力求简单,使用户对自己所使用的各项功能一目了然。在系统中为了便于管理,把用户分为四个等级,不同级别的用户在处理信息和事务的权限是由高到低排列下来的。使系统更能适合企事业单位内部人员行政结构。这样也使系统的安全性得到了进一步的提高,以便用户更好的使用。
一、需求分析
(一)概述
1、日志管理需求规格说明书编写目的
日志管理定位于软件开发行业信息化建设的基础软件平台——在对软件公司的办公、管理和信息沟通提供强有力的网络化、电子化支持外,还为其它信息化系统的引入、为这些系统间的信息交流提供帮助,实现单位信息化程度的全面提升。该系统主要是基于Internet\Intranet和网络数据库,集流程管理、人员组织管理、系统权限管理、公共信息管理、信息共享为一体的信息管理系统。以其特有的技术、结合各单位办公管理业务流程的特点,提供一套完整的计算机应用解决方案,最终使贵单位真正提高管理的质量和效率。
此需求规格说明书对《OA系统》软件做了全面细致的用户需求分析,明确所要开发的软件应具有的功能,性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进步提出概要设计说明书和完成后续设计与开发工作。本说明书的预期读者为客户,业务或需求分析人员,测试人员,用户文档编写者,项目管理人员。
2、日志管理作用范围
日志管理系统全面支持安全设备(如防火墙等)、网络设备(如交换机、路由器等)多种产品的系统日志数据的采集和分析。支持对不同日志格式的分类、筛选、最大效率保 存;日志自动导出、导入、删除、备份、恢复等日志管理功能。提供了多样、灵活的日志信息查询,同时支持按用户设定的条件进行不同日志的相关查询,帮助管理 员实现更加全面、深入的分析事件。
日志管理系统主要运用于公司管理员工的日常工作情况,员工每天上班所做的事情都要填写在日志,记录工作信息。员工可以登录日志管理系统,根据自己的信息查询自己的日志信息。项目经理根据员工填写的日志信息进行审批,并将审批的结果返回给员工。
(二)日志管理系统运行环境
1、硬件环境
PC服务器
CPU:1GHz以上
RAM:256M以上
存储容量:剩余存储容量大于100M。
PC工作站
CPU:500MHz以上。
RAM:128M以上。
显示设备:支持1024X768 显示分辨率。
2、软件环境
浏览器:IE9以上
操作系统:Windows2000/7/8以上。
应用软件:Microsoft Word 2003以上、MyEclipse8.6。
数据库: oracle10g。
(三)总体功能描述
1、总体功能概况
总体功能概况主要描述系统的用户需求和具体实现的功能。本系统为日志管理与审批的开发系统,总体功能包括三个用户模块:组员模块、组长模块、项目经理模块。用户根据不同的用户身份进入系统,系统根据权限的不同为用户显示不同的主页面,用户所操作的内容也是不同的。组员是系统中最普通的用户,对个人的日志信息拥有增删改查的基本操作;组长是第二级的用户,除了对个人日志信息有增删改查操作外还有对普通用户的日志审批权限;项目经理是一级用户,对系统有操作的所有权。
本系统根据不同用户有不同的操作权限,具体的用户操作如图1.1 项目总体概况图所示:
日志管理系统
组员模块
组长模块
项目经理模块
填写日志
填写日志
日志审批
修改日志
修改日志
查询日志
查询日志
删除日志
删除日志
图1.1 项目总体概况图
2、日志管理流程图
日志管理流程图主要是描述本系统用户的操作基本流程。如图1.2 日志管理流程图所示:
项目经理
组长
组员
填写日志
填写日志
日志审批
日志审批
审批通过
图1.2 日志管理流程图
3、需求通用规则
1. 描述页面要展现的字段。控件默认是从左到右依次摆放同一基线上。
2. 描述下拉列表中要展现的字段。例如:所有的状态,还是部分状态。
3. 日期居左显示,其他信息居中显示。
4. 数字保留一位小数点 :0.0。
5. 日志详细信息展示页面,查询信息采用模糊查询,根据日期查询,可以只根据开始日期查询,结束日期可以为空。
6. 开始日期不能小于结束日期,开始日期和结束日期任意一个都可以为空。
7. 填写日志为当前登录人所填写的所有日志信息,我的日志为当前登录人所参与的所有日志信息。
8. 如果没有符合输入的查询条件的信息,列表显示为空。
(四)功能性需求描述
功能性需求描述主要是对本系统所拥有的基本功能的详细说明,包括:填写日志和日志审批两大基本主功能以及其增删改查操作。
1、填写日志
1)日志信息查询
1. 点击菜单栏下的日志管理显示填写日志和我的日志,用户点击我的日志在主页面显示用户的日志信息,在每个分页面输入要查询的条件,点击查询,页面列表显示所有符合查询条件的日志信息。
2. 在我的日志页面列表显示姓名、所属项目、所属类型、日期、正常、加班、工作内容、当前状态。
3. 普通员工进入我的日志页面只能查看到自己的日志信息,组长可以查看自己所管辖的所有组员的日志信息,项目经理可以查看所有员工的日志信息。
日志信息查询如图1.3 日志信息查询图所示:
我的日志X
姓名
所属项目
所属类型
日期
正常
加班
工作内容
状态
1
王东波
个人事务类
个人
2015/3/25
7.5
0.0
通过
2
罗宝华
公共事务类
公共
2015/3/26
7.5
0.0
待审批
3
谢粤华
公共事务类
公共
2015/3/27
7.5
0.0
待审批
4
沈运鹏
其他
其他
2015/3/28
7.5
0.0
拒绝
图1.3 日志信息查询图
2)日志信息新增
1. 用户点击菜单栏下的日志管理显示填写日志和我的日志,用户点击填写日志在主页面显示一周的日期时间,点击当天的日期时间展开填写日志页面,用户可以点击新增按钮添加工作日志。
2. 在填写日志页面列表显示日期、正常、加班、合计。
3. 点击新增按钮弹出新增日志窗口,填写完信息后点击保存,对日志信息进行保存。
4. 在新增窗口页面显示姓名、所属项目、所属类型、正常、加班、工作内容。填写日志主界面如图1.4 一周时间展示图所示:
填写日志 X
当前周:
日期
正常
加班
合计
1
2015/3/19 星期四
7.5
0.0
7.5
2
2015/3/20 星期五
7.5
0.0
7.5
3
2015/3/21 星期六
7.5
0.0
7.5
4
2015/3/22 星期日
7.5
0.0
7.5
5
2015/3/23 星期一
7.5
0.0
7.5
6
2015/3/24 星期二
7.5
0.0
7.5
7
2015/3/25 星期三
7.5
0.0
7.5
图1.4 一周时间展示图
新增日志界面如图1.5 日志新增图所示:
日志信息新增
姓名:
所属项目:
所属类型:
工作内容:
正常:
加班:
保存
关闭
图1.5 日志新增图
3)日志信息修改
1. 用户点击菜单栏下的日志管理显示填写日志和我的日志,用户点击填写日志在主页面显示一周的日期时间,点击当天的日期时间展开填写日志页面,用户可以点击修改按钮修改工作日志。
2. 在填写日志页面列表显示日期、正常、加班、合计。
3. 在日期展开页面列表显示姓名、所属项目、所属类型、正常、加班、工作内容、当前状态。
4. 选择要修改的日志信息,点击修改按钮弹出修改日志窗口,并显示出要修改的日志信息,修改完日志信息后点击保存,对日志信息进行保存。
5. 修改窗口页面显示姓名、所属项目、所属类型、正常、加班、工作内容。
修改日志信息界面如图1.6 日志信息编辑图所示:
日志详细信息
姓名:
王东波
所属项目:
个人事务类
所属类型:
个人
工作内容:
上班
正常:
7.5
加班:
0.0
保存
关闭
图1.6 日志信息编辑图
4)日志信息删除
1. 用户点击菜单栏下的日志管理显示填写日志和我的日志,用户点击填写日志在主页面显示一周的日期时间,点击当天的日期时间展开填写日志页面,用户可以点击删除按钮删除工作日志。
2. 在填写日志页面列表显示日期、正常、加班、合计。
3.在日期展开页面列表显示姓名、所属项目、所属类型、正常、加班、工作内容、当前状态。
4. 选择要删除的日志信息,点击删除按钮弹出提示是否删除选择的日志信息窗口,点击是 直接删除选择的日志信息,点击否 取消删除日志信息。
删除日志信息确认提示界面如图1.7 日志信息删除图所示:
确认提示 X
确定
取消
您确定要删除选中所有行?
图1.7 日志信息删除图
2、日志审批
1)日志信息审批
1. 点击菜单栏下的日志管理显示日志审批,点击日志审批在主页面显示要审批的日志信息。
2. 在日志审批页面列表显示姓名、所属项目、所属类型、日期、正常、加班、工作内容、当前状态。
3. 选择要审批的日志信息,点击审批,弹出审批窗口,显示要审批的日志信息,点击确认审批 完成审批。
4. 选择要审批的日志信息,点击驳回,弹出驳回窗口,显示要驳回的日志信息,填写拒绝理由,点击拒绝按钮,日志信息审批不通过。
5. 审批完成在日志审批页面当前状态栏下显示通过,如果驳回显示拒绝。
日志信息审批界面如图1.8 日志信息审批图所示:
图1.8 日志信息审批图
二、系统设计
系统设计包括:架构设计、数据库设计、界面设计、模块设计四个主要的设计模块。
(一)架构设计
架构设计是人们对一个结构内的元素及元素间关系的一种主观映射的产物。架构设计是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。
1、架构原则和策略
1)设计思想
功能需求决定业务构架、非功能需求决定技术构架。功能需求定义了软件能够做些什么,我们需要根据业务上的需求来设计业务构架,以使得未来的软件能够满足客户的需要。非功能需求定义了一些性能、效率上的一些约束、规则。
架构设计的思路:好的架构必须使每个关注点相互分离,也就是说系统中的一部分发生了改变,不会影响其他部分。即使需要改变,也能够清晰地识别出哪些部分需要改变。如果需要扩展架构,影响将会最小化。
架构设计的原则:
1)抽象—架构是现实世界的一个模型,用来实现现实世界到模型的映射。
2)根据实际情况决定不同类间的耦合度。
3)恰到好处—在同样都能够满足需要的情况下,一项简单的设计远比复杂的设计来的直接和有效。
2)架构模式
本系统主要采用B/S[1]架构设计,基于ESSH框架开发即EasyUi[2]+Struts2+Spring[3]+Hibernate[4]结合的框架。
设计模式有:三层结构的层次模式和MVC模式(即 模型-视图-控制)在MVC模式中模型负责数据和其中的规则, 视图负责信息如何展现给用户, 控制则负责处理用户的输入。
2、架构模型
本系统说采用的架构模型有四层,分别为:Easyui +JSP[5]视图层、StrutsAction 控制层、EntityManage业务逻辑层、HibernateDao持久层。它们之间的关系和作用如图2.1 架构模型图所示:
封装Struts2 MVC
EasyUi+JSP
Spring IOC
解耦业务层与服务层
StrutsAction
entity
entity
entity
entity
封装Hibernate实现服务层
EntityMananger
HibernateDao
图2.1 架构模型图
EasyUi +JSP 视图层
就是和用户交互的一层,根据用户的需求设计出用户想要的功能界面视图,用户的具体操作就在该层执行。作用和html差不多,但jsp属于动态网页。
StrutsAction 控制层
控制层主要负责接受来自用户的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给jsp页面。
EntityManager 业务逻辑层
专门负责系统业务逻辑控制,在manager中一般会通过spring的ioc注入dao层类,从而实现业务逻辑中数据入库、出库,事务等都控制在manager层。
HibernateDao 持久层
专门用来对数据进行持久化操作。一般是操作数据库的数据。与逻辑业务层分开,降低了程序的耦合性,维护起来更方便。
3、业务架构
1)功能划分视图
填写日志
日志管理系统包括三个功能模块:填写日志、日志审批、日志明细。如图2.2 功能划分图所示:
日志管理
日志审批
日志明细
图2.2 功能划分图
2)用例图
添加日志
日志管理系统中普通员工登录系统可以进行日志填写和日志明细查询。项目经理登录系统可以进行查询所有的日志信息和对日志进行审批。具体的用例图如图2.3 用例图所示:
修改日志
填写日志
删除日志
登录
日志明细
查询日志
员工
添加审批
日志审批
修改审批
登录
删除审批
日志明细
查询日志
项目经理
图2.3 用例图
(二)数据库设计
一个设计良好的数据库[6],可以使系统的实现变得非常的简单。同时,也可以使系统的执行速度变得很快。反之,一个设计混乱的数据库,不仅增加了吸引的管理实现过程,同时在系统的执行过程中,使得检索变得很慢,降低效率。所以数据库的设计是一个系统设计很重要的步骤。
本系统采用的是Oracle 10g[7]作为数据库,它具有操作简单,安全性高,结构清晰等优点。以下是对系统中所要用的数据库的一些基本的命名规则和对数据库表进行的详细设计说明。
1、数据库的命名规则
1. 数据库表名,字段名由大写的英文命名。
2. 私有变量用下划线开头的小写英文命名,其他的变量用大写英文字母开头。
3. 所有的函数用大写英文字母开头。
4.避免使用常用的名称空间(Name5pace)中的类型名称(ClassName)。
5.避免使用与常用关键词(Koywords)有冲突的标识符(ldentifier)。
6.变量采取加前缀组合方式。
7.属性用名词或名词短语命名属性。
2、日志管理系统数据库表
1)LOG_DATE表(日志表)
日志表主要是记录用户在填写日志时的基本信息。包括:所属项目、所属类型、工作内容、正常上班时间、加班时间、日志填写时间等。具体的数据库字段设置如表2-1 日志表所示:
表2-1 日志表
表名
LOG_DATE
列名
数据类型(精度范围)
空/非空
约束条件
ID
NUMBER(19)
否
CREATE_TIME
TIMESTAMP(6)
是
CREATE_USER
VARCHAR2(36 CHAR)
是
STATUS
NUMBER(10)
是
续表2-1 日志表
列名
数据类型(精度范围)
空/非空
约束条件
UPDATE_TIME
TIMESTAMP(6)
是
UPDATE_USER
VARCHAR2(36 CHAR)
是
VERSION
NUMBER(10)
是
PROJECT
VARCHAR2(32 CHAR)
是
CONTENT
VARCHAR2(32 CHAR)
是
NORMAL
NUMBER
是
OVERTIME
NUMBER
是
TYPE
VARCHAR2(32 CHAR)
是
LOG_DATE
DATE
是
NAME
VARCHAR2(36 CHAR)
是
补充说明
2)LOG_TEAM(组员信息表)
组员信息表主要记录每组员工的基本信息。包括:姓名、性别、职务、所在组等。具体的数据库字段设置如表2-2 组员信息表所示:
表2-2 组员信息表
表名
LOG_TEAM
列名
数据类型(精度范围)
空/非空
约束条件
LOG_USER_ID
NUMBER(19)
否
LOG_ID
NUMBER(19)
是
CREATE_TIME
TIMESTAMP(6)
是
CREATE_USER
VARCHAR2(36 CHAR)
是
STATUS
NUMBER(10)
是
UPDATE_TIME
TIMESTAMP(6)
是
UPDATE_USER
VARCHAR2(36 CHAR)
是
VERSION
NUMBER(10)
是
NAME
VARCHAR2(36 CHAR)
是
PASSWORD
VARCHAR2(64 CHAR)
是
SEX
NUMBER(10)
是
JOB
VARCHAR2(36 CHAR)
是
TEAM
VARCHAR2(36 CHAR)
是
补充说明
3)T_BASE_ROLE(角色表)
角色表主要记录用户所能操作的权限内容。包括:角色姓名、角色操作的具体内容。具体的数据库字段设置如表2-3 角色表所示:
表2-3 角色表
表名
T_BASE_ROLE
列名
数据类型(精度范围)
空/非空
约束条件
ID
NUMBER(19)
否
CREATE_TIME
TIMESTAMP(6)
是
CREATE_USER
VARCHAR2(36 CHAR)
是
STATUS
NUMBER(10)
是
UPDATE_TIME
TIMESTAMP(6)
是
UPDATE_USER
VARCHAR2(36 CHAR)
是
VERSION
NUMBER(10)
是
DESCRIPTION
VARCHAR2(255 CHAR)
是
NAME
VARCHAR2(36 CHAR)
是
补充说明
4)T_BASE_MENU(菜单表)
菜单表记录的是功能界面菜单的信息。具体的数据库字段设置如表2-4 菜单表所示:
表2-4 菜单表
表名
T_BASE_MENU
列名
数据类型(精度范围)
空/非空
约束条件
ID
NUMBER(19)
否
CREATE_TIME
TIMESTAMP(6)
是
CREATE_USER
VARCHAR2(36 CHAR)
是
STATUS
NUMBER(10)
是
UPDATE_TIME
TIMESTAMP(6)
是
UPDATE_USER
VARCHAR2(36 CHAR)
是
VERSION
NUMBER(10)
是
ICO
VARCHAR2(255 CHAR)
是
MARK_URL
VARCHAR2(255 CHAR)
是
NAME
VARCHAR2(36 CHAR)
是
ORDER_NO
NUMBER(10)
是
TYPE
NUMBER(10)
是
URL
VARCHAR2(255 CHAR)
是
补充说明
5)T_BASE_USER(用户表)
用户表记录的是用户的基本信息。包括:姓名、性别、登录名、电话号码、地址、邮箱等。具体的数据库字段设置如表2-5 用户表所示:
表2-5 用户表
表名
T_BASE_USER
列名
数据类型(精度范围)
空/非空
约束条件
ID
NUMBER(19)
否
CREATE_TIME
TIMESTAMP(6)
是
CREATE_USER
VARCHAR2(36 CHAR)
是
STATUS
NUMBER(10)
是
UPDATE_TIME
TIMESTAMP(6)
是
UPDATE_USER
VARCHAR2(36 CHAR)
是
VERSION
NUMBER(10)
是
ADDRESS
VARCHAR2(255 CHAR)
是
EMALL
VARCHAR2(255 CHAR)
是
LOGINNAME
VARCHAR2(32 CHAR)
是
MOBILEPHONE
VARCHAR2(255 CHAR)
是
NAME
VARCHAR2(32 CHAR)
是
PASSWORD
VARCHAR2(64 CHAR)
是
SEX
NUMBER(10)
是
TEL
VARCHAR2(255 CHAR)
是
补充说明
3、触发器定义
<!-- Cron式Trigger触发器定义 -->
<bean id="testTaskTgr" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="testTaskCjd"/>
<!-- 0 0 0/1 * * ? 每小时0分0秒触发一次 -->
<property name="cronExpression" value="0 0/1 * * * ?"/>
</bean>
(三)界面设计
主界面是一个网站的门面,如同公司的形象,特别注重设计和规划。它是用户首先见到的界面,它的好坏直接影响到网站的访问率。为此,从以下几个方面对主界面进行了设计。
1.在色彩搭配上,一种较明快的色彩为基调,配以相关的其他色彩,给用户一种鲜而不艳的美感。
2. 在字体选用上,大小适当,尽量使用常用字体,适当配用艺术字。
3. 在网页制作上,采用框架式结构,在框架中嵌入子页,将大表化小,图片压缩,尽量减少页面响应时间。
4. 在内容上,主界面内容充实而不繁杂,既体现本站特色,又能满足用户需要。
本系统采用easyui 和jquery[8] 脚本来进行界面的设计、布局、数据验证等操作。这能够极大的减少代码量的编写,使得界面的设计更加方便,而且界面的修改也简单,提高了界面的优化。
系统主界面的界面设计如图2.4 主界面设计图所示:
填写日志 X
当前周:
日期
正常
加班
合计
1
2015/3/19 星期四
2
2015/3/20 星期五
3
2015/3/21 星期六
4
2015/3/22 星期日
5
2015/3/23 星期一
6
2015/3/24 星期二
7
2015/3/25 星期三
图2.4 主界面设计图
(四)模块设计
模块设计主要是对一个功能模块具体代码实现及各个代码页面之间的跳转。
1、日志模块
点击菜单栏下的日志管理显示jsp 页面包括:填写日志、我的日志、日志审批。普通员工登录系统可以操作填写日志、我的日志;组长和项目经理还可以操作日志审批。
员工进入填写日志页面点击新增弹出新增日志窗口,通过LogAction的save方法和Manager层执行sql语句将填写的日志信息保存到数据库中。编辑同样调用save方法,点击删除调用remove方法。在我的日志可以查询日志信息,调用LogAction的search方法和Manager层的sql查询语句进行模糊查询,将符合条件信息展现在主页面。组长和项目经理还可以对员工填写的工作日志进行审批。
1)date.jsp
date.jsp页面主要与用户进行交互,用户所能进行的所有的操作都是在jsp页面完成。包括主页面的信息显示和进行增删改查的form表单提交以及和LogAction进行页面跳转的操作。
填写日志的主界面如图2.5 填写日志主界面图所示:
填写日志 X
当前周:
日期
正常
加班
合计
1
2015/3/19 星期四
7.5
0.0
7.5
2
2015/3/20 星期五
7.5
0.0
7.5
3
2015/3/21 星期六
7.5
0.0
7.5
4
2015/3/22 星期日
7.5
0.0
7.5
5
2015/3/23 星期一
7.5
0.0
7.5
6
2015/3/24 星期二
7.5
0.0
7.5
7
2015/3/25 星期三
7.5
0.0
7.5
图2.5 填写日志主界面图
2) Log
Log 实体类定义了日志的相关字段属性以及各属性的get、set 方法,并且在实体类中必须包含一个无参的构造方法和一个带参的构造方法用来将属性的值封装。具体代码实现内容如表2-6 实体表所示:
表2-6 实体表
类功能描述:
Log.java 定义各字段和初始化各字段的属性和方法。
所在包名称:
com/eryansky/entity/base
继承对象:
BaseEntity
实现对象:
Serializable
类属性
属性类型
属性名称
属性描述
其他
Int
Id
唯一标识符
String
Name
姓名
Strng
Project
所属项目
String
Content
工作内容
Double
Normal
正常
续表2-6 实体表
类属性
属性类型
属性名称
属性描述
其他
Double
Overtime
加班
String
Type
所属类型
Date
Log_date
时间
主要实现方法
构造方法:Public Log(String name, String project, String content, double normal,double overtime, String type, Date logDate)和各个属性的getter和setter方法。
方法名
输入
输出
方法功能描述
Log
Null
Null
无参构造方法用来实现有参的构造方法
Log
各个属性
Null
封装各个属性的值。
3) LogAction
对日志的增删改查操作在jsp 页面通过url 地址请求跳转到LogAction 类和它的继承类 StrutsAction 中相对应的方法,在action 中创建了相对应的各方法。具体代码实现如表2-7 Action方法表所示:
表2-7 Action方法表
类功能描述:
LogAction.java 创建进行增删改查操作的各个方法。
所在包名称:
/src/com/eryansky/web/base
继承对象:
StrutsAction
实现对象:
类属性
属性类型
属性名称
属性描述
其他
Sting
Date2
存放日期
LogManager
logManager
日志manager对象
主要实现方法
logManager的get/set方法和date2的get/set方法。
方法名
输入
输出
方法功能描述
getDate()
Null
List对象
获取时间的方法
date()
Null
List对象
封装属性数据的方法
save()
新增输入属性值;修改输入id
日志
执行新增和修改方法
viewDetail()
Null
List对象
获取日志详细信息的方法
userList()
Null
List对象
获取填写日志的用户姓名
4) LogManager
Manager 类是在 action 方法中调用 manager 层的sql 语句和Hibernater 层的sql 语句,将在页面对数据的增删改操作保存在数据库中。具体代码实现内容如表2-8 Manager 表所示:
表2-8 Manager表
类功能描述:
LogManager.java 创建执行增删改查的sql语句的方法。
所在包名称:
/src/com/eryansky/service/base
继承对象:
EntityManager
类属性
属性类型
属性名称
属性描述
其他
HibernateDao
logDao
Hibernater对象
主要实现方法
setSessionFactory(SessionFactory sessionFactory)
方法名
输入
输出
方法功能描述
getLogByname()
时间
根据时间查询的数据
根据时间年/月/日查询所有数据列
getDateById()
Id
时间对象
根据ID查询时间
getUserByLP()
姓名、项目、时间
List对象的查询数据
根据姓名、项目、时间查找用户
三、编码实现
编码实现阶段主要是通过编写代码来实现用户需求和所设计出来的具体功能模块。其中包括:编码规范、算法分析与实现、系统调试与单元测试。
(一)编码规范
制定编码规范的最主要的目的是为了对产出代码的长期维护。通常负责维护代码的人大多都不是开发者本人,如果有一个统一的代码格式以及说明就可以减少混淆提高理解速度。
1、范围
编码规范定义了所有代码编写者在编写Java[9]代码时应遵守一些规则和习惯。
本规范采用以下术语描述:
1)规则:编程时强制必须遵守的原则。
2)建议:编程时必须加以考虑的原则。
3)示例:对此规则或建议给出例子。
2、文件命名规则
1)Struts2配制文件命名
struts-模块名.xml。
2) java文件命名
TApple.java 或者TAppleBoy.java 实体域模型文件,Apple,Boy均为指代
AppleAction.java action文件
AppleService.java service接口文件
AppleServiceImpl.java service接口实现文件
apple_main.jsp apple为对应的AppleAction名,主文件
apple_xxx.jsp ,apple_boy_xxx.jsp xx命名详见附录A:词典规范
3、注释规则
1)类注释规则
使用JavaDoc,列出功能、版本信息、日期、作者和版权声明。
示例:
/**
*
* <p>Title: 缴费</p>
* <p>Description: 缴费</p>
* <p>Copyright: Copyright (c) 2006</p>
* <p>Company: SI-TECH </p>
* @author xxxx
* @version 1.0
*/
2)类方法注释规则
使用JavaDoc。
示例:
/**
* @param CustID: 客户ID
* @return 返回用户的单位信息
* @throws Exception
*/
3)块注释规则
1. 方法内部的块注释位于所描述内容之前。
2. 块注释前留一行空行。
示例:/*
* 这里是块注释
*/
4)单行注释规则
1. 单行注释位于所描述内容之前。
2. 单行注释之前留一行空行。
3. 单行注释和所描述代码具有一样的缩进格式。
4. 注释不能在一行写完时,就采用块注释。
示例://这里是单行注释。
4、命名规
展开阅读全文