基于Struts2框架的超市人事工资管理系统
摘要:
由于计算机技术的飞速发展,网页与数据库技术作为数据管理的一个重要手段,在各行各业中得到了广泛的应用。本文基于Struts2框架技术,利用MyEclipse8.5和MySQL数据库制作了一个超市人事工资管理系统。该程序设计过程遵循软件设计的严密性原理,主要介绍了普通用户和管理员二级权限登录,并讲述了程序的总体设计、以及对数据需求进行分析。通过美化的界面,来提供用户友好性网页设计;通过详细的程序设计,来完善管理员的功能。利用MySQL的强大数据库功能,不断对程序进行修改形成了一个较为完善的、具有可行性、界面美观的超市人事工资管理系统。
关键字:管理系统,Struts2框架,MySQL数据
1 项目简介与分工
本文基于Struts2框架制作了超市人事工资管理系统,通过对数据进行需求分析,对该程序进行逻辑设计与代码实现,完善了超市人事工资管理系统,以下为该程序的简介和项目分工。
1.1 项目简介
该超市人事工资管理系统基于Struts2框架技术,利用MyEclipse8.5、tomcat6.0、jdk1.7和MySQL数据库对代码进行实现。整个程序基于软件开发设计谨慎、安全、用户友好的原则,利用数据库技术来实现对于数据的存储与记录。从美化界面的角度上来讲,该程序应用Dreamweaver CS6软件进行页面美化,利用DIV+CSS样式,使整个页面美观大方,实现了管理内网站的基本功能,符合管理系统自身应具备的特点。
1.1.1 数据库设计
数据库设计真实考虑到用户的需求,从数据分析角度上,按照不同的数据分类对数据库表进行分类,使得数据信息有效的反应整个程序中所存储的数据,便于程序代码的实现。
1.1.2 静态页面
静态页面采用DIV+CSS样式进行布局和制作,整个页面动态效果与特效相结合,采用Frame框架来对整体页面进行布局,页面大方;导航栏固定于页面的左侧,有效的为管理员和普通用户提供简洁的操作界面。
1.1.3 功能实现
该程序是基于Struts2框架技术的超市人事工资管理系统,由于是管理系统,对于超市内员工的增加删除和修改,实现了对于用户的添加、修改用户信息和当员工辞职时对员工的删除操作,管理员工对于工资薪酬方面的留言;管理员可发布新闻,对新闻进行管理;管理员可添加部门职位,对于部门进行调整,计算部门内职员的工资;可对管理员和普通用户的密码进行修改;管理员可对员工的考勤记录进行添加和查询,通过考勤记录计算员工工资。该程序实现了普通用户登录,普通用户可浏览超市主页,进行申请假期、查看管理员发布的通知、查看超市员工风采、对超市进行评价等操作。
该程序实现了超市人事工资管理系统的基本功能,完善了相应的代码结构,具有可行性。
1.2 项目分工
组内成员 | 分工 |
A |
|
B |
|
C |
|
D |
|
2 项目设计方案
该系统为超市人事工资管理系统,管理员将对员工基本信息、考勤、请假信息和工资、部门基本信息、员工留言、管理员新闻发布进行管理,同时可实现管理员基本功能,即对于用户和管理员账号密码进行修改。
图2-1 超市人事工资管理系统流程图
2.1 登陆界面
登陆到超市人事工资管理系统的界面,首先进入到超市管理系统的首页。
2.1.1 数据库设计
表2-1登陆表admin
名 | 类型 | 长度 | 小数点 | 允许空值 | 是否主键 |
adId | int | 3 | 0 | 否 | 主键 |
managename | char | 20 | 0 | 否 |
|
password | char | 8 | 0 | 否 |
|
2.1.2 页面设计
访问超市人事工资管理系统的主页。
http://localhos:8080/RSuperMarket/index,显示当前超市人事工资管理系统的首页,点击超链接,访问到登陆界面。如图2-2、图2-3。
图2-2 超市管理系统
图2-3 管理员登录
2.2 管理员主界面
设计方案:
管理员由登陆界面跳转到管理员主界面,(设置相应的拦截器,只允许管理员从登陆界面访问到主界面,不允许非法访问链接)整体页面由top、left、down、main四个框架组成,在左侧框架作为导航栏,在首部框架显示超市信息和动态获取当前时间,页面设计如图2-4。
图2-4 管理员主界面
2.3 员工管理
员工管理部分分为添加员工、员工管理(修改员工信息、删除员工),员工留言管理三个模块。
2.3.1 数据库设计
表2-2员工表staff
名 | 类型 | 长度 | 小数点 | 允许空值 | 是否主键 |
id | int | 1 | 0 | 否 | 是 |
name | varchar | 20 | 0 | 否 |
|
sex | char | 10 | 0 | 否 |
|
age | char | 3 | 0 | 否 |
|
positionname | varchar | 20 | 0 | 是 |
|
study | varchar | 50 | 0 | 是 |
|
ydidentity | varchar | 20 | 0 | 是 |
|
dpname | varchar | 50 | 0 | 是 |
|
2.3.2 设计方案
[1]添加员工
通过设计静态页面,采用运用表单,嵌套表格的形式,实现对于员工的增加,其中员工的基本信息均显示到此页面(图2-5)。
图2-5 添加员工
[2]管理员工
通过设计三个图片超链接,跳转到相应的增加、删除、修改、查询界面,与数据库中数据进行匹配,实现管理员对于超市员工的个人信息的修改和删除、查询。
图2-6 员工管理
[3]显示员工列表
图2-7 显示员工列表
2.4 考勤业绩管理
考勤业绩管理部分包括添加考勤信息和考勤信息管理两个模块。其中,考勤信息管理中包括对于员工出勤情况进行考察,同时可以显示员工请假情况。
2.4.1 数据库设计
表2-3出勤表attendance
| |||||
| |||||
| |||||
| |||||
|
| |||||
| |||||
| |||||
| |||||
| |||||
| |||||
|
2.4.2 设计方案
考勤设计模块通过设计静态页面,点击左侧导航栏链接到新的页面,进行增加考勤记录并显示考勤。由管理员记录员工请假情况,添加到数据库中,并显示到页面中。显示员工考勤信息,该信息由普通员工登陆界面进行提交相应的员工请假信息。通过数据库获取数据,显示在管理员界面。(图2-8、图2-9)
图2-9考勤记录信息
2.5 工资管理
2.5.1 数据库设计
| |||||
| |||||
| |||||
| |||||
| |||||
| |||||
| |||||
| |||||
| |||||
|
2.5.2 设计方案
如图2-10显示自动计算工资:
图2-10 自动计算员工工资
如图2-11显示工资信息
图2-11 显示工资信息
2.6 部门职位管理
部门工资管理模块包括添加部门、部门管理、部门简介三个部分。通过连接数据库,实现管理员对于超市内部部门的调整操作。
2.6.1 数据库设计
| |||||
|
2.6.2 设计方案
[1]添加部门
图2-12 添加部门
[2]如图2-13显示部门管理显示列表
图2-13 显示管理员
[3] 如图2-14显示部门简介
图2-14 部门简介
2.7 系统管理
对于超市人事工资管理系统,除对于超市内部进行管理之外,该系统具备一般管理系统具有的功能,可对整个系统进行管理。系统管理模块主要包括对于管理员和员工账号密码的修改,并实现退出系统的操作。
设计方案:通过静态页面的设计,可对管理员修改密码时进行选择,选择修改管理员的密码还是普通用户的密码。通过查询数据库,显示相应的列表,提供修改和删除的链接,对修改密码进行管理。(图2-15、图2-16)
图2-15选择修改对象的密码
图2-16获取管理员密码,提供修改超连接的页面
2.8 管理员发布新闻
管理员可发布新闻,并通过触发action,与数据库匹配,调用其方法,发布新闻。
2.8.1 数据库设计
表2-7新闻表news
名 | 类型 | 长度 | 小数点 | 是否为空 | 是否主键 |
newsID | int | 10 | 0 | 否 | 是 |
newsTitle | varchar | 20 | 0 | 否 |
|
newsContent | varchar | 50 | 0 | 否 |
|
2.8.2 设计方案
图2-17管理员发布新闻的页面
2.9 超市普通用户界面
普通用户可直接访问超市主页,并通过导航栏显示,进行查看员工风采、查看管理员发布的通知、填写请假条、为超市书写评价。
2.9.1 数据库设计
表2-8用户表 user
名 | 类型 | 长度 | 小数点 | 是否为空 | 是否主键 |
userid | int | 1 | 0 | 否 | 是 |
username | varchar | 10 | 0 | 否 |
|
userpass | varchar | 10 | 0 | 否 |
|
2.9.2 设计方案
[1] 主页
图2-18 普通用户登录主页
[2] 员工风采
图2-19 显示员工风采
[3] 查看通知
图2-20 普通员工查看通知
[4] 填写请假条
图2-21 填写请假条
[5] 表白树
图2-22 表白树
3 项目功能实现
该超市人事工资管理系统在经过以上设计方案之后,具备可行性,通过代码进行实现,JSP页面触发action,调用其class类中的方法,与数据库中的方法进行匹配,实现页面的跳转与数据的传参。
3.1 主要应用技术
该程序是基于Struts2框架技术的超市人事工资管理系统。Struts2以WebWork优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web 应用程序框架。Struts2引入了几个新的框架特性:从逻辑中分离出横切关注点的拦截器、减少或者消除配置文件、贯穿整个框架的强大表达式语言、支持可变更和可重用的基于MVC模式的标签API, Struts2充分利用了从其它MVC框架学到的经验和教训,使得Struts2框架更加清晰灵活。
Struts2框架技术通过JSP页面触发action,调用action中class类中方法,与数据库中的相应方法进行匹配,实现页面的传参与跳转,达到一定的页面效果,通过将MVC三层框架分开,使得整个网页逻辑较强,使框架更为清晰。
3.2 配置struts.xml文件
<package name="admin" namespace="/admin" extends="struts-default">
<action name="admin" class="supermarket.action.AdminAction" method="list">
<result name="adlist">/adminPassword.jsp</result>//跳转成功的结果页面
<result name="error">/error.jsp</result>//跳转错误的结果页面
</action>
</package>
3.3 实现对于数据库的增删改查
public List<Notice> list(){
List<Notice> noticeList = new ArrayList<Notice>();
try {
Class.forName("com.mysql.jdbc.Driver");//加载驱动串
conn = DriverManager.getConnection("jdbc:mysql://localhost/supermarket", "root", "root");//连接数据库
PreparedStatement ps = conn.prepareStatement("select * from staff order by id desc;");//预处理SQL语句
ResultSet rs = ps.executeQuery();//结果集
while(rs.next()){
Notice n = new Notice();
n.setId(rs.getInt("id"));
n.setName(rs.getString("name"));
n.setAge(rs.getInt("age"));
noticeList.add(n);//将查询结果放入list
}
rs.close();//关闭rs
ps.close();//关闭ps
conn.close();//关闭连接
} catch (ClassNotFoundException e) {//抛出异常
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return noticeList;//返回值
}
3.4 Action类调用匹配的方法
public class NoticeAction extends ActionSupport{
private Notice notice;
private List<Notice> list;
private int id;
private Service service = new Service();
并构造对象的set()和get()方法
public String list(){
list = service.list();
return "list";
}
}
3.5 model对于实体进行实例化
public class Notice {
private int id;
private String name;
private int age;
private String sex;
private String positionname;
private String study;
private String ygidentity;
private String dpname;
并构造对象的set()和get()方法
}
3.6 功能实质为对数据库的增删改查
<s:url action=”admin” namespace=”/admin”/>绝对地址引用action
action=”<%=basePath%>attendance/update” method=”post”
4 项目总结及展望
4.1 项目总结
随着信息技术的发展,超市人事工资管理是超市管理信息化、现代化的关键,本设计的开发过程中采用了MVC的设计模式,利用Struts2框架技术来完成系统的设计,并且对系统应有的功能给予实现。
主要完成了:
(1)对系统进行了详细的分析,实现了模块的划分及分析其功能。
(2)以JSP技术为开发支持,以MySql为后台数据库,基于Struts2框架技术设计了一个三层结构下的管理系统的层次模型。
(3)应用Photoshop软件对图片进行处理,应用Dreamweaver CS6软件进行页面美化,利用div+css样式,使整个页面美观大方。
(4)实现了超市人事工资管理中的所有基本功能。完成了管理员对于超市内部部门和员工的管理,同时完成了管理员对于系统的管理;普通用户实现了浏览超市主页的功能,完成了基本的页面。
4.2 项目展望
通过本次项目开拓了我们的视野,让我们对开源框架有了更清晰的认识。但项目的结束不意味着我们的项目就到此为止,在今后的日子里,我们还将对项目进行不断的完善和改进:
(1)改进人事工资计算结构,增加超市员工个人绩效工资的计算以及公示功能。起到人事工资透明化作用的同时,并能促进员工之间的竞争,提高工作效率。
(2)优化项目资源以及代码效率,消除系统使用过程中占用资源过多以及效率较低的现象。
(3)加强系统的安全性和稳定性,绝对避免因BUG导致的系统数据丢失、错误或系统崩溃等问题。
(4)优化页面,为用户提供更为方便快捷的导航栏,实现更为简单的操作,提供更为友好的用户页面,对于登录,完善相关代码,实现更具安全性的超市人事工资管理系统的登录。
(5)完善超市人事工资管理系统的功能,对相应模块的功能进行整合与归纳,使整个程序的框架更为清晰,使整个页面的效果更为合理化。
参 考 文 献
1 肖慎勇. 数据库及其应用[M]. 北京:清华大学出版社,2007.
2 明日科技.JSP项目开发案例全程实录(第2版)[M].清华大学出版社,2011.
3 王国辉, 王毅等.JSP程序开发宝典[M].人民邮电出版社, 2007.
4 蒋海昌.Java Web设计模式之道[M].清华大学出版社, 2012.
5 崔群法,王咏梅,李有军. Struts2.0从入门到精通[M]. 电子工业出版社,2009年1月.
6 前沿电脑图像工作室. 巧学巧用Dreamweaver制作网页[M]. 北京:人们邮电出版社,2011.