javaSSM整合的一个小项目(员工管理系统)

前言:

本人是一个大三的计算机专业学生。这学期学习了Java的企业级应用开发这门课,最后,有一个结课的小项目,是使用SSM整合写一个系统。我本次写的是一个员工管理系统,虽然十分的简单,但是足以应对这次的期末考核了。这里,我将这个项目分享出来,希望,接下来学弟、学妹们可以直接的下载运行,而不需要自己再苦哈哈的去敲这个代码了。

由于本人是机算机专业,所以在上大学之后,就开始就行自主的学习了。我的主攻方式是Java后端开发,所以,其实早在大二的时候,就可以自己写一个简单的项目了。到了大三,又学习了一些前端技术(vue3),学习了微服务之后。既能够自主独立的敲写一份前后端分离的微服务项目了。

奈何学校的进度太低了,直到大三才系统的学习spring框架。Java的企业级应用开发这门课主要讲解了SSM技术的整合。其实之前我一直用的就是spring boot,毕竟都2024年了。但是这次结课作业,老师指定要用SSM加上JSP编写项目。本来我以为这应该很简单的(毕竟,咱可以从0开始,前后端分离的开发了一个微服务项目),但是,真正写的时候才发现,技术的熟练程度真的很大程度上取决与你是否经常性的联系。虽然写的时候很多东西都知道是怎么回事,但是还是要系统的翻查一边才敢真正的编写(在这里,我深刻的了解到spring boot自动装配的魅力)。而且,习惯了使用前后端分离开发模式,现在突然使用一体化开发真的有点不适应。并且,使用JSP编写页面真的好难啊。所以,我本次,在JSP页面中又新建了一个vue项目,使用element作为样式支持。

本次使用到的技术有:Java8(现在2024年了,别问我为什么不用java17,因为这是强制要求的。可能觉得Java8还能再战十年)spring5.3.7、MySQL5.1.48、vue2、tomcat9

我本次直接上传一个压缩包,这个压缩包中有源码、数据库文件、实验报告。我的宗旨就是希望,这些低级的代码真的,有人敲一遍就够了。真的不能人人都敲。原本想将这些东西放在git上的,但是考虑到有些同学可能考公或考研。对git的使用不熟悉,所以,直接放在这里了。

注意:要运行项目时,首先要执行sql文件:

使用数据库的可视化工具Navicat。先创建一个ssm数据库,然后直接点击执行sql文件即可;

使用idea打开项目:配置tomcat的连接信息

我使用到tomcat版本是9,如果,你在项目启动过程中发现中文乱码问题。可以试着将idea的编码方式改为utf-8,或者也有可能是tomcat的编码问题,可以试着修改一下tomcat的配置文件:

对于idea要确保:

对与tomcat。要确保:conf目录下的server.xml文件中:

这都是我踩过的坑,在这里分享一下:

现在直接启动tomcat容器,会自动跳转到登录页面:

员工可以直接使用用户名和密码进行登录,也可以先注册一个用户。注册成功之后会跳转到这个登录页面,然后根据注册的用户名和密码进行登录:

员工注册:

这些信息都要填完整,我数据库中设置为非空

员工登录成功之后,进入到主页面:

在左边的菜单栏,有三个菜单,点击之后,就可以进行对相应的数据做基本的增、删、改、查了。

由于,我在JSP页面中又创建了一个vue。(直接在线引入了vue的依赖)所以点击菜单之后,可能会有一些延迟,才能显示正常的数据

重点在于员工数据的操作:

点击员工管理之后,会出现所有的员工信息,在下面还有一个分页条。可以通过分页条来展示数据。

点击新增员工之后,会弹出一个框,可以再这个框中进行员工数据的添加:

在这里需要着重说明的一点是,我们点击头像上传之后,会弹出一个框,选择一张图片,在后端中我将这张图片存储到了:

并且,将图片进行了base64编码之后,放在了数据库中,这样可以更好的在前端展示我们的图片信息。这也是获取数据比较卡的一点(base64字节类型的数据传输需要消耗大量的时间)

单独对每一位员工可以进行修改和删除。

点击修改会进行员工数据的回显(这里修改只能修改员工的一部门数据)

点击部门管理:可以查看到部门的有关信息:

同样的,可以对部门信息进行相应的增、删、该、查处理:

职位管理亦是如此:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/703308.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[学习笔记] VFX Silhouette

目录 Part 1 : The interface of Silhouettte (Silhouette的界面介绍) Part 2: The shape divisions and manual roto(形状分区和手动roto工作): Part 3: tracking : Part 4: Mocha Tracking Part 5: Motion Blur(…

ColorEasyDuino上手指南

介绍 ColorEasyDuino是嘉立创推出的一块Aduino开发板(类似物),具有丰富的外设接口:uart、i2c、spi、adc、pwm等;开发板设计参考原型是Arduino Uno,采用的芯片是ATMEGA328P,它的外观设计比较紧凑…

【git使用三】git工作机制与命令用法

目录 git工作机制和相关概念 四个重要区域 分支的概念 上传代码到远程分支的基本流程 克隆代码 仓库同步 开发者如何提交代码到远程仓库分支 1.初始化本地仓库 2.关联本地仓库和远程仓库 创建关联 查看关联情况 如何解除关联 3.推送代码到远程仓库 3.1先下拉远程…

Python算法于强化学习库之rlax使用详解

概要 在强化学习领域,开发和测试各种算法需要使用高效的工具和库。rlax 是 Google 开发的一个专注于强化学习的库,旨在提供一组用于构建和测试强化学习算法的基础构件。rlax 基于 JAX,利用 JAX 的自动微分和加速计算功能,使得强化学习算法的实现更加高效和简洁。本文将详细…

[数据分享第二弹]降水、植被、土壤等生态相关数据分享

数据是GIS的重要组成部分,也是我们进行研究分析的基础。在日常工作中,我们时常因数据问题而犯难,今天就来继续做一波相关数据分享。 1.世界土壤数据库(HWSD)全球土壤数据 世界协调土壤数据库 2.0 版 (HWS…

【电子通识】为何焊接时要使用助焊剂?常用的助焊剂类型有哪些?

在工作中,我们会接触到板卡的焊接,会使用到助焊剂,如常常使用的就有松香。如下所示为焊接芯片时使用的拖焊,如果没有助焊剂,很有可能导致管脚连锡或有毛刺等现象出现。 那么助焊剂是什么?为什么它对焊接项目…

AcWing 1639:拓扑顺序 ← 链式前向星

【题目来源】https://www.acwing.com/problem/content/1641/【题目描述】 这是 2018 年研究生入学考试中给出的一个问题: 以下哪个选项不是从给定的有向图中获得的拓扑序列? 现在,请你编写一个程序来测试每个选项。 【输入格式】 第一行包含两…

JS :深拷贝解析与实现(附structuredClone语法测试)

浅拷贝简介 深拷贝是创建一个新对象,这个新对象包含原对象所有属性的全新拷贝,无论是基本数据类型还是引用类型的数据都会被完全复制一份,新旧对象间不存在任何关联,彼此独立。 前言 OK,最近又又又在学习JS的过程中…

【ARM Cache 与 MMU/MPU 系列文章 2.1 -- 什么是 Cache PoP 及 PoDP ?】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 PoP 及 PoDPCache PoDPCache PoP应用和影响PoP 及 PoDP Cache PoDP 点对深度持久性(Point of Deep Persistence, PoDP)是内存系统中的一个点,在该点达到的任何写操作即使在系统供电…

图的遍历介绍

概念 特点 无论是进行哪种遍历,均需要通过设置辅助数组标记顶点是否被访问来避免重复访问!!!! 类型 深度优先遍历 可以实现一次遍历访问一个连通图中的所有顶点,只要连通就能继续向下访问。 因此&#x…

48【Aseprite 作图】荷塘月色——拆解

1 荷叶,不要完全对称,下面是深色的,上面是浅色的,加一点高光 2 鱼的轮廓 上色彩,主要用三种颜色,修改透明度,叠加颜色

“粘土风格”轻松拿捏,基于函数计算部署 ComfyUI实现AI生图

阿里云函数计算 FC 一键部署火爆全球工作流 AI 生图平台—— ComfyUI ,实现更高质量的图像生成,三步轻松完成“黏土”创意AI画作,晒图赢眼部按摩器等好礼! 活动地址: https://developer.aliyun.com/topic/june/fcspma…

Vue3【十七】props的作用和组件之间的传值限定类型和默认值

Vue3【十七】props的作用和组件之间的传值限定类型和默认值 Vue3【十七】props的作用和组件之间的传值限定类型和默认值 父组件传值给子组件 多个值传递 传值限定类型和 默认值 实例截图 目录结构 代码 person.vue <template><div class"person"><p…

Python版本管理器-Miniconda

随着Python的版本更新&#xff0c;我们在开发Python软件的时候&#xff0c;对Python的版本选择越来越重要&#xff0c;但同时又要兼容已经开发好了的Python软件&#xff0c;因此选择一款合适的Python版本管理器对提高开发效率也越来越重要&#xff0c;今天就推荐一款Python的版…

InfiniBand网络内计算架构指南

InfiniBand网络内计算知多少&#xff1f; InfiniBand在高性能计算和人工智能领域占据核心地位&#xff0c;其高速、低延迟的网络通信能力支持大规模数据传输与复杂计算。在网络内计算领域&#xff0c;InfiniBand的应用日益广泛&#xff0c;通过内部计算降低延迟&#xff0c;提升…

【JVM】之常见面试题

文章目录 1.JVM中的内存区域划分2.JVM的类加载机制2.1 加载2.2 验证2.3 准备2.4 解析2.5 初始化2.6 类加载的时机 3 类加载器4.双亲委派模型5.JVM中的垃圾回收策略5.1 找谁是垃圾5.1.1 引用计数法5.1.2 可达性分析法 5.2 释放垃圾5.2.1 标记清除算法5.2.2 复制算法5.2.3 标记整…

ASUS华硕ROG幻14Air笔记本GA403UI(UI UV UU UJ)工厂模式原厂Windows11系统安装包,带MyASUS in WinRE重置还原

适用型号&#xff1a;GA403UI、GA403UV、GA403UU、GA403UJ 链接&#xff1a;https://pan.baidu.com/s/1tz8PZbYKakfvUoXafQPLIg?pwd1mtc 提取码&#xff1a;1mtc 华硕原装WIN11系统工厂包带有ASUS RECOVERY恢复功能、自带面部识别,声卡,显卡,网卡,蓝牙等所有驱动、出厂主题…

【Python】已完美解决:(Python键盘中断报错问题) KeyboardInterrupt

文章目录 一、问题背景二、可能出错的原因三、错误代码示例四、正确代码示例&#xff08;结合实战场景&#xff09;五、注意事项 已解决&#xff1a;Python中处理KeyboardInterrupt&#xff08;键盘中断&#xff09;报错问题 一、问题背景 在Python编程中&#xff0c;当我们运…

uni-date-picker 禁用日期功能

在uni-datetime-picker组件中 calendar.vue <template><view class"uni-calendar" mouseleave"leaveCale"><view v-if"!insert && show" class"uni-calendar__mask" :class"{uni-calendar--mask-show:an…

Python-Socket网络编程简单示例

# TCP 服务端程序 server.py # 导入socket 库 from socket import *# 主机地址为空字符串&#xff0c;表示绑定本机所有网络接口ip地址 # 等待客户端来连接 IP # 端口号 PORT 50000 # 定义一次从socket缓冲区最多读入512个字节数据 BUFLEN 512# 实例化一个socket对象 # 参…