职工档案管理系统一.引言1.1项目背景和目标职工档案管理系统主要是对在校教师的个人基本信息以及教学信息进行管理,对教职工提供查询简介信息、教学信息功能;对管理员用户提供查询教师简介信息、查询教学信息、添加教师信息、修改教师信息、删除教师信息等功能。我们的目标就是为该系统提供后台连接MYSQL数据库程序设计以及前台用户界面设计。1.2项目的可行性研究设计此系统需要java面向对象编程基础,数据库应用知识以及功能分析。根据目前所开设的课程,学生已经具备这样的知识,有能力综合java编程知识和数据库应用知识做出一个这样的学生信息管理系统二.需求分析2.1系统概述此系统提供给教职工用户和学校管理者,教职工登陆后可以对能自己基本信息进行查看,管理员登陆后能对教师的基本信息进行增删改操作。2.2系统运行环境Java程序运行在eclipse软件上编译并且运行,数据库用MYSQL数据库三.系统设计3.1开发与设计的总体思想教职工方面:教师通过自己的用户名和密码登录后,进入教师主界面,在这个主界面里,可以进行查询信息操作。学校管理员方面:管理员通过自己的密码登入后可以选择:查询功能、文件功能、修改功能。在查询功能里面,可以选择是查询教职工简介基本信息,还是查询教学信息。在查询教职工简介信息时,可以从依据不同字段,即简介表中的不同属性进行查找。在查找教学信息时,只能依据教师姓名进行查找。在修改功能里面,包括对教师简介信息表和教学表进行增加和删除记录3.2系统模块结构图3.3数据库结构设计为了支持此职工档案管理系统,创建数据库employeemanage,在这个数据库里包含四个表:worker表,manager表,employee表和teaching表,它们的截图如下:在worker表中,有八个属性列,分别为:id(职工号),wname(姓名),sex(性别),age(年龄),degree(学历),worktime(参加工作时间),salary(工资),dept(院别)。其基本数据类型分别为:char,char,char,int,char,char,int,char.职工档案管理系统教职工登录管理员登录教职工教学信息教职工信息管理教职工简介信息退出系统教职工信息修改教职工信息查询教职工教学信息删除教学信息添加教学信息添加简介信息删除简介信息帮助表1worker在manager表中,有两个属性列,分别为:mname(管理员姓名),password(密码)其基本数据类型分别为:char,char。当管理员登录系统时从此表获取数据,其截图如下:表2manager在employee表中,有两个属性列,分别为:wname(职工姓名),password(密码)其基本数据类型分别为:char,char。当教职工登录系统时从此表获取数据,其截图如下:表3employee在teaching表中,有七个属性列,分别为:id(职工号),wname(姓名),grade(年级),tmajor(教授专业),snum(学生人数),passrate(及格率),comment(教学总评)。其基本数据类型分别为:char,char,char,int,char,char,char。其截图如下:表4teaching3.4模块设计在整个系统主界面,可以选择登录方式,是教职工登录还是管理员登录。如果选择教职工,则进入教职工登录界面,在这个界面上要求输入教职工姓名和密码。输入后单击“确认登录”按钮,若密码正确,则转换到教职工教学信息查询页面,当输入教职工姓名后即可显示该名教职工的教学信息,若密码不正确,这提示密码错误。如果选择是管理员登录,则进入管理员登陆界面,在这个界面上输入管理员姓名和密码,输入后单击“教职工信息管理”按钮,则进入管理员主界面。在管理员主界面可以选择进行文件操作,查询操作还是修改操作。若要查询教职工简介信息,点击查询菜单项则进入教职工简介信息检索界面,在此界面的检索方式中选择要检索的数据属性,在检索内容框中输入检索的具体信息,例如,检索“姓名”字段时,要键入某个教职工的姓名。输入后,单击“检索”按钮,则开始对数据库中数据进行查询。如果数据库检索到所需信息,则生成列表显示检索结构,如果没有所需信息,则页面列表中显示为空。若要查询教职工教学信息,则点击教职工教学信息查询菜单项,进入教学查询界面。在此界面的文本框中输入要查询教学信息的教职工姓名,然后单击检索按钮。若数据库中有该教职工的教学信息,则生成列表显示教学信息,若没有此记录,则列表显示内容为空。如果管理员要对数据库中进行修改操作,则在管理员主界面上选择修改菜单项,在此项中,选择要修改的具体内容,总共有四项修改操作:添加教职工简介信息,删除教职工简介信息(这两个是对数据库中worker表的操作),添加教职工教学信息,删除教职工教学信息(这两个是对数据库中teaching表的操作)。在添加信息操作中,按照标签提示一次输入要添加的记录值,输入完毕后,单击“添加”按钮,若输入成功,则提示成功,若输入失败,则提示失败。在删除信息操作中,输入要删除信息的教职工姓名,单击“删除”按钮,若删除成功,则提示成功,若删除失败则提示失败。以上就是该职工档案管理系统涉及的操作步骤。3.5系统流程描述NoYesYes开始登录主界面管理员登录输入有误教学信息管理界面简介信息查询教职工登录成功成功成功成功教职工信息查询输入有误退出系统显示教职工教学信息职工简介信息教职工信息修改退出没有任何的输出显示检索信息职工教学信息添加教职工教学信息Insertsuccess输入有误添加教职工简介信息输入教职工姓名选择检索方式和数据删除教职工教学信息删除教职工简介信息录入添加的教学信息录入添加的简介信息输入要删除的教职工姓名输入要删除的教职工姓名成功成功成功成功输入有误输入有误输入有误insertsuccessdeletesuccessdeletesuccess帮助选择帮助四、系统实现DBconnection类本系统所编写的程序保存在以下四个包中:connection包,first包,second包,finally包1.connection包中的类:(1)DBconnection类:此类设置程序与数据库的连接,通过设置驱动类型和数据源来确定要连接的数据库。若连接成功,提示:connectionsuccess,若连接失败,提示:connectionfailureDBconnection类源代码:packageconnection;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importfinallys.TeachQuery;publicclassDBconnection{publicstaticvoidmain(String[]args){newDBconnection();}publicstaticConnectioncon=null;publicstaticConnectiongetConnection(){try{StringdbDriver=com.mysql.jdbc.Driver;Class.forName(dbDriver);System.out.println(DriverSuceess);}catch(ClassNotFoundExceptione){System.out.println(Drivernotfound);e.printStackTrace();}try{con=DriverManager.getConnection(jdbc:mysql://localhost:3306/employeemanage,root,0703112418);System.out.println(ConnectionSuceess);}catch(SQLExceptione){System.out.println(Connetionfailure);e.printStackTrace();}returncon;}publicstaticvoidcloseConnection(){if(con!=null)try{con.close();System.out.println(databaseclosesuccess);}catch(SQLExceptione){System.out.println(closefailure);e.printStackTrace();}}}2.first包中的类:(1)Workerfirst类:此类中有四个方法,managerLogin,addWorker,deleteWorker,queryworker,作用分别是控制管理员登陆系统,增加教职工基本信息,删除学生基本信息,查询教职工基本信息。managerLogin()方法中,有两个参数,分别传给select语句中的mname(管理员姓名)和password(登录密码),利用select语句在employee表中检索管理员登录信息。若存在此信息,返回true,否则返回falseaddWorker)方法中,有八个参数,分别传给insert语句中的id(职工号),wname(教职工姓名),age(年龄),sex(性别),degree(学历),worktime(参加工作时间),salary(工资)和dept(院别),利用insert语句向worker教职工信息简介表中插入记录。若插入成功,返回true,否则返回falsedeleteWorker()方法中,有一个参数,传给delete语句中的wname(教职工姓名),利用delete语句,把worker表中相关教职工信息删除。若删除成功,返回true,否则返回falsequeryWorker()方法中,有两个参数,分别传给select语句中的field(查找方式)和key(查找内容),利用select语句,从worker表中检索教职工简介信息。若存在此信息,则返回一个ArrayList类的对象lis(表格),否则,异常处理Workerfirst类源代码:packagefirst;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importsecond.Work;importconnection.DBconnection;publicclassWorkerfirst{publicbooleanmanagerLogin(Stringmname,Stringpassword){DBconnectiondb=newDBconnection();Connectioncon=db.getConnection();booleanisfound=false;PreparedStatementpst;try{pst=con.prepareStatement(select*frommanagerwheremname=?andpassword=?);pst.setString(1,mname);pst.setString(2,password);ResultSetrs=pst.executeQuery();if(rs.next())isfound=true;}catch(SQLExceptione){e.printStackTrace();}System.out.println(isfound);returnisfound;}publicbooleanaddWorker(Stringid,Stringwname,Stringsex,intage,Stringdegree,Stringworktime,intsalary,Stringdept){Co