大型数据库应用-人事管理系统设计

来源:自考 发布时间:2020-11-17 点击:

  湖南工业大学

 课程设计任务书 2015

 —2016

 学年第 一 学期

 计算机与通信

 学院(系、部)

  计算机科学与技术

  专业

  1202

 班级 课程名称:

  大型数据库应用

  设计题目:

  人事管理系统

  完成期限:自

  2015

 年

 12

 月

 21

 日至

  2015

 年

 12

 月

 27 日共

 1

 周

 内 容 及 任 务

 一、 设计的主要技术参数 Oracle 数据库,JSP,JavaScript, Servlet,JDBC,Java 二、 设计任务 主要实现对公司内部的人事管理,添加员工,删除员工,查询员工,设定主管,评价员工。员工登陆后可以查看自己的主管,修改自己的信息,主管登陆后可以发布工作任务,修改自己的信息,经理登陆后可以任命主管。

  三、设计工作量 数据的建模; 数据库中表的设计; 触发器和存储过程的设计; JDBC 连接 Oracle 数据库 前台数据逻辑的设计; 前台界面的设计;

 进 度 安 排 起止日期 工作内容 2014.12.1~2014.12.2 系统的规划 2014.12.3~2014.12.4 数据库的设计和建模 2014.12.5~2014.12.6 系统的概要设计以及系统前台的设计,编码与测试 2014.12.7~2014.12.7 系统文档的整理 主 要 参 考 资 料 《Oracle 数据库应用》 电子出版社出版 《Oracle11g 从入门到精通》钱慎一 (编者), 张素智 (编者) 《Oracle Database 9i/10g/11g 编程艺术:深入数据库体系结构(第 2 版)》~ 凯特(Thomas Kyte) (作者), 苏金国(译者), 王小振 (译者), 等 (译者)

 指 导 教 师 (签字):

  年

  月

 日 系 ( 教 研 室 )

 主 任 ( 签字):

  年

  月

 日

  0 人事管理系统

 一、

 课题的介绍和课题的任务

 人事管理系统主要实现对公司内部的人事管理,添加员工,删除员工,查询员工,设定主管,评价员工。员工登陆后可以查看自己的主管,修改自己的信息,主管登陆后可以发布工作任务,修改自己的信息,经理登陆后可以任命主管。

 二、 课程 设计的要求 1、普通员工:员工可以查看所有自己的信息,包括自己的主管是谁。能接受主管发布的工作任务。

 2、主管:主管可以查看自己的员工信息,还能查看自己的信息,能发布工作任务,让员工完成。

 3、人事经理:修改员工的信息,任命员工为主管,可以删除主管,员工,也可添加员工,还能对员工进行评价。还能添加公司,成立团队。

 4、登陆身份验证:登陆时,按身份登陆,由单选按钮实现,用户选择自己的身份,输入验证信息登陆。

 三、 系统的分析和系统中数据库的分析(R ER 图等)

  1 、 系统设计 1.1.系统的详细设计 1.1.1.主管信息查询 主管通过身份验证登陆后,可以查看自己信息,点击查询按钮后,就会通过表单把自己的用户名提交到 Servlet,servlet 将调用接口实现类中的查询方法,并将参数传进去。获取所查询的信息后,将数据发送到显示页面上。

 1.1.2.查看自己的员工 这是主管的一个独有权限,一个主管主管多名员工,当点击查询自己员工的信息是,进入到员工查询的 servlet,并将自己的信息全递进来,在此 servlet

  1 中调用员工查询方法,查询条件为主管为传递进来的信息,这要就可以得到这个主管下属的所有员工信息。并将其发回到页面中 。

 1.1.3.发布任务 主管可以将要完成的任务发布,点击任务发布进入到任务发布页面,填写好任务后提交表单,将表单信息通过任务发布的 servlet 来实现添加到任务表中。

 2.数据库的设计

  2.1.数据库建模

  2.1.1.E-R 图

  2.1.1.1.人员信息建模

  系统中人员信息建模如 E-R 图 2.1 所示:

  图 2.1 3 系统前台的设计 HR ROName ID Company Email Workphone Active CubiNo Department JobTitle Password UserName

  2 3.1、系统的结构

 本系统使用 MVC 模式作为系统的设计结构,以 JSP 作为视图层;采用struts2 框架,以其 Acation 类作为其控制层,以各种 JavaBean,FormBean 作为模型层; 3.2、界面的设计和布局 3.2.1 登录界面 如图 3.1 所示

 图 3.1 3.2.2 登陆后界面

  3

  3.2.3 管理界面 员工查找界面如图 3.3 所示;

 图 3.3

  四、系统的数据库实现

  4 1.1.表设计 1.1.1 主管表设计

 表 4-1

 ro 表的设计

  五、 系统的实现及调试

  1.实现数据库的连接 db文件的内容如下: driverClassName=oracle.jdbc.driver.OracleDriver url=jdbc\:oracle\:thin\:@localhost\:1521\:orcl user=system password=123456 链接类:

 public class jdbcUtil {

 private static Properties pro;

 static{

  pro=new Properties();

  try {

 pro.load(jdbcUtil.class.getClassLoader().getResourceAsStream("db.proper字段 类型 描述 是否允许为空 是否为主键 ROName varchar 姓名 是 否 ID number 编号 否 是 Company Varchar 所属公司 是 否 Department Varchar 所属部门 是 否 Email Varchar 邮箱 是 否 CubiNo Varchar 座位编号 是 否 WorkPhone Varchar 工作电话 是 否 Active Varchar 是否在职 是 否 Skill Varchar 技术 是 否 MobilePhone Varchar 移动电话 是 否 JobTitle Varchar 职位 是 否 UserName Varchar 登录名 是 否 PassWord Varchar 登陆密码 是 否

  5 ties"));

 String driverClassName=pro.getProperty("driverClassName");

 Class.forName(driverClassName);

  } catch (IOException e) {

 // TODO Auto-generated catch block

 e.printStackTrace();

  } catch (ClassNotFoundException e) {

 // TODO Auto-generated catch block

 e.printStackTrace();

  }

 }

 public static Connection con()

 {

  Connection con=null;

  String url=pro.getProperty("url");

  try {

 con=DriverManager.getConnection(url,pro);

  } catch (SQLException e) {

 // TODO Auto-generated catch block

 e.printStackTrace();

  }

  return con;

 }

  2.系统功能的实现

 2.1 通过在前台 JSP 页面与全部 servlet 的链接路径映射, <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5"

  xmlns="http://java.sun.com/xml/ns/javaee"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

  <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>AppointingReportingOfficerServlet</servlet-name>

  <servlet-class>com.servlet.AppointingReportingOfficerServlet</servlet-class>

  </servlet>

  <servlet>

  <description>This is the description of my J2EE component</description>

  6

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>SearchRoToUpdate</servlet-name>

  <servlet-class>com.servlet.SearchRoToUpdate</servlet-class>

  </servlet>

  <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>AppointROServlet</servlet-name>

  <servlet-class>com.servlet.AppointROServlet</servlet-class>

  </servlet>

 <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>Login</servlet-name>

  <servlet-class>com.servlet.Login</servlet-class>

  </servlet>

  <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>StaViewRO</servlet-name>

  <servlet-class>com.servlet.StaViewRO</servlet-class>

  </servlet>

  <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>ROViewStaff</servlet-name>

  <servlet-class>com.servlet.ROViewStaff</servlet-class>

  </servlet>

  <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>AppointingReportingOfficer_1</servlet-name>

  <servlet-class>com.servlet.AppointingReportingOfficer_1</servlet-class>

  </servlet>

  <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>AppointingReportingOfficer_2</servlet-name>

  <servlet-class>com.servlet.AppointingReportingOfficer_2</servlet-class>

  </servlet>

  <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  7

  <servlet-name>UpdateProfile_1</servlet-name>

  <servlet-class>com.servlet.UpdateProfile_1</servlet-class>

  </servlet>

  <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>UpdateProfile_2</servlet-name>

  <servlet-class>com.servlet.UpdateProfile_2</servlet-class>

  </servlet>

  <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>VerifyStaff</servlet-name>

  <servlet-class>com.servlet.VerifyStaff</servlet-class>

  </servlet>

  <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>SaveStaffAervlet</servlet-name>

  <servlet-class>com.servlet.SaveStaffAervlet</servlet-class>

  </servlet>

  <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>UpdateStaffProfileServlet</servlet-name>

  <servlet-class>com.servlet.UpdateStaffProfileServlet</servlet-class>

  </servlet>

  <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>UpdateStaffProfileSERvlet_2</servlet-name>

  <servlet-class>com.servlet.UpdateStaffProfileSERvlet_2</servlet-class>

  </servlet>

  <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>ROViewStaff_1</servlet-name>

  <servlet-class>com.servlet.ROViewStaff_1</servlet-class>

  </servlet>

  <servlet>

  <description>This is the description of my J2EE component</description>

  <display-name>This is the display name of my J2EE component</display-name>

  <servlet-name>AppointServlet</servlet-name>

  <servlet-class>com.servlet.AppointServlet</servlet-class>

  8

  </servlet>

  2.2.各种接口类的实现

 本系统所有对数据库的操作都是在 java 的类中实现的,先声明一个接口,再去实现这个接口,实现时创建方法,在方法中调用链接数据库的方法再对需要操作的数据库进行操作。

 public class StaffDaoImpl implements StaffDao { … … }

  public class RODaoImpl implements com.Dao.RODao

 {…

 …}

 public class MassageDaoImpl implements MassageDao {。

 … … … }

 public class CompanyDaoImpl implements CompanyDao { … … … } 2.3.查看主管

  public List<RO> showRO(String sRONAME) {

  List<RO> Ro =new ArrayList<RO>();

  RO ro=new RO();

  Connection con = null;

  PreparedStatement sql = null;

  ResultSet rs = null;

  String query="select * from ro where ROName=?";

  try {

 con = jdbcUtil.con();

  9

 sql = con.prepareStatement(query);

 sql.setString(1, sRONAME);

 rs = sql.executeQuery();

 while(rs.next()){

  ro = new RO();

  ro.setActive(rs.getString("Active"));

  ro.setCompany(rs.getString("Company"));

  ro.setCubiNo(rs.getString("CubiNo"));

  ro.setDepartment(rs.getString("Department"));

  ro.setEmail(rs.getString("Email"));

  ro.setId(rs.getInt("ID"));

  ro.setJobTitle(rs.getString("JobTitle"));

  ro.setMobilePhone(rs.getString("MobilePhone"));

 ro.setPassWord(rs.getString("passWord"));

  ro.setRoName(rs.getString("ROName"));

  ro.setSkills(rs.getString("skills"));

  ro.setTeam(rs.getString("Team"));

  ro.setUserName(rs.getString("UserName"));

  ro.setWorkPhone(rs.getString("WorkPhone"));

  Ro.add(ro);

  }

  } catch (SQLException e) {

 // TODO Auto-generated catch block

 e.printStackTrace();

  }

 return Ro;

  } 2.4 任命主管 public boolean insertRO(RO ro) {

  Connection con = null;

  PreparedStatement sql = null;

  int rs ;

  String query="insert

  10 ro(ID,ROName,Company,Department,Email,CubiNo,WorkPhone,Active,Skills,MobilePhone,JobTitle,UserName,PassWord,Team) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,)";

  int Id = ro.getId();

 String Company = ro.getCompany();

 String Department = ro.getDepartment();

 String RoName = ro.getRoName();

 String Email = ro.getEmail();

  String CubiNo = ro.getCubiNo();

 String WorkPhone = ro.getWorkPhone();

 String Active = ro.getActive();

 String Skills = ro.getSkills();

 String MobilePhone = ro.getMobilePhone();

 String JobTitle = ro.getJobTitle();

 String UserName = ro.getUserName();

 String PassWord = ro.getPassWord();

 String Team = ro.getTeam();

 try {

 sql.setInt(1, Id);

 sql.setString(2,

 RoName);

 sql.setString(3,

 Company);

 sql.setString(4,

 Department);

 sql.setString(5,

 Email);

 sql.setString(6,

 CubiNo);

 sql.setString(7,

 WorkPhone);

 sql.setString(8, Active);

 sql.setString(9, Skills);

 sql.setString(10, MobilePhone);

 sql.setString(11, JobTitle);

 sql.setString(12, UserName);

 sql.setString(13, PassWord );

 sql.setString(14, Team );

  rs = sql.executeUpdate(query);

 if(rs>=1){

  return true;

  }else {

  return false;

  11

 }

  } catch (SQLException e) {

 // TODO Auto-generated catch block

 e.printStackTrace();

  }

  return false;

 }

  六、课程设计总结与心得

 每一次课程设计都是一次不可重现的学习与实践的机会,这一次 Oracle 大型数据库应用的应用系统的开发也不例外。通过这一次课程设计,我们得以将我们所学的数据库原理、Oracle 数据库特性、面向对象编程语言及其编程技术、软件开发技术、软件工程思想、软件体系结构乃至项目管理应用到实践中去,同时也是这些理论的再一次学习与深化,也是一次工程思想的飞跃。在这一次基于Oracle 应用的软件项目开发活动中,我们再一次体会到“计算机科学与技术是看不懂的,只有做才真正有所收获”的告诫。

 七、小组成员:

 黄增强:组长。工作任务:ro 数据库表设计,主管功能和部分员工功能的实现。

 梁啟馆:成员。工作任务:员工表设计,员工的增删改查等设计。

  12 蔡华宏:成员。工作任务:经理表设计,团队表设计,登陆,经理功能的实现。

 八、源代码:

 package com.DaoImpl;

 import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;

 import com.entity.Hr; import com.entity.RO; import com.entity.Staff; import com.jdbcUtil.jdbcUtil;

  public class LoginDaoImpl {

 public RO findRO(String loginName, String password) {

  Connection con = null;

  PreparedStatement ps = null;

  ResultSet rs = null;

  RO ro= null;

  String sql = "select * from ro where UserName=? and PassWord=?";

  try {

 con = jdbcUtil.con();

 ps = con.prepareStatement(sql);

 ps.setString(1, loginName);

 ps.setString(2, password);

 rs = ps.executeQuery();

 if(rs.next()){

  ro = new RO();

  ro.setActive(rs.getString("Active"));

  ro.setCompany(rs.getString("Company"));

  ro.setDepartment(rs.getString("Department"));

  ro.setRoName(rs.getString("ROName"));

  ro.setEmail(rs.getString("Email"));

  ro.setCubiNo(rs.getString("CubiNo"));

  ro.setWorkPhone(rs.getString("WorkPhone"));

  ro.setSkills(rs.getString("Skills"));

  ro.setMobilePhone(rs.getString("MobilePhone"));

  ro.setJobTitle(rs.getString("JobTitle"));

  ro.setUserName(rs.getString("UserName"));

  13

  ro.setTeam(rs.getString("Team"));

 ro.setId(rs.getInt("ID"));

 }

  } catch (SQLException e) {

 // TODO Auto-generated catch block

 e.printStackTrace();

  } finally{

 jdbcUtil.closeq(con, ps, rs);

  }

 return ro;

 }

 public Hr findHr(String loginName, String password) {

  Connection con = null;

  PreparedStatement ps = null;

  ResultSet rs = null;

  Hr hr= null;

  String sql = "select * from hr where UserName=? and PassWord=?";

  try {

 con = jdbcUtil.con();

 ps = con.prepareStatement(sql);

 ps.setString(1, loginName);

 ps.setString(2, password);

 rs = ps.executeQuery();

 if(rs.next()){

  hr = new Hr();

  hr.setUserName(rs.getString("UserName"));

 }

  } catch (SQLException e) {

 // TODO Auto-generated catch block

 e.printStackTrace();

  } finally{

 jdbcUtil.closeq(con, ps, rs);

  }

 return hr;

 }

 public Staff findStaff(String loginName, String password) {

  Connection con = null;

  PreparedStatement ps = null;

  ResultSet rs = null;

  Staff staff= null;

  14

  String sql = "select * from staff where UserName=? and PassWord=?";

  try {

 con = jdbcUtil.con();

 ps = con.prepareStatement(sql);

 ps.setString(1, loginName);

 ps.setString(2, password);

 rs = ps.executeQuery();

 if(rs.next()){

  staff = new Staff();

  staff.setActive(rs.getString("Active"));

  staff.setCompany(rs.getString("Company"));

  staff.setDepartment(rs.getString("Department"));

  staff.setRoName(rs.getString("ROName"));

  staff.setEmail(rs.getString("Email"));

  staff.setCubiNo(rs.getString("CubiNo"));

  staff.setWorkPhone(rs.getString("WorkPhone"));

  staff.setSkills(rs.getString("Skills"));

  staff.setMobilePhone(rs.getString("MobilePhone"));

  staff.setJobTitle(rs.getString("JobTitle"));

  staff.setUserName(rs.getString("UserName"));

  staff.setTeam(rs.getString("Team"));

  staff.setName(rs.getString("Name"));

  staff.setId(rs.getInt("ID"));

 }

  } catch (SQLException e) {

 // TODO Auto-generated catch block

 e.printStackTrace();

  } finally{

 jdbcUtil.closeq(con, ps, rs);

  }

 return staff;

 } } package com.jdbcUtil;

 import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;

  15 import java.util.Properties;

 public class jdbcUtil {

 private static Properties pro;

 static{

  pro=new Properties();

  try {

 pro.load(jdbcUtil.class.getClassLoader().getResourceAsStream("db.properties"));

 String driverClassName=pro.getProperty("driverClassName");

 Class.forName(driverClassName);

  } catch (IOException e) {

 // TODO Auto-generated catch block

 e.printStackTrace();

  } catch (ClassNotFoundException e) {

 // TODO Auto-generated catch block

 e.printStackTrace();

  }

 }

 public static Connection con()

 {

  Connection con=null;

  String url=pro.getProperty("url");

  try {

 con=DriverManager.getConnection(url,pro);

  } catch (SQLException e) {

 // TODO Auto-generated catch block

 e.printStackTrace();

  }

  return con;

 }

 public static void closeq(Connection con,Statement sql,ResultSet rs){

  try {

  if(con!=null)

  con.close();

  if(sql!=null)

  sql.close();

  if(rs!=null)

  rs.close();

 } catch (SQLException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  16

 }

 }

 public static void closeq(Connection con,Statement sql ){

 try {

 if(con!=null)

 con.close();

 if(sql!=null)

 sql.close();

 } catch (SQLException e) {

 // TODO Auto-generated catch block

 e.printStackTrace();

  }

  }

  } package com.entity;

 public class RO {

  private int id;

 private String company;

 private String department;

 private String roName;

 private String email;

  private String cubiNo;

 private String workPhone;

 private String active;

 private String skills;

 private String mobilePhone;

 private String jobTitle;

 private String userName;

 private String passWord;

 private String team;

 public int getId() {

  return id;

 }

  17

 public void setId(int id) {

  this.id = id;

 }

 public String getCompany() {

  return company;

 }

 public void setCompany(String company) {

  this.company = company;

 }

 public String getDepartment() {

  return department;

 }

 public void setDepartment(String department) {

  this.department = department;

 }

 public String getRoName() {

  return roName;

 }

 public void setRoName(String roName) {

  this.roName = roName;

 }

 public String getEmail() {

  return email;

 }

 public void setEmail(String email) {

  this.email = email;

 }

 public String getCubiNo() {

  return cubiNo;

 }

 public void setCubiNo(String cubiNo) {

  this.cubiNo = cubiNo;

 }

 public String getWorkPhone() {

  return workPhone;

 }

 public void setWorkPhone(String workPhone) {

  this.workPhone = workPhone;

 }

 public String getActive() {

  return active;

 }

 public void setActive(String active) {

  this.active = active;

  18

 }

 public String getSkills() {

  return skills;

 }

 public void setSkills(String skills) {

  this.skills = skills;

 }

 public String getMobilePhone() {

  return mobilePhone;

 }

 public void setMobilePhone(String mobilePhone) {

  this.mobilePhone = mobilePhone;

 }

 public String getJobTitle() {

  return jobTitle;

 }

 public void setJobTitle(String jobTitle) {

  this.jobTitle = jobTitle;

 }

 public String getUserName() {

  return userName;

 }

 public void setUserName(String userName) {

  this.userName = userName;

 }

 public String getPassWord() {

  return passWord;

 }

 public void setPassWord(String passWord) {

  this.passWord = passWord;

 }

 public String getTeam() {

  return team;

 }

 public void setTeam(String team) {

  this.team = team;

 }

  }

推荐访问:数据库 人事管理系统 设计
上一篇:兰州废水处理环保设备项目预算报告
下一篇:道德与法治专题07,,,科技引领未来 创新驱动发展

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有