当前位置: 首页 > news >正文

Spring Boot + MySQL 企业部门员工管理系统(附完整源码)

🚀 Spring Boot + MySQL 企业部门员工管理系统(附完整源码)

💡 项目已打包成完整资源包,文末可下载!


📌 项目简介

本项目是一个基于Spring Boot 3 + MyBatis + MySQL的企业部门员工管理系统,提供完整的 RESTful API 接口,支持部门管理和员工管理的增删改查操作。

项目特点:

  • ✅ 代码规范、结构清晰、注释完整
  • ✅ 统一接口返回格式(Result<T>
  • ✅ 支持跨域请求
  • ✅ 开箱即用,一键启动
  • ✅ 适合毕业设计、课程作业、项目实战练手

🛠️ 技术栈

技术版本说明
Spring Boot3.2.0后端核心框架
MyBatis3.0.3ORM 数据访问层
MySQL8.0+关系型数据库
Lombok最新简化实体类代码
Maven3.9+项目构建工具
Java17编程语言

📁 项目结构

demo/ ├── src/main/java/com/yourname/deptemp/ │ ├── common/ │ │ └── Result.java # 统一返回结果 │ ├── controller/ │ │ ├── DeptController.java # 部门API控制器 │ │ └── EmpController.java # 员工API控制器 │ ├── entity/ │ │ ├── Dept.java # 部门实体 │ │ └── Emp.java # 员工实体 │ ├── mapper/ │ │ ├── DeptMapper.java # 部门数据访问层 │ │ └── EmpMapper.java # 员工数据访问层 │ ├── service/ │ │ ├── DeptService.java # 部门服务接口 │ │ ├── EmpService.java # 员工服务接口 │ │ └── impl/ │ │ ├── DeptServiceImpl.java # 部门服务实现 │ │ └── EmpServiceImpl.java # 员工服务实现 │ └── Application.java # 项目启动类 ├── src/main/resources/ │ └── application.yml # 配置文件 └── pom.xml # Maven依赖管理

🗄️ 数据库设计

表结构

部门表(dept)

字段类型说明
idint部门ID(主键,自增)
namevarchar(50)部门名称
locationvarchar(100)部门位置
create_timedatetime创建时间
update_timedatetime更新时间

员工表(emp)

字段类型说明
idint员工ID(主键,自增)
namevarchar(50)员工姓名
ageint年龄
gendervarchar(10)性别
dept_idint所属部门ID(外键)
create_timedatetime创建时间
update_timedatetime更新时间

📡 API 接口文档

部门管理接口

方法地址功能
GET/api/dept查询所有部门
GET/api/dept/{id}根据ID查询部门
POST/api/dept新增部门
PUT/api/dept修改部门
DELETE/api/dept/{id}删除部门

员工管理接口

方法地址功能
GET/api/emp查询所有员工
GET/api/emp/{id}根据ID查询员工
GET/api/emp/dept/{deptId}根据部门ID查询员工
POST/api/emp新增员工
PUT/api/emp修改员工
DELETE/api/emp/{id}删除员工

接口返回格式

{ "code": 200, "message": "操作成功", "data": [...] }
code说明
200操作成功
500操作失败

🔧 快速启动

1. 环境要求

  • JDK 17+

  • MySQL 8.0+

  • Maven 3.9+

2. 导入数据库

-- 创建数据库
CREATE DATABASE IF NOT EXISTS demo_db DEFAULT CHARSET utf8mb4;

USE demo_db;

-- 创建部门表
CREATE TABLE `dept` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '部门ID',
`name` varchar(50) NOT NULL COMMENT '部门名称',
`location` varchar(100) DEFAULT NULL COMMENT '部门位置',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门表';

-- 插入测试数据
INSERT INTO `dept` (`name`, `location`) VALUES
('技术部', '北京'),
('市场部', '上海'),
('人事部', '深圳');

-- 创建员工表
CREATE TABLE `emp` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '员工ID',
`name` varchar(50) NOT NULL COMMENT '员工姓名',
`age` int DEFAULT NULL COMMENT '年龄',
`gender` varchar(10) DEFAULT NULL COMMENT '性别',
`dept_id` int DEFAULT NULL COMMENT '所属部门ID',
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_dept_id` (`dept_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='员工表';

-- 插入测试数据
INSERT INTO `emp` (`name`, `age`, `gender`, `dept_id`) VALUES
('张三', 25, '男', 1),
('李四', 30, '女', 2),
('王五', 28, '男', 1);

3. 修改数据库配置

打开src/main/resources/application.yml,修改数据库密码:

spring:
datasource:
username: root
password: 你的MySQL密码

4. 启动项目

在终端中执行:

cd ~/IdeaProjects/demo
./mvnw clean spring-boot:run

5. 测试接口

打开浏览器访问:

http://localhost:8080/api/dept

如果看到部门列表的 JSON 数据,说明启动成功!

📷 运行效果

请求:

GET http://localhost:8080/api/dept

响应:

{
"code": 200,
"message": "操作成功",
"data": [
{
"id": 1,
"name": "技术部",
"location": "北京",
"createTime": "2026-07-30T12:58:23",
"updateTime": "2026-07-30T12:58:23"
}
]
}

💡 项目亮点

  1. 代码规范:结构清晰,分层明确

  2. 统一返回格式:所有接口返回统一的Result<T>格式

  3. 注解式SQL:使用 MyBatis 注解,无需 XML

  4. 开箱即用:导入数据库 → 修改密码 → 启动即可

  5. 适合教学:代码简洁,适合初学者学习 Spring Boot

📦 资源包内容

文件说明
完整源码Spring Boot + MyBatis 全部代码
SQL脚本建表语句 + 测试数据
配置文件application.yml(已配置好)

📥 下载方式

点击下方链接即可获取完整资源包!

[资源包下载链接]


🙏 支持与反馈

  • 购买后如有任何问题,请在评论区留言

  • 我会第一时间回复

http://www.cnnetsun.cn/news/3765817.html

相关文章:

  • Obsidian表格管理革命:告别Markdown限制,拥抱专业电子表格
  • c++入门——友元
  • BetterGI终极指南:如何轻松实现原神全自动化游戏体验 [特殊字符]
  • 三步快速获取百度文库纯净PDF:免费下载工具终极指南
  • Box64终极指南:在ARM64设备上运行x86程序的完整教程
  • 靠谱工厂的AI热成像检测机,如何选对才省心?
  • 面向 JVM 特性的云原生之路:Kubernetes 治理 Java 微服务的六大核心机制
  • 5分钟掌握Form-Generator:Element UI可视化表单设计的终极解决方案
  • kubeadm 离线部署全流程-20260730
  • Vben Admin 5.0技术栈解析与中后台开发实战
  • 《无畏契约》深度解析:从射击机制到战术博弈的竞技游戏设计
  • STM32F103驱动TMC2209步进电机:UART配置与静音控制实战
  • AI视频抠像失效的7个隐性元凶(附实测对比数据集与逐帧调试SOP)
  • 供应链防线深度实践:GitHub Actions 的执行前拦截来了,Agent CI/CD 还要补哪三道门
  • 微信小程序开发框架与工具链选型实战:Taro vs uni-app深度解析
  • 语言模型如何革新复杂系统优化求解
  • AI视频无缝衔接完全指南
  • VMWare Player安装Red Hat Linux:免费虚拟机环境搭建与优化指南
  • 双缸剪刀片生产厂家最新选购指南一览
  • 5分钟掌握终极压缩神器:免费开源的视频图片批量压缩工具
  • 抖音批量下载神器完整指南:5分钟掌握高效内容管理
  • Cocos Creator VR开发环境配置全攻略:从原理到实践
  • DLSS Swapper完全指南:像换轮胎一样轻松更换游戏DLSS版本
  • Python基础数据类型详解:从整数到复数
  • 从零开始:如何用Rhino.Inside.Revit免费打通BIM与参数化设计壁垒
  • DLSS Swapper完全指南:轻松管理游戏DLSS版本提升性能体验
  • iNeuOS_AiInsight·数智灵鉴(Text2SQL/NL2SQL自然语言大模型智能问数),免费下载试用
  • 如何在PC上畅玩Switch游戏:yuzu模拟器完整指南
  • DX诺克斯驱动器评测:三种形态切换的假面骑士玩具体验
  • AI辅助学术写作:论文引言生成技术解析