这里为您详细讲解“员工管理系统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表示管理员) |
功能实现
员工信息管理
添加员工信息
添加员工信息流程如下:
- 首先在界面上显示一个填写员工信息的表单,包含员工姓名、性别、出生日期、身份证号码、入职日期和所属部门等信息;
- 用户填写完整员工信息后点击保存按钮,系统对输入进行合法性检查,如检测到输入内容格式不正确或者必填信息为空,则提示用户相应的错误信息;
- 将合法的员工信息存储到数据库中,显示保存成功的提示信息。
示例说明:当用户在录入员工信息时,输入了空字段或者身份证号码格式不正确,系统将会弹出提示框,告知用户必填信息不能为空或者身份证号码格式不正确。
// 身份证号码格式校验
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技术站