Eclipse+Java+Swing+Mysql实现员工信息管理系统

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Eclipse+Java+Swing+Mysql实现员工信息管理系统

一、系统介绍


1.开发环境


开发工具:Eclipse2021


JDK版本:jdk1.8


Mysql版本:8.0.13


2.技术选型


Java+Swing+Mysql


3.系统功能


1.管理员登录系统;


2.管理员查询员工信息,增加员工信息,修改员工信息,删除员工信息;


3.管理员查询部门信息,增加部门信息,修改部门信息,删除部门信息;


4.管理员查询职务信息,增加职务信息,修改职务信息,删除职务信息;


4.数据库

/*
 Navicat Premium Data Transfer
 Source Server         : MySQL
 Source Server Type    : MySQL
 Source Server Version : 80013
 Source Host           : 127.0.0.1:3306
 Source Schema         : swing_staff_management
 Target Server Type    : MySQL
 Target Server Version : 80013
 File Encoding         : 65001
 Date: 07/01/2022 21:39:20
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for dept
-- ----------------------------
DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept`  (
  `num` int(11) NULL DEFAULT NULL,
  `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '部门名称',
  `address` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of dept
-- ----------------------------
INSERT INTO `dept` VALUES (101, '大数据部', '一楼');
INSERT INTO `dept` VALUES (102, '人力行政部', '二楼');
INSERT INTO `dept` VALUES (103, '后勤部', '三楼');
-- ----------------------------
-- Table structure for duty
-- ----------------------------
DROP TABLE IF EXISTS `duty`;
CREATE TABLE `duty`  (
  `num` int(4) NOT NULL COMMENT '职务名称',
  `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `low` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `high` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of duty
-- ----------------------------
INSERT INTO `duty` VALUES (111, '职员', '10000', '20000');
INSERT INTO `duty` VALUES (112, '科长', '20000', '40000');
INSERT INTO `duty` VALUES (113, '部长', '40000', '60000');
INSERT INTO `duty` VALUES (114, '总监', '60000', '80000');
INSERT INTO `duty` VALUES (115, '总经理', '100000', '150000');
-- ----------------------------
-- Table structure for login
-- ----------------------------
DROP TABLE IF EXISTS `login`;
CREATE TABLE `login`  (
  `id` decimal(4, 0) NOT NULL,
  `username` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `password` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of login
-- ----------------------------
INSERT INTO `login` VALUES (1, 'admin', 'admin');
-- ----------------------------
-- Table structure for staff
-- ----------------------------
DROP TABLE IF EXISTS `staff`;
CREATE TABLE `staff`  (
  `num` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `sex` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `salary` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `dept` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `duty` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`num`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of staff
-- ----------------------------
INSERT INTO `staff` VALUES ('1001', '张三', '男', '50000', '13332259632', '大数据部', '部长');
INSERT INTO `staff` VALUES ('1002', '李四', '男', '30000', '13332259632', '大数据部', '科长');
INSERT INTO `staff` VALUES ('1003', '王五', '男', '20000', '13332259632', '后勤部', '职员');
SET FOREIGN_KEY_CHECKS = 1;


二、系统展示


1.登录系统


fa330f82385b4262a5e1e579ace1dbac.jpg


2.主页面


d0e3d713bce740dfb1ef9027e23955d2.jpg


3.部门管理


c2a2ab28c3b5416e8728c172de213fce.jpg


4.职位管理


15fb8bd5f16743f5a8178e961e8f5bb1.jpg


5.员工管理


ded98287b6024cf0a9e66ca4bc9226c4.jpg


三、部分代码


AdminDao.java

package dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import utils.DBUtil;
import vo.Admin;
public class AdminDao {
  // 判断有无此用户
  public static  boolean isUser(Admin admin) {
    String sql = "select * from login where username=? and  password = ?";
    ResultSet rs;
    // 定义数组用来存放账号和密码
    String[] adminString = new String[] {admin.getUserName(), admin.getPassword()};
    try {
      rs = DBUtil.execQuery(sql, adminString);
      if (rs.next())
        return true;
      else
        return false;
    } catch (SQLException e) {
      e.printStackTrace();
      return false;
    } finally {
      DBUtil.close();
    }
  }
  // 测试
  public static void main(String[] args) {
    Admin admin = new Admin();
    admin.setUserName("admin");
    admin.setPassword("admin");
    boolean flag = isUser(admin);
    System.out.println(flag);
  }
}

DeptDao.java

package dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import utils.DBUtil;
import utils.SqlHelper;
import vo.Dept;
/**
 * 
 * 部门管理
 *
 */
public class DeptDao {
  static public int update(Dept dept, int flag) throws SQLException {
    int result = -1;
    String sqlCondition[] = null;
    try {
      switch (flag) {
      case SqlHelper.INSERT:
        sqlCondition = new String[] { dept.getNum(), dept.getName(), dept.getAddress() };
        break;
      case SqlHelper.DELETE:
        sqlCondition = new String[] { dept.getNum() };
        break;
      case SqlHelper.UPDATE:
        sqlCondition = new String[] { dept.getName(), dept.getAddress(), dept.getNum() };
        break;
      }
      result = DBUtil.execUpdate(SqlHelper.DeptSqls[flag], sqlCondition);
      return result;
    } catch (SQLException e) {
    } finally {
      DBUtil.close();
    }
    return result;
  }
  static public Dept query(final Dept dept) throws SQLException {
    ResultSet rs;
    try {
      rs = DBUtil.execQuery("select * from dept where num=?", new String[] { dept.getNum() });
      if (rs.next()) {
        dept.setName(rs.getString("name"));
        dept.setAddress(rs.getString("address"));
        System.out.println("查到该数据");
      } else {
        System.out.println("没有查到该数据");
        return null;
      }
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      return null;
    } finally {
      DBUtil.close();
    }
    return dept;
  }
}

DutyDao.java

package dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import utils.DBUtil;
import utils.SqlHelper;
import vo.Duty;
/**
 * 
 * 职务管理
 *
 */
public class DutyDao {
  static public int update(Duty duty, int flag) throws SQLException {
    int result = -1;
    String sqlCondition[] = null;
    try {
      switch (flag) {
      case SqlHelper.INSERT:
        sqlCondition = new String[] { duty.getNum(), duty.getName(), duty.getLow(), duty.getHigh() };
        break;
      case SqlHelper.DELETE:
        sqlCondition = new String[] { duty.getNum() };
        break;
      case SqlHelper.UPDATE:
        sqlCondition = new String[] { duty.getName(), duty.getLow(), duty.getHigh(), duty.getNum() };
        break;
      }
      result = DBUtil.execUpdate(SqlHelper.DutySqls[flag], sqlCondition);
      return result;
    } catch (SQLException e) {
    } finally {
      DBUtil.close();
    }
    return result;
  }
  static public Duty query(final Duty duty) throws SQLException {
    ResultSet rs;
    try {
      rs = DBUtil.execQuery("select * from duty where num=?", new String[] { duty.getNum() });
      if (rs.next()) {
        duty.setNum(rs.getString("num"));
        duty.setName(rs.getString("name"));
        duty.setLow(rs.getString("low"));
        duty.setHigh(rs.getString("high"));
        System.out.println("查到该数据");
      } else {
        System.out.println("没有查到该数据");
        return null;
      }
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      return null;
    } finally {
      DBUtil.close();
    }
    return duty;
  }
}

StaffDao.java

package dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import utils.DBUtil;
import utils.SqlHelper;
import vo.Staff;
/**
 * 
 * 职员管理
 *
 */
public class StaffDao {
  static public int update(Staff staff, int flag) throws SQLException {
    int result = -1;
    String sqlCondition[] = null;
    try {
      switch (flag) {
      case SqlHelper.INSERT:
        sqlCondition = new String[] { staff.getNum(), staff.getName(),
            staff.getSex(), staff.getSalary(), staff.getPhone(),
            staff.getDept(), staff.getDuty() };
        break;
      case SqlHelper.DELETE:
        sqlCondition = new String[] { staff.getNum() };
        break;
      case SqlHelper.UPDATE:
        sqlCondition = new String[] { staff.getName(), staff.getSex(),
            staff.getSalary(), staff.getPhone(), staff.getDept(),
            staff.getDuty(), staff.getNum() };
        break;
      }
      result = DBUtil.execUpdate(SqlHelper.StaffSqls[flag],
          sqlCondition);
      return result;
    } catch (SQLException e) {
    } finally {
      DBUtil.close();
    }
    return result;
  }
  static public Staff query(final Staff staff) throws SQLException {
    ResultSet rs;
    try {
      rs = DBUtil.execQuery("select * from staff where num=?",
          new String[] { staff.getNum() });
      if (rs.next()) {
        staff.setNum(rs.getString("num"));
        staff.setName(rs.getString("name"));
        staff.setSex(rs.getString("sex"));
        staff.setSalary(rs.getString("salary"));
        staff.setPhone(rs.getString("phone"));
        staff.setDept(rs.getString("dept"));
        staff.setDuty(rs.getString("duty"));
        System.out.println("查到该数据" + staff.getNum());
      } else {
        System.out.println("没有查到该数据");
        return null;
      }
    } catch (SQLException e) {
      e.printStackTrace();
      return null;
    } finally {
      DBUtil.close();
    }
    return staff;
  }
  static public ResultSet checkSalary(Staff staff) {
    ResultSet dutyRs = null;
    try {
      dutyRs = DBUtil.execQuery("select * from duty where name=?",
          new String[] { staff.getDuty() });
    } catch (SQLException e) {
      e.printStackTrace();
    }
    return dutyRs;
  }
  static public ResultSet checkDept(Staff staff) {
    ResultSet dutyRs = null;
    try {
      dutyRs = DBUtil.execQuery("select name from dept where name=?",
          new String[] { staff.getDept() });
    } catch (SQLException e) {
      e.printStackTrace();
    }
    return dutyRs;
  }
  static public ResultSet checkDuty(Staff staff) {
    ResultSet dutyRs = null;
    try {
      dutyRs = DBUtil.execQuery("select name from duty where name=?",
          new String[] { staff.getDuty() });
    } catch (SQLException e) {
      e.printStackTrace();
    }
    return dutyRs;
  }
}


四、其他


1.更多系统


JavaSwing系统系列实现


Java+Swing实现斗地主游戏


Java+Swing实现图书管理系统


Java+Swing实现医院管理系统


Java+Swing实现考试管理系统


Java+Swing实现酒店管理系统


Java+Swing实现超市管理系统


Java+Swing实现电影购票系统


Java+Swing实现仓库管理系统-1


Java+Swing实现仓库管理系统-2


Java+Swing实现进销存管理系统


Java+Swing实现自助取款机系统


Java+Swing实现通讯录管理系统


Java+Swing实现停车场管理系统


Java+Swing实现学生信息管理系统


Java+Swing实现员工工资管理系统


Java+Swing实现学生宿舍管理系统


Java+Swing实现学生选课管理系统


Java+Swing实现学生成绩管理系统


Java+Swing实现学校教材管理系统


Java+Swing实现学校教务管理系统


Java+Swing实现企业人事管理系统


Java+Swing实现电子相册管理系统


Java+Swing实现超市管理系统-TXT存储数据


Java+Swing实现自助取款机系统-TXT存储数据


Java+Swing实现宠物商店管理系统-TXT存储数据


Java+JSP系统系列实现

Java+JSP实现学生图书管理系统


Java+JSP实现学生信息管理系统


Java+JSP实现用户信息管理系统


Java+Servlet系统系列实现

Java+Servlet+JSP实现航空订票系统


Java+Servlet+JSP实现新闻发布系统


Java+Servlet+JSP学生宿舍管理系统


Java+Servlet+JSP实现图书管理系统


Java+Servlet+JSP实现停车场管理系统


Java+Servlet+JSP实现房屋租赁管理系统


Java+Servlet+JSP实现学生信息管理系统


Java+Servlet+JSP实现学生选课管理系统


Java+Servlet+JSPl实现学生选课签到系统


Java+Servlet+JSP实现宠物诊所管理系统


Java+Servlet+JSP实现学生成绩管理系统-1


Java+Servlet+JSP实现学生成绩管理系统-2


Java+SSM系统系列实现

Java+SSM+JSP实现图书管理系统


Java+SSM+JSP实现超市订单系统


Java+SSM+JSP实现网上考试系统


Java+SSM+JSP实现宠物商城系统


Java+SSM+Layui实现学生成绩管理系统


Java+SSM+Bootstrap实现学生信息管理系统


Java+SSH系统系列实现

Java+SSH+JSP实现在线考试系统


Java+SSH+JSP实现医院在线挂号系统


Java+Springboot系统系列实现

Java+Springboot+H-ui+Maven实现营销管理系统


Java+Springboot+Bootstrap+Maven实现网上商城系统


Java+Springboot+Bootstrap+Maven实现景区旅游管理系统


1.更多JavaWeb系统请关注专栏。


https://blog.csdn.net/helongqiang/category_10020130.html

https://blog.csdn.net/helongqiang/category_10020130.html


2.更多JavaSwing系统请关注专栏。


https://blog.csdn.net/helongqiang/category_6229101.html

https://blog.csdn.net/helongqiang/category_6229101.html


2.源码下载

Java+Swing+Mysql实现员工信息管理系统


3.运行项目

注意员工编号为4位数,职务和部门编号为3位数。管理员账号和密码都为admin。


请点击以下链接,部署你的项目。


Eclipse如何导入JavaSwing项目超详细图文教程


Eclipse如何导入JavaSwing项目超详细视频教程


4.备注

如有侵权请联系我删除。


5.支持博主

如果您觉得此文对您有帮助,请点赞加关注加收藏。


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
30
分享
相关文章
java调用mysql存储过程
在 Java 中调用 MySQL 存储过程主要借助 JDBC(Java Database Connectivity)。其核心原理是通过 JDBC 与 MySQL 建立连接,调用存储过程并处理结果。具体步骤包括:加载 JDBC 驱动、建立数据库连接、创建 CallableStatement 对象、设置存储过程参数并执行调用。此过程实现了 Java 程序与 MySQL 数据库的高效交互。
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
83 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
Java mysql根据很长的富文本如何自动获取简介
通过使用Jsoup解析富文本并提取纯文本,然后根据需要生成简介,可以有效地处理和展示长文本内容。该方法简单高效,适用于各种应用场景。希望本文对您在Java中处理富文本并生成简介的需求提供实用的指导和帮助。
62 14
Java mysql根据很长的富文本如何自动获取简介
通过使用Jsoup解析富文本并提取纯文本,然后根据需要生成简介,可以有效地处理和展示长文本内容。该方法简单高效,适用于各种应用场景。希望本文对您在Java中处理富文本并生成简介的需求提供实用的指导和帮助。
52 9
Java web 开发填坑记 1 -如何正确的下载 eclipse
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72561763 本文出自【赵彦军的博客】 Java web 开发填坑记 1 -如何正确的下载 eclipse Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目 Java web 开发填坑记-如何正确的下载 eclipse 最近在做 Java web 相关的开发,遇到的很多问题,也填了很多坑,就来做一下总结。
1567 0
|
5天前
|
【Java并发】【线程池】带你从0-1入门线程池
欢迎来到我的技术博客!我是一名热爱编程的开发者,梦想是编写高端CRUD应用。2025年我正在沉淀中,博客更新速度加快,期待与你一起成长。 线程池是一种复用线程资源的机制,通过预先创建一定数量的线程并管理其生命周期,避免频繁创建/销毁线程带来的性能开销。它解决了线程创建成本高、资源耗尽风险、响应速度慢和任务执行缺乏管理等问题。
111 60
【Java并发】【线程池】带你从0-1入门线程池
|
1天前
|
【源码】【Java并发】【线程池】邀请您从0-1阅读ThreadPoolExecutor源码
当我们创建一个`ThreadPoolExecutor`的时候,你是否会好奇🤔,它到底发生了什么?比如:我传的拒绝策略、线程工厂是啥时候被使用的? 核心线程数是个啥?最大线程数和它又有什么关系?线程池,它是怎么调度,我们传入的线程?...不要着急,小手手点上关注、点赞、收藏。主播马上从源码的角度带你们探索神秘线程池的世界...
24 0
【源码】【Java并发】【线程池】邀请您从0-1阅读ThreadPoolExecutor源码
Java社招面试题:一个线程运行时发生异常会怎样?
大家好,我是小米。今天分享一个经典的 Java 面试题:线程运行时发生异常,程序会怎样处理?此问题考察 Java 线程和异常处理机制的理解。线程发生异常,默认会导致线程终止,但可以通过 try-catch 捕获并处理,避免影响其他线程。未捕获的异常可通过 Thread.UncaughtExceptionHandler 处理。线程池中的异常会被自动处理,不影响任务执行。希望这篇文章能帮助你深入理解 Java 线程异常处理机制,为面试做好准备。如果你觉得有帮助,欢迎收藏、转发!
78 14
Java 面试必问!线程构造方法和静态块的执行线程到底是谁?
大家好,我是小米。今天聊聊Java多线程面试题:线程类的构造方法和静态块是由哪个线程调用的?构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节有助于掌握Java多线程机制。下期再见! 简介: 本文通过一个常见的Java多线程面试题,详细讲解了线程类的构造方法和静态块是由哪个线程调用的。构造方法由创建线程实例的主线程调用,静态块在类加载时由主线程调用。理解这些细节对掌握Java多线程编程至关重要。
49 13
【JAVA】封装多线程原理
Java 中的多线程封装旨在简化使用、提高安全性和增强可维护性。通过抽象和隐藏底层细节,提供简洁接口。常见封装方式包括基于 Runnable 和 Callable 接口的任务封装,以及线程池的封装。Runnable 适用于无返回值任务,Callable 支持有返回值任务。线程池(如 ExecutorService)则用于管理和复用线程,减少性能开销。示例代码展示了如何实现这些封装,使多线程编程更加高效和安全。

热门文章

最新文章

推荐镜像

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等