• 企业人事管理系统


      1.课设要求描述   

    【系统描述】软件从登录界面开始,验证用户名与密码后,根据登录用户名权限的不同,打开软件后展示不同的功能模块。软件主要功能模块是人事管理、部门管理、备忘录、员工生日提醒、数据库的维护等。


    通过简单分析后,总结如下信息(以下描述功能必须完成):


    √由于该系统的使用对象较多,要有较好的权限管理,这样可以让不同用
    户对不同的功能模块具有不同的操作权限;
    √系统提供基本信息进行管理,员工基本信息可以由员工录入,也可由人
    事处工作人员进行录入;
    √员工只能查看和修改自己的信息,人事管理人员可以查看或修改所有员
    工的信息,部门负责人只能查看本部门工作人员信息,但不能查看员工薪资;
    √记录公司内部员工基本档案信息,提供便捷的查询功能;
    √在查询员工信息时,可以对当前员工的家庭情况,培训与进修情况进行
    添加与修改与删除操作;
    √不同的员工不同职称,职级或工作年限对应不同的薪资,管理员可以调
    整员工的职称或职级,员工的薪资及职称/职级调整后需要有审核;√部门负责人可以按年度添加员工考核结果;
    √生日提醒
    √备忘录
    √员工入职、转岗、离职
    √可以按照条件对员工相关情况进行统计;√提供灵活的数据备份,还原与清空功能。

    √提供异常处理功能

    -- 创建一个视图,用于展示员工的详细信息

    -- 创建一个视图,用于展示员工及其家庭成员的详细信息


    -- 定义一个触发器将新插入员工的生日提醒信息插入到表中

    -- 定义一个触发器更新表中相应员工的生日提醒日期

    2.制作思路及基础讲解

    此项目主要是用于完成大二下半学期的数据库课设,随手记录。技术面大二下之前只学过Java,MySQL/SQLServer。所以此项目没有前端界面,只通过命令行的形式来操作该系统,制作思路:首先是数据库作为存储数据的地方,编写根据课设要求编写好对应的建表语句和存储过程,视图,触发器等。然后编写好对应系统的Java代码,最后通过JDBC将Java代码与数据库连接起来。

      部分学生可能学的比较浅,不理解mysql,sqlserver,java,c等一堆名词之间的含义。之前有同学找我做过这类似的课设。问的问题都比较抽象,例如用mysql做一个系统之类的。在此简单说一下我对于这些的理解,mysql,sqlserver都是数据库的一种,只不过是外国的所以都是用英文表示,大部分上课不听的同学看到这一堆英文都会比较懵,其实只需简单把数据库(mysql,SQLServer)理解成存储数据的地方,而java,c等语言是用来编写系统逻辑功能的代码。当然在数据库中的存储过程或者触发器什么的,这些功能也能在代码编程语言中通过特定的逻辑实现类似的功能,只不过我们在数据库中写好的话,免去了Java中代码的编写量,并且查询时速度会更快。

    3.使用工具及语言详解

    不同的学校要求不同,有的是sqlserver,有的是mysql,但其实这两者的区别在我看来区别不大,大部分的语句格式都是一样的,所以我选择了我熟悉的一种,mysql来进行编写。在语言方面,我大一的时候学过c,但是当时没有认真听,后来也慢慢都忘了,大二时学了Java,并且之后又系统性的学了一遍,所以选择来用Java语言编写。对于编译器我使用的是IDEA,版本随意,这个不影响,但需要注意IDEA不是免费的,可以去试用30天,也可以自行网上找方法安装破解版。数据库可视化工具使用的是Navicat,这个工具同样也不是免费的,但提供14天试用期,有长期需求也需要各位自行找破解版。

    PS:这里又提到两个新名词,IDEA和Navicat,这不是编程语言,而是工具的名字,大家需要慢慢熟悉这些名词,简单来说就是他能让你的编程之路变得更顺畅,提供了可视化的界面,不需要一直在黑窗口中输入代码

    4.数据库建表代码(完整数据库文件请到主页资源处下载)

    1. -- 创建用户表
    2. CREATE TABLE Users (
    3. UserID INT PRIMARY KEY AUTO_INCREMENT,
    4. Username VARCHAR(50) NOT NULL,
    5. Password VARCHAR(255) NOT NULL,
    6. RoleID INT
    7. );
    8. -- 创建角色表
    9. CREATE TABLE Roles (
    10. RoleID INT PRIMARY KEY AUTO_INCREMENT,
    11. RoleName VARCHAR(50) NOT NULL
    12. );
    13. -- 创建权限表
    14. CREATE TABLE Permissions (
    15. PermissionID INT PRIMARY KEY AUTO_INCREMENT,
    16. PermissionName VARCHAR(50) NOT NULL
    17. );
    18. -- 创建角色权限关联表
    19. CREATE TABLE RolePermissions (
    20. RoleID INT,
    21. PermissionID INT,
    22. PRIMARY KEY (RoleID, PermissionID)
    23. );
    24. -- 创建员工表
    25. CREATE TABLE Employees (
    26. EmployeeID INT PRIMARY KEY AUTO_INCREMENT,
    27. Name VARCHAR(50) NOT NULL,
    28. Sex VARCHAR(50) NOT NULL,
    29. BirthDate DATE,
    30. DepartmentID INT,
    31. PositionID INT,
    32. Salary DECIMAL(10, 2),
    33. HireDate DATE,
    34. Status VARCHAR(20)
    35. );
    36. -- 创建部门表
    37. CREATE TABLE Departments (
    38. DepartmentID INT PRIMARY KEY AUTO_INCREMENT,
    39. DepartmentName VARCHAR(100) NOT NULL
    40. );
    41. -- 创建职位表
    42. CREATE TABLE Positions (
    43. PositionID INT PRIMARY KEY AUTO_INCREMENT,
    44. PositionName VARCHAR(100) NOT NULL
    45. );
    46. -- 创建员工家庭情况表
    47. CREATE TABLE EmployeeFamily (
    48. EmployeeID INT,
    49. FamilyMemberName VARCHAR(100),
    50. Relationship VARCHAR(50),
    51. BirthDate DATE,
    52. PRIMARY KEY (EmployeeID, FamilyMemberName)
    53. );
    54. -- 创建培训与进修表
    55. CREATE TABLE EmployeeTraining (
    56. TrainingID INT PRIMARY KEY AUTO_INCREMENT,
    57. EmployeeID INT,
    58. TrainingName VARCHAR(100),
    59. StartDate DATE,
    60. EndDate DATE
    61. );
    62. -- 创建考核结果表
    63. CREATE TABLE EmployeeEvaluation (
    64. EvaluationID INT PRIMARY KEY AUTO_INCREMENT,
    65. EmployeeID INT,
    66. Year INT,
    67. Result VARCHAR(100)
    68. );

    5.Java代码思路及结构

    此处只放部分代码截图

     

    6.效果运行实例  

     

    附带完整源码,数据库文件,需要后台私信   

  • 相关阅读:
    數據集成平台:datax將MySQL數據同步到hive(全部列和指定列)
    ADSP-21489的图形化编程详解(7:延时、增益、分频、反馈、响度)
    如何创建自己的Spring Boot Starter并为其编写单元测试
    sql server数据库连接不上
    坦克大战②
    创宇区块链 | 6 月安全月报
    小张的秋招面经(持续更新版)
    报错01__GAN网络
    开启数据库审计 db,extended级别或os级别)并将审计文件存放到/opt/oracle/audit/下
    UMA 2 - 创建自己的UMA模型⭐一.配置Blender环境
  • 原文地址:https://blog.csdn.net/weixin_64922330/article/details/140352560