员工管理系统java版

这里为您详细讲解“员工管理系统java版”的完整攻略。

系统概述

这是一个基于Java语言开发的员工管理系统,主要功能包括员工信息录入、查询、修改和删除,部门信息录入、查询和修改,以及用户权限管理等。

系统环境

本系统运行需要JDK1.8及以上版本,建议使用IntelliJ IDEA等集成开发环境进行开发和调试。

数据库设计

本系统使用MySQL数据库进行数据存储,数据库设计如下:

员工表

字段名称 数据类型 备注
id int(11) 自增主键
name varchar(50) 员工姓名
gender tinyint(1) 性别(0表示女性,1表示男性)
birthday date 出生日期
id_number varchar(18) 身份证号码
entry_date date 入职日期
department_id int(11) 所属部门ID

部门表

字段名称 数据类型 备注
id int(11) 自增主键
name varchar(50) 部门名称
manager_id int(11) 部门经理ID
description varchar(200) 部门描述

用户表

字段名称 数据类型 备注
id int(11) 自增主键
username varchar(50) 用户名
password varchar(50) 密码
role tinyint(1) 角色(0表示普通用户,1表示管理员)

功能实现

员工信息管理

添加员工信息

添加员工信息流程如下:

  1. 首先在界面上显示一个填写员工信息的表单,包含员工姓名、性别、出生日期、身份证号码、入职日期和所属部门等信息;
  2. 用户填写完整员工信息后点击保存按钮,系统对输入进行合法性检查,如检测到输入内容格式不正确或者必填信息为空,则提示用户相应的错误信息;
  3. 将合法的员工信息存储到数据库中,显示保存成功的提示信息。

示例说明:当用户在录入员工信息时,输入了空字段或者身份证号码格式不正确,系统将会弹出提示框,告知用户必填信息不能为空或者身份证号码格式不正确。

// 身份证号码格式校验
public static boolean isIDNumberValid(String idNumber) {
    // 省略身份证号码格式校验逻辑...
    return true;
}

// 员工信息保存
public void saveEmployee(Employee employee) {
    // 检查输入内容是否完整和合法
    if (StringUtils.isBlank(employee.getName()) || 
        StringUtils.isBlank(employee.getIdNumber()) || 
        employee.getDepartmentId() == null || 
        !isIDNumberValid(employee.getIdNumber())) {
        throw new IllegalArgumentException("员工姓名、身份证号码和所属部门不能为空,且身份证号码必须为有效格式。");
    }
    // 其他保存逻辑...
}

查询员工信息

查询员工信息可以按照员工姓名、性别、所属部门等条件进行筛选,查询结果以列表形式展示。

示例说明:当用户在查询员工信息时,输入了员工姓名作为条件进行查询,系统将会返回与该姓名匹配的员工信息列表,并在界面上展示。

// 按照员工姓名进行查询
public List<Employee> queryEmployeeByName(String name) {
    String sql = "SELECT * FROM employee WHERE name LIKE ?";
    try (Connection conn = dataSource.getConnection();
         PreparedStatement stmt = conn.prepareStatement(sql)) {
        stmt.setString(1, "%" + name + "%");
        try (ResultSet rs = stmt.executeQuery()) {
            List<Employee> employeeList = new ArrayList<>();
            while (rs.next()) {
                Employee employee = new Employee();
                employee.setId(rs.getInt("id"));
                employee.setName(rs.getString("name"));
                employee.setGender(rs.getInt("gender"));
                // 其他字段省略...
                employeeList.add(employee);
            }
            return employeeList;
        }
    } catch (SQLException e) {
        throw new RuntimeException("查询员工信息失败", e);
    }
}

用户权限管理

管理员可以对系统中的用户进行管理,包括添加用户、修改用户密码、删除用户等操作。

示例说明:当管理员在用户列表中选择了一个普通用户,并点击重置密码按钮时,系统将会将该用户的密码重置为初始密码,并确保用户在下次登录时需要修改密码以确保安全性。

// 重置用户密码
public void resetPassword(int userId, String password) {
    String sql = "UPDATE user SET password = ? WHERE id = ?";
    try (Connection conn = dataSource.getConnection();
         PreparedStatement stmt = conn.prepareStatement(sql)) {
        stmt.setString(1, password);
        stmt.setInt(2, userId);
        stmt.executeUpdate();
    } catch (SQLException e) {
        throw new RuntimeException("重置用户密码失败", e);
    }
}

// 用户列表界面
if (user.getRole() == User.ROLE_ADMIN) {
    // 显示用户列表
    List<User> userList = userService.queryAllUser();
    for (User user : userList) {
        // 用户是否需要修改密码
        boolean needChangePassword = checkIfUserNeedChangePassword(user);
        // 添加“重置密码”按钮
        JButton resetPasswordButton = new JButton("重置密码");
        resetPasswordButton.addActionListener(e -> {
            int result = JOptionPane.showConfirmDialog(null, "是否确认要重置该用户的密码?", "确认重置密码", JOptionPane.YES_NO_OPTION);
            if (result == JOptionPane.YES_OPTION) {
                // 重置用户密码为初始密码
                userService.resetPassword(user.getId(), "123456");
                JOptionPane.showMessageDialog(null, "用户密码已重置为初始密码,请通知该用户在登录后尽快修改密码。");
            }
        });
        // 添加其他相关操作按钮...
    }
}

总结

通过本文的介绍,您应该已经了解到如何从系统环境和数据库设计方面入手,实现一个基于Java语言开发的员工管理系统,涵盖了员工信息管理和用户权限管理等多个方面的功能。希望本文能够对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:员工管理系统java版 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 快速搭建一个SpringBoot项目(纯小白搭建教程)

    让我以标准的markdown格式文本,详细讲解“快速搭建一个SpringBoot项目(纯小白搭建教程)”的完整攻略。 快速搭建一个SpringBoot项目(纯小白搭建教程) SpringBoot是一个快速构建基于Spring框架的应用程序的工具。它可以简化Java程序开发的复杂度,使得开发人员可以更加专注于业务逻辑的实现。在这里,我将为大家介绍如何简单快速地…

    Java 2023年5月15日
    00
  • java中实现四则运算代码

    Java中实现四则运算代码的攻略如下: 1. 分析需求 首先,我们需要明确需求。四则运算包含加、减、乘、除。我们需要写出代码来实现这些操作,并可以对输入的两个数进行计算返回结果。需要考虑一些特殊的情况,例如除数为0的情况,需要进行错误提示。 2. 确定方法与注释 在实现代码之前,我们需要确定这个方法的输入和输出,以及需要哪些变量和算法。 /** * 四则运算…

    Java 2023年5月18日
    00
  • SpringBoot使用JdbcTemplate操作数据库

    SpringBoot使用JdbcTemplate操作数据库攻略 什么是JdbcTemplate JdbcTemplate是Spring Framework中的一个类,它封装了对JDBC的使用,提供了使用非常规范、灵活简单的方式来操作数据库。 使用JdbcTemplate可以避免我们手动编写JDBC代码,使得我们能够更专注于业务逻辑,从而提高效率。 JdbcT…

    Java 2023年5月20日
    00
  • Mybatis中resultMap标签和sql标签的设置方式

    Mybatis是一款优秀的ORM框架,其中resultMap标签和sql标签的设置方式可以让我们更好地管理SQL语句和查询结果的映射关系。下面就详细讲解一下这两个标签的使用方式。 resultMap标签的设置方式 resultMap标签用于定义查询结果和Java对象的映射关系,我们通常可以用它来解决查询表中字段名和Java属性名不完全匹配的情况。result…

    Java 2023年5月20日
    00
  • 总结Java常用排序算法

    总结Java常用排序算法 算法简介 排序算法是计算机程序设计中最基本的问题之一,它的目的是将一组“无序”的数据,按照某种规律进行排列。在Java中,常用的排序算法有如下几种: 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 冒泡排序 冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就将它们交换过…

    Java 2023年5月19日
    00
  • Java创建内部类对象实例详解

    以下是关于“Java创建内部类对象实例”的完整攻略: 什么是内部类? 内部类是Java中的一种特殊类,它被定义在另一个类的内部,并可以访问该外部类的成员和方法。内部类是Java语言规范中的特性之一,可以为程序设计带来很多便利。 创建内部类的对象实例有哪些方法? 直接使用外部类的对象来创建内部类的对象实例: “` class Outer { class In…

    Java 2023年5月26日
    00
  • Java 实现模拟用户登录的示例代码

    下面是关于Java实现模拟用户登录的示例代码的详细攻略: 一、了解模拟登录的概念 模拟用户登录是指通过程序代码来模拟用户在网页上输入用户名和密码的过程,实现自动登录。 二、实现模拟登录的步骤 获取登录页面表单的URL和提交表单的URL。 构造POST请求,并设置请求头信息。 设置登录参数,将登录参数封装到请求体中,并发送POST请求。 解析响应报文,提取需要…

    Java 2023年5月18日
    00
  • SpringSecurity 自定义表单登录的实现

    下面是SpringSecurity自定义表单登录的实现攻略: 1. 确定用户信息来源 在进行 SpringSecurity 表单登录认证之前,我们需要确定用户信息的来源。通常,我们可以从数据库、LDAP、Active Directory 或者使用第三方的 SAML/OAuth2 身份验证服务中获取用户信息,这里我们以数据库中获取用户信息为例。 2. 用户认证…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部