员工管理系统
课程设计说明书
课程名称: 数据库课程设计 题 目: 员工管理系统
院 系: 理 学 院
专业班级:信息与计算科学11-2班
学 号: 2011304964 学生姓名: 李 丽 指导教师: 柳文涛
2014年 1 月 15 日
安徽理工大学课程设计(论文)任务书
年 月 日
安徽理工大学课程设计(论文)成绩评定表
摘要
随着知识经济的来临,计算机技术,网络技术和信息技术已经广泛的应用于社会的各个方面, 给现代人的生活、工作带来了巨大的变化。企业的员工管理正朝着追求高效,低成本,稳定可靠的发展方向,为此目的,企业需要一个功能完善,性能稳定的员工管理系统。其主要目的是通过计算机对员工的各种信息进行管理和维护。员工管理系统共完成了员工资料情况进行添加、查询、修改和删除操作。员工名册信息的报表查询可添加新的用户以及修改用户原有的用户名、删除原有用户,查询员工基本信息等功能。论文描述的系统的实现过程。 关键字:Myeclipse ;JA V A ;MySql ;员工管理
Abstract
With the advent of the knowledge-based economy,computer technology,network technology and information technology has been widely used in all aspects of modern society,which brings great change to our modern lives and work.The management of enterprise employee is developed to the direction of efficient,low-cost,reliable and stable.For this propose,enterprises need an employee management system being perfection,stable performance.It main goal is carries on the management and the maintenance through the computer to enterprise staff’s each kind of information.The employee management system completed a total staff to add information on the situation,query,modify,and delete operation.Staff roster information statements and inquiries can add new users and set permissions,users modify the original user name,password,delete the original user.The paper describes the implementation of the system.
Keywords :Myeclipse;JAV A;MySql;Employ management
目录
1 绪论.............................................................. 1
1.1 引言 ........................................................ 1 1.2 开发背景 .................................................... 1 1.3 本论文的目的、内容 .......................................... 1
1.3.1 目的................................................... 1 1.3.2 内容................................................... 1
2 需求与功能分析.................................................... 2 3 系统可行性分析.................................................... 2
3.1 技术可行性分析 .............................................. 2 3.2 经济可行性分析 .............................................. 2 3.3 管理可行性分析 .............................................. 2 4 系统总体设计...................................................... 3
4.1 功能描述 .................................................... 3 4.2 系统功能模块流程图 .......................................... 3
4.2.1 登陆功能............................................... 3 4.2.2 主要功能............................................... 3
5 数据库设计........................................................ 4
5.1系统存在的实体、属性......................................... 4 5.2 ER模型图.................................................... 4 5.3 ER模型图转换为关系表 ....................................... 5 6 详细设计.......................................................... 5
6.1主要代码设计................................................. 5
6.1.1 DAO部分代码 ........................................... 5 6.1.2 JSP部分代码 .......................................... 11 6.2 系统运行界面 ............................................... 14 7 总结与展望....................................................... 16 参考文献........................................................... 17
1 绪论
1.1 引言
全球范围内的企业内部组织正在发生巨变,未来企业成功的关键的依靠企业人力资源,人才之争已经成为市场竞争中的核心内容之一,以人为本成为企业立足和发展的根本。有效力管理企业的人力资源,为企业提供强有力的储备力量,使之成为企业发展的主动力。通过人力资源的有效管理,掌握最新的、准确的企业人力资源信息,并对其进行复杂的统计与分析,从而充分发挥每个员工的潜能,为企业创造更大的价值。从而员工管理系统则有着至关重要的作用,对其的研究也有着重要的意义。 1.2 开发背景
管理信息系统是我们常说的MIS ,在强调管理,强调信息的现代社会中它变
的越来越普及。而将信息管理系统与企业自动化设备相结合,则是当今现代企业的发展趋势。通过这样的管理方式,企业管理人员、技术人员、统计人员等各部员工就能从大量繁琐的资料和数据中解脱出来,只需要对自己需要的数据和内容进行必须的处理,而不用对每个环节都了如指掌。这在一定程度上能节省人力物力,同时也大大加强了对数据处理的及时性和准确性。因此,开发一套检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低这样的管理软件成为很有必要的事情。 1.3 本论文的目的、内容 1.3.1 目的
企业在面临全球化、高质量、高效率的工作系统挑战中,员工管理显得更为重要。通过一个先进的、完善的员工管理系统,使企业的工作系统化、规范化、自动化,从而达到提高企业管理效率的目的。
目前市面上流行的人事管理系统不少。但是,对于企业、事业单位的员工管理系统来说,不需要大型的数据库系统。只需要一个操作方便,功能实用,能满足本中心对数据的管理及需求的系统。我们的目标就是在于开发一个功能实用、操作方便,简单明了的人事管理系统。 1.3.2 内容
能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方面的工作,基本满足人事日常业务的需要。
2 需求与功能分析
系统分析是开发管理信息系统的关键性阶段,是从一个不断认识和逐步细
化的过程,是下一阶段的工作基础,是为下一阶段进行物理方案设计、解决“怎么做”提供依据,其关键性主要体现在“理解需求”和“表达需求”两方面。
通过对现行系统的详细调研,主要是从系统的角度理解用户的需要,确定新系统的要做什么,做到什么程度。这些需求包括:
1、功能需求。确定新系统应做什么,这是最主要的需求。
2、性能需求。给出所开发的新系统的技术性能指标,包括存储量限制、运行时间限制、安全保密性等。
3、环境需求。这是对系统运行以及所处环境的要求。例如,在硬件方面采
用什么机型、有什么硬件设备等;在软件方面,采用什么支持系统运行的系统软件(指操作系统、数据库管理系统)。
3 系统可行性分析
可行性分析是在用户的要求和系统调研的基础上进行的,对新系统的开发从
技术、经济。管理等方面进行分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析。 3.1 技术可行性分析
技术可行性分析是根据新系统的目标来衡量是否具备所需要的技术,包括系统开发人员数量和水平,软件方面及其它应用技术。
3.2 经济可行性分析
经济可行性分析主要是对开发新系统所投入的资金与系统投入使用后所带来的经济效益进行比较,确认新系统是否会给企业带来一定的经济效益。
3.3 管理可行性分析
管理可行性分析主要是分析企业现行的管理体制和企业领导是否具有现代
化的管理意识和管理水平。
4 系统总体设计
4.1 功能描述
在人才过剩的今天,企业对于有用人才的需求逐渐加大,企业内部的人事变动和部门规划也开始加速,传统的人事档案已经不能满足各个企业的人员流动速度,迫使人们使用心得管理方法来管理员工相关信息。科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。信息化时代的到来成为不可抗拒的潮流,人类文明正在进入一个新的时代。因此,员工管理系统也以方便、快捷、费用低、绿色环保的优点正慢慢进入各个行业和领域,将传统的员工管理方式彻底解脱出来,提高效率,减轻人员以往繁忙的工作,加速信息的更新速度,使企业管理层第一时间了解到员工的信息,从而进一步的进行对员工的调配。
功能需求: (1)增加
增加员工的基本信息、薪资信息 (2)删除
可根据员工的编号的删除 (3)修改
用户可以对员工的姓名和薪资进行修改 (4)查询
用户可以根据编号准确的查到要找的员工 4.2 系统功能模块流程图 4.2.1 登陆功能
登录功能:通过输入用户名和密码实现登录。当用户名和密码正确时进入系统,当用户名或者密码输入错误,则提示错误信息并在本页面重新登录。 4.2.2 主要功能
登录员工管理系统后,可以对员工进行系统管理,包括查看所有员工,查询单个员工信息,增加,修改和删除等操作。
⑴查看所有员工:在所有员工列表的基础上,通过分页形式查看,每页显示5条记录。点击首页,下一页,上一页和尾页分别查看不同的记录。 ⑵查询操作:输入员工的编号进行查询,可以查看员工的所有信息。 ⑶增加操作:增加一位员工的完整信息,添加成功或者失败都将跳转到员工列表页面进行查看。
⑷修改操作:点击修改键,显示该员工的信息,在员工编号固定的情况下,修改其他信息。
⑸删除操作:输入你要删除的员工编号进行删除,删除成功或者失败都将跳转到员工列表页面进行查看。
5 数据库设计
5.1系统存在的实体、属性
实体:管理员,员工
属性:编号,姓名,工作,雇佣日期,薪资
5.2 ER模型图
图5-1 ER模型图
5.3 ER模型图转换为关系表
表5-1 member表
表5-2 emp表
6 详细设计
6.1主要代码设计
本系统采用DAO+JSP模式完成。 6.1.1 DAO 部分代码 ⑴管理员member 类 package cn.lzd.vo;
import java.io.Serializable; import java.util.Date;
public class implements Serializable {
private String userid ; private String password ; private Date lastlogin ; public String getUserid() {
return userid ;
} public void setUserid(String userid) { } public String getPassword() { } public void setPassword(String password) { } public Date getLastlogin() { } public void setLastlogin(Date lastlogin) { } this . lastlogin = lastlogin; return lastlogin ; this . password = password; return password ; this . userid = userid;
⑵数据库连接代码
package cn.lzd.dbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseConnection {
private static final String DBDRIVER ="com.mysql.jdbc.Driver" ; private static final String DBURL ="jdbc:mysql://localhost:3306/jspdemo"; private static final String DBUSER ="root" ; private static final String DBPASS ="123456" ; private Connection conn =null ; public DatabaseConnection(){ try { Class. forName (DBDRIVER );
} } // TODO : handle exception } catch (Exception e) { public Connection getConn(){ }
if (this . conn !=null ){
} try { } this . conn .close(); // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { return this . conn ; public void close(){
}
}
⑶员工操作的实现类
package cn.lzd.dao.impl;
import java.sql.Connection;
import import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import cn.lzd.dao.IEmpDAO;
import cn.lzd.vo.Emp;
public class EmpDAOImpl implements IEmpDAO {
@Override public boolean doUpdate(Emp vo) throws Exception { // TODO Auto-generated method stub String sql="UPDATE emp SET ename=?,job=?,hiredate=?,sal=? WHERE pstmt =conn .prepareStatement(sql); pstmt .setString(1, vo.getEname()); pstmt .setString(2,vo.getJob()); pstmt .setDate(3, new java.sql.Date(vo.getHiredate().getTime())); pstmt .setDouble(4,vo.getSal()); pstmt .setString(5, vo.getEmpno()); private Connection conn =null ; private PreparedStatement pstmt =null ; public EmpDAOImpl(Connection conn){ } // TODO Auto-generated method stub String sql="INSERT INTO emp(empno,ename,job,hiredate,sal) pstmt =conn .prepareStatement(sql); this . conn =conn; public boolean doCreate(Emp vo) throws Exception { VALUES(?,?,?,?,?)"; pstmt .setString(1,vo.getEmpno()); pstmt .setString(2, vo.getEname()); pstmt .setString(3,vo.getJob()); pstmt .setDate(4, new java.sql.Date(vo.getHiredate().getTime()) ); pstmt .setDouble(5, vo.getSal()); if (pstmt .executeUpdate()>0){ } } return false ; return true ; empno=?";
} } return false ; return true ; @Override public boolean doRemove(String id) throws Exception { } public Emp findById(String id) throws Exception { // TODO Auto-generated method stub Emp emp=null ; // TODO Auto-generated method stub String sql="DELETE FROM emp WHERE empno=?"; pstmt =conn .prepareStatement(sql); pstmt .setString(1, id); if (pstmt .executeUpdate()>0){ } return false ; return true ; String sql="SELECT empno,ename,job,hiredate,sal FROM emp WHERE empno=?"; pstmt =conn .prepareStatement(sql); pstmt .setString(1, id); ResultSet rs=pstmt .executeQuery(); if (rs.next()){ } emp=new Emp(); emp.setEmpno(rs.getString(1)); emp.setEname(rs.getString(2)); emp.setJob(rs.getString(3)); emp.setHiredate(rs.getDate(4)); emp.setSal(rs.getDouble(5));
} @Override public List findAll() throws Exception { } public List findEmp(String keyword) throws Exception { // TODO Auto-generated method stub List all=new ArrayList(); String sql="SELECT empno,ename,job,hiredate,sal FROM emp WHERE this . pstmt =this . conn .prepareStatement(sql); this . pstmt .setString(1,"%"+keyword+"%"); ResultSet rs=this . pstmt .executeQuery(); Emp emp=null ; while (rs.next()){ emp=new Emp(); emp.setEmpno(rs.getString(1)); empno LIKE ?"; // TODO Auto-generated method stub List list=new ArrayList(); String sql="SELECT empno,ename,job,hiredate,sal FROM emp"; pstmt =conn .prepareStatement(sql); ResultSet rs=pstmt .executeQuery(); while (rs.next()){ } return list; Emp emp=new Emp(); emp.setEmpno(rs.getString(1)); emp.setEname(rs.getString(2)); emp.setJob(rs.getString(3)); emp.setHiredate(rs.getDate(4)); emp.setSal(rs.getDouble(5)); list.add(emp);
} } } emp.setJob(rs.getString(3)); emp.setHiredate(rs.getDate(4)); emp.setSal(rs.getDouble(5)); all.add(emp); return all;
6.1.2 JSP部分代码
⑴管理员登录验证代码
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
">
用户验证
-->
String userid=request.getParameter("userid" );
String password=request.getParameter("password" );
Member member=new Member();
member.setUserid(userid);
member.setPassword(password);
boolean flag=ServicesFactory.getIMemberServicesInstance().
isLogin(member);
if (flag){
%>
}else {
%>
}
%>
session.setAttribute("userid" , userid);
(2)增加操作代码
Emp emp=new Emp();
emp.setEmpno(request.getParameter("empno" ));
emp.setEname(request.getParameter("ename" ));
emp.setJob(request.getParameter("job" ));
emp.setHiredate(new
SimpleDateFormat("yyyy-MM-dd" ).parse(request.getParameter("hiredate" ))); emp.setSal(Double.parseDouble(request.getParameter("sal" )));
boolean flag=ServicesFactory.getIEmpServicesInstance().insert(emp);
if (flag){
response.setHeader("refresh" , "2;URL=emp_list.jsp");
%>
添加成功,2秒后跳转到列表页,如果没有跳转点击这里
}else {
response.setHeader("refresh" , "2;URL=emp_list.jsp");
%>
添加失败,2秒后跳转到列表页,如果没有跳转点击这里
}
%>
(3)修改操作代码
Emp emp=new Emp();
emp.setEmpno(request.getParameter("empno" ));
emp.setEname(request.getParameter("ename" ));
emp.setJob(request.getParameter("job" ));
emp.setHiredate(new
SimpleDateFormat("yyyy-MM-dd" ).parse(request.getParameter("hiredate" ))); emp.setSal(Double.parseDouble(request.getParameter("sal" )));
boolean flag=ServicesFactory.getIEmpServicesInstance().update(emp);
if (flag){
response.setHeader("refresh" , "2;URL=emp_list.jsp");
%>
修改成功,2秒后跳转到列表页,如果没有跳转点击这里
}else {
response.setHeader("refresh" , "2;URL=emp_list.jsp");
%>
修改失败,2秒后跳转到列表页,如果没有跳转点击这里
}
%>
6.2 系统运行界面
⑴登录界面
图6-1管理员登录页面
⑵系统欢迎页
图
6-2系统欢迎页面
(3)增加操作
图6-3增加员工信息
图6-4添加成功后显示页面
(4)修改操作
图6-5员工修改页面
7 总结与展望
在开发该系统的过程中,我认识到了知识的重要性,大学期间所学知识还不完备,所学的知识与实际项目所需的知识并不完全接轨的,有很多东西是需要我们自己学习的,有的东西甚至要从零开始,并且有很多的东西对于我们来说,只有使用到的时候才能想到去学,这样锻炼了我们的学习能力的同时,也锻炼了大家的思考能力。
在开发该系统的过程中,我认识到了合作的重要性。俗话说:“三人行,必有我师”,一个人不可能在所有方面都非常擅长,这就需要合作。在课程设计的过程中,每每有不会以及迷茫的地方的时候,请教身边的同学是最好的方法,如果大家都很了解的话,一起进行讨论也是一件很快乐的事情,既提升了各自的能力也增加了自己的交际能力以及同学之间的感情。
虽然员工管理系统的基本功能已经完成,但是,由于经验不足,以及个人知识的欠缺,仍有很大一部分功能尚待进一步完善和发展。
16
参考文献
[1]耿祥义, 张跃平.JSP 大学实用教程[M].北京:电子工业出版社,2012.1
[2]王珊, 萨师煊. 数据库系统概论[M].北京:高等教育出版社,2006.5
[3]印旻.JAVA 与面向对象程序设计教程[M].北京:高等教育出版社,1999.11
[4]耿祥义.JAVA 课程设计[M].北京:清华大学出版社,2004.2
[5]袁海燕.JAVA 应用程序设计100例[M].人民邮电出版社,2005.5
[6]李兴华,王月清.Java Web开发实战经典开发经典基础篇[M].北京:清华大学出版社,2010.8
[7]刘晓华. 精通Java 核心技术[M].北京:电子工业出版社,2004.5
[8]耿祥义,张跃平.Java2实用教程[M].北京:清华大学出版社,2004.5 17