人事管理系统

使用java+my sql实现人事管理系统

一.团队介绍

成员姓名 任务分配 学号
伍泓润 类的设计和逻辑代码 201821123030
王定伟 gui界面设计 201821123028
陆勇治 数据库的链接 201721123025

二.项目功能逻辑框架和流程

  • 数据字典

  • 功能框架

  • 主要功能流程图

三.UML类图

四.项目运行截图

  1. 用户登录界面

  1. 员工界面

3.管理员界面

4.管理员添加新员工

五.项目关键代码

  • dao模式

    public class PeopleDao {	
    //添加
        public int add(Connection con, People People)throws Exception{
    		String sql="insert into Employee(EMP_NAME,EMP_NUMBER,EMP_PASSWORD,Dep_ID,Pos_ID,EMP_EVALUATE)VALUE(?,null,?,?,?,?)";
    		PreparedStatement pstmt = con.prepareStatement(sql);
    		pstmt.setString(1, People.getEmpName());
    		pstmt.setString(2, People.getEmpPassword());
    		pstmt.setInt(3, People.getDepartmentId());
    		pstmt.setInt(4, People.getPosition());
    		pstmt.setString(5, People.getEmpEvaluate());
    		return pstmt.executeUpdate();
    	}
    按工号排序	
    	public ResultSet id(Connection con, Number Number)throws Exception{
    		StringBuffer sb=new StringBuffer("select  max(EMP_Number) from EMPLOYEE  ");
    
    		PreparedStatement pstmt=con.prepareStatement(sb.toString().replaceFirst("and","where"));
    		return pstmt.executeQuery();
    	} 
    	public ResultSet list(Connection con, People People)throws Exception{
    		StringBuffer sb=new StringBuffer("select EMP_NAME,EMP_NUMBER,EMP_PASSWORD,EMPLOYEE.Dep_ID,EMPLOYEE.Pos_ID,EMP_EVALUATE,Postion_Name,Dep_Name from EMPLOYEE join Positional on Positional.Pos_ID=EMPLOYEE.Pos_ID join Department on Department.Dep_ID=EMPLOYEE.Dep_ID ");
    		
    		if(StringUtil.isNotEmpty(People.getEmployName())){
    		sb.append("and EMP_NAME like '"+People.getEmployName()+"'");
    			
    		}
    		PreparedStatement pstmt=con.prepareStatement(sb.toString().replaceFirst("and","where"));
    		return pstmt.executeQuery();
    	} 	
    //信息更新
    public int update(Connection con, People people)throws Exception{
    
    	String sql="update EMPLOYEE set Dep_ID= (SELECT Dep_ID FROM Department  WHERE Dep_Name =?),Pos_ID= (SELECT Pos_ID FROM Positional  WHERE Postion_Name =? ),EMP_EVALUATE=? where EMP_NUMBER=?";
    	PreparedStatement pstmt = con.prepareStatement(sql);
    	pstmt.setString(1, people.getDepartmentName());
    	pstmt.setString(2, people.getPositionName());
    	pstmt.setString(3, people.getEmpEvaluate());
    	pstmt.setInt(4, people.getEmpId());
    	return pstmt.executeUpdate();
    }
    }
    
public class SalaryEmpDao {
	public ResultSet list(Connection con, EmployUser employUser)throws Exception{
		StringBuffer sb=new StringBuffer("select EMP_NAME,Salary.EMP_NUMBER,Sal_KIND,Sal_FINAL,Sal_NUMBER,Sal_FIRST,CHECK_MONEY,Sal_Date from Salary join EMPLOYEE on EMPLOYEE.EMP_NUMBER=Salary.EMP_NUMBER ");

		sb.append("and Salary.EMP_NUMBER like '"+LogEmploy.userName+"'");
		
		
		PreparedStatement pstmt=con.prepareStatement(sb.toString().replaceFirst("and","where"));
		return pstmt.executeQuery();
	} 
}

六.项目代码扫描结果及改正

使用阿里巴巴静态扫描工具对项目进行扫描,得到结果为:5Blockers,35 Criticals, 240Majors,经过修改,将工具给我们的建议修改完成。

七.尚待改进

1.本次课设为期一周,时间紧任务重,所以我们界面不够美观。

2.对于员工的查询功能还不够强大,应该姓名使用模糊查找,还有增加工号查找等功能

3.考勤信息还不够完善,可添加请假原因项目栏。

八.课设总结:

通过此次课程设计,使我更加扎实的掌握了有关java和数据库方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。 过而能改,善大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,但是我相信它留给我们的宝贵经验和教训在以后的学习工作中给我们巨大的帮助

posted @ 2020-01-09 17:29  YaphetsW  阅读(700)  评论(0)    收藏  举报