基于Java的学生管理系统

2023-11-08

学生管理系统ManageSystem

一、系统架构与环境

1.1 springboot2.3.4
1.2 maven3.3.9
1.3 jdk1.8
1.4 mysql5.7
1.5 ssm架构单服务节点

二、具备的功能

1. 用户管理
2. 文件上传下载
3. 菜单管理
4. 学生管理
5. 日志管理
6. 个人中心
7. 教师管理
8. 课程管理
9. 班级管理
10. 授课管理
11. 成绩管理

三、系统截图

3.1登录页面

系统登录页面

3.2管理员登录功能

管理员登录

3.3教师登录功能

教师登录功能

3.4学生登录功能

学生登录功能

3.5个人中心截图

个人中心

四、代码展示

4.1 上传文件代码
@RequestMapping("/uploadFile")
    @ResponseBody
    public ResponseResult upload(@RequestParam("file")MultipartFile file){
        System.out.println(file.toString());
        // 1.创建返回对象
        ResponseResult responseResult = new ResponseResult();
        // 2.创建一个json对象 用于存储返回数据信息
//        JSONObject result = new JSONObject();
        Map<String,Object> result = new HashMap<>();
        try{
            // 3.判断文件是否为空
            if(file.isEmpty()){
                responseResult.setInfo("上传文件不存在!!!");
                responseResult.setSuccess(false);
                return responseResult;
            }
            // 4.定义文件存放的路径
            String rootPath = fileConfiguration.getResourceDir();
            // 5.获取当前系统日期
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
            String currentDate = sdf.format(new Date());
            // 6.查询系统配置表,获取上传文件夹名称
            SystemConfig systemConfig = systemService.getSystem();
            String uploadDir = systemConfig.getUploaddir();
            // 7.构建文件存放的全目录
            File directory = new File(rootPath + File.separator+ uploadDir + File.separator + currentDate);
            // 8.判断这个目录是否存在 不存在则创建
            if(!directory.exists()){
                directory.mkdirs();
            }
            // 9.生成新的文件名称
            String newFileName = UUIDUtils.getPrimaryKey() + file.getOriginalFilename()
                                .substring(file.getOriginalFilename().lastIndexOf("."));
            // 10.获取创建好的绝对路径
            String absolutePath = directory.getAbsolutePath();
            // 11.构建上传路径
            File uploadpath = new File(absolutePath + File.separator + newFileName);
            // 12.上传文件
            file.transferTo(uploadpath);
            // 13.封装返回信息
            result.put("filepath", currentDate+File.separator + newFileName);
            result.put("name", newFileName);
            result.put("originalFilename", file.getOriginalFilename());
            result.put("filesize", file.getSize());
            result.put("filetype", file.getContentType());
            result.put("url", "http://localhost:8866/" + File.separator + uploadDir + File.separator + currentDate + File.separator + newFileName);
            responseResult.setSuccess(true);
            responseResult.setInfo("上传文件成功!!!");
            responseResult.setData(result);
            System.out.println(responseResult);
            return responseResult;
        }catch (Exception e){
            responseResult.setInfo("上传文件失败!!!");
            responseResult.setSuccess(false);
            return responseResult;
        }

    }

源码下载地址

点击下载源码包

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Java的学生管理系统 的相关文章

  • 如何最好地实现多个重叠元素的翻转和推出事件?

    Problem 我正在开发一个网站 其中有一个 拨号盘 显示代表伞式公司不同部门的多个选项卡 目前我已经用 HTML CSS 准备好了一切 每个选项卡的定位 内圈处于较高位置z index因为选项卡在滚动时需要向外动画 我可以实现这部分 选
  • kafka Avro 多个主题的消息反序列化器

    我正在尝试以 avro 格式反序列化 kafka 消息 我使用以下代码 https github com ivangfr springboot kafka debezium ksql blob master kafka research c
  • 将传入字符串的 unicode 表示形式转换为 UTF-8?

    我正在读取一些已经转换为 html 样式 代码的数据 我现在需要将其转换回 UTF 8 字符以供查看 不幸的是我无法使用浏览器查看该字符串 我读过有关 java 中的转换的内容 似乎如果你有一个 uxxxx 字符串 那么编译器会为你转换 然
  • 按时间戳字段中的日期过滤结果

    我已经获得了一些帮助 但不确定为什么这不起作用 我正在尝试使用表单让用户过滤他们的活动 存储在数据库中 My code GET from 01 11 2013 GET to 25 11 2013 from DateTime createFr
  • 将服务连接到现有的流星帐户

    我正在设置一个流星应用程序 其中涉及使用用户名和密码进行注册 然后希望将该帐户与 Facebook 和 Twitter 连接起来 我只需使用帐户包即可轻松启动并运行第一部分 但是当我有一个登录用户调用 Meteor loginWithFac
  • 如何将mysql数据库移动到另一个安装点

    我有一个 MySQL 数据库 它变得越来越大 我想将整个数据库移动到另一个安装点 在那里我有足够的存储空间 我希望传输当前数据 并将新数据保存到新位置 软件堆栈 在 FreeBSD 6 上运行的 MySQL 5 当然其他答案也是有效的 但如
  • Firefox OS 后台服务

    我想构建一个应用程序 用户可以通过它输入一些设置 并且应用程序将启动后台服务来根据这些设置执行一些任务 我只想在模拟器中运行应用程序和后台服务 我知道它需要 认证 模式才能运行后台服务 但我现在不考虑在 Firefox Marketplac
  • Typeahead.js 干扰 Bootstrap 输入组

    如何防止 Typeahead js 拆分我的 Twitter Bootstrap 3 输入组 每当我将 Typeahead javascript 指向属于输入组一部分的文本区域时 连接的文本区域和提交按钮就会停止连接 这只是 Typeahe
  • 如何获取 svgElement 的比例?

    我正在研究 svg div style width 300 height 300 div
  • MySQL 连接逗号分隔字段

    我有两张桌子 第一个表是batch在字段 batch 中包含逗号分隔的学生 ID 的表 batch id batch 1 1 2 2 3 4 第二个表是分数 marks id studentid subject marks 1 1 Engl
  • 设计 Javascript 前端 <-> C++ 后端通信

    在我最近的将来 我将不得不制作一个具有 C 后端和 Web 前端的系统 要求 目前 我对此了解不多 我认为前端将触发数据传输 而不是后端 所以不需要类似 Comet 的东西 由于在该领域的经验可能很少 我非常感谢您对我所做的设计决策的评论
  • 反转二进制网络

    如何反转二元方程 以便找到哪些输入将产生给定的输出 Example Inputs i0 through i8 Outputs o0 through o8 Operators XOR AND 二元方程 1 i0 1 i1 0 i2 1 i3
  • JavaScript - 这个这个

    String prototype foo String prototype foo bar function How can you reference the grandparent string console log this par
  • HashSet 与 LinkedHashSet

    它们之间有什么区别 我知道 LinkedHashSet 是 HashSet 的有序版本 维护一个跨所有元素的双向链接列表 使用此类代替 HashSet 当您关心迭代顺序时 当你迭代 HashSet 时 顺序是不可预测的 而 LinkedHa
  • 单击窗口后才检测到 keydown

    在我的 Web 应用程序中 我有一个用于打开菜单的键的事件侦听器 仅当我单击页面上的任意位置后 此功能才可以正常工作 我尝试将焦点添加到窗口加载 但这仍然不会让 keydown 函数运行 直到我单击页面上的某个位置之后 有谁知道这是否可能
  • 有时 Properties.load() 会跳过行

    在以下情况下 Properties load 会跳过 InputStream 的第二行 这是 Java 的错误还是正常行为 public class PropTest public static void main String args
  • 如何检查摘要周期是否稳定(又名“Angular 完成编译了吗?”)

    tl dr 最初的问题是 如何在每个摘要周期触发回调 但潜在的问题更有趣 因为这回答了两个问题 所以我继续修改了标题 Context 在解决了所有依赖项 nginclude API 调用等之后 我试图控制 Angular 何时完成 HTML
  • 根据 Java 环境变量中的值创建使用 @JsonIgnore 的自定义注释

    我需要创建一个新的注释 用于在环境变量设置时忽略输出 JSON 文件中的字段var false 我尝试使用JsonAnnotationIntrospector 但无法获得预期的输出 public class Vehicle String v
  • 对 Java 协议缓冲区对象进行一些小更改

    我想在 Java 协议缓冲区对象树的深处进行一个小更改 我可以使用 getBuilder 方法来创建一个新对象 该新对象是旧对象的克隆并进行一些更改 当深入完成此操作时 代码会变得丑陋 Quux Builder quuxBuilder fo
  • 禁用 Materialise Carousel 上的触摸

    看起来以前没有人问过这个问题 因为我几乎在互联网上寻找一个非常简单的答案 如何禁用在物化轮播上向左 向右滑动的功能 在 Materialize js 添加 编辑 var allowCarouselDrag true value functi

随机推荐

  • Java之美[从菜鸟到高手演变]之设计模式四

    在阅读过程中有任何问题 请及时联系 egg 邮箱 xtfggef gmail com 微博 http weibo com xtfggef 转载请说明出处 http blog csdn net zhangerqing 其实每个设计模式都是很重
  • html表格标签使用与注意事项

    表格的基本标签 场景 在网页中以行 列的单元格的方式整齐展示和数据 如 学生成绩表 基本标签 标签名 作用 table 表格的整体 用于包含多个tr tr 表格的每行 用于包含多个td td 表格单元格 用于包含内容 注意事项 嵌套关系为
  • 微信小程序分包加载,分包加载的优势

    微信小程序分包加载 有时候我们的小程序太大 首次打开小程序的时候会比较慢 可以进行分包处理 按照功能的划分 拆分成几个分包 让用户在操作小程序的时候按需下载资源 用户在进入某些页面的时候才去下载相应的资源 加载这个功能对应的分包 使用分包可
  • springboot设置logback-spring.xml的加载路径

    springboot将应用程序打包成jar以后 默认是将logback spring xml放在jar包里面根路径下 图 如果我们需要springboot加载jar包外部的logback spring xml应该怎么做了 例如我们想加载与x
  • shuffle机制详解

    将map输出作为输入传递给reducer的过程称为shuffle Shuffle过程包含在Map和Reduce两端 map阶段大致过程为 写数据 分区 排序 将属于同一分区的输出合并一起写在磁盘上 每个map任务都有一个环形内存缓冲区用于存
  • 服务里面找不到MySQL

    今天在连接数据库时发现自己的数据库出现了问题 在命令窗口输入 net start mysql 命令 还是启动不了 发现在服务里面竟然没有mysql服务了 1 以管理员身份运行cmd 切换到mysql安装目录的bin路径下 2 运行命令 my
  • C++构造函数简单实现电梯控制程序

    对于电梯 属性之一就是位置 所以要实现这一程序 要设置电梯的初始位置和按下电梯按钮改变的电梯的位置 代码如下 include
  • 【Linux】利用云服务器搭建云盘替代百度网盘、OneDrive等,docker安装seafile服务端,实现网页端上传下载,本地Linux、Windows安装客户端实时同步

    写在前面 博主使用OneDrive比较多 教育版有1t的大小 但是由于OneDrive在Linux系统中通过API不能连接学校的教育版 因此迫切需要一个云盘来替代OneDrive 由于之前也使用过Seafile 因此考虑使用Seafile搭
  • 编辑器正则替换px为rem

    正则部分 d d px 被替换部分 calc 1rem 100 注 此方法只能替换原css文件内无calc 运算的
  • 关于Unicode,UTF-8,GB编码详解

    内容来自网络 有部分修正 一 首先我们需要明白关于字符 character 字符集 character set 字符编码方式 character encoding 的概念 字符 字符是抽象的最小文本单位 它没有固定的形状 可能是一个字形 而
  • [901]sqlite数据库的导出与导入

    文章目录 SQLite 获取所有表名 通过 sqlite3 test db 命令进入sqlite数据库的shell 操作 python 脚本 help 直接导出csv文件 SQLite 仅仅支持 ALTER TABLE 语句的一部分功能 我
  • ansible常用模块使用方法

    ansible playbook执行方法 这个是你选择的主机 hosts webservers 这个是变量 vars http port 80 max clients 200 远端的执行权限 remote user root tasks 如
  • 实战技术产品经理

    文章转自 人人都是产品经理 并不代表企业实战 工具使用 办公工具的使用比如AXURE OFFICE 云笔记 PS等 决定办公效率 系统熟练 对后端数据及前端设计规范的了解程度 决定验收能力和设计合理度 沟通表达 对开发跟进及资源争取方面的推
  • 【强化学习】

    强化学习DQN 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 强化学习DQN DQN算法的简介 一 环境的介绍 二 DQN算法 1 DQN算法的关键技术 2 DQN代码 2 1 导入库 2 2 定义类 2 3
  • Ubuntu 22.04.3 LTS安装

    最近换电脑了 准备重新装一下ubuntu 多年前装过ubuntu很老的版本 现在发现官网最新的LTS版本是 Ubuntu 22 04 3 LTS 版本 那重新装的话 肯定装最新的版本了 这里我记录下自己的安装过程 作为以后的笔记查看 我的环
  • Android 添加开启/关闭应用信息界面的接口

    修改记录 mt67xx 11 0 应用信息界面是个Fragment不是Activity 不能用pm setComponentEnabledSetting方法做禁用 a alps vendor mediatek proprietary pac
  • oracle 12.2.0.1 opatch lsinventory时报LsInventorySession failed: RawInventory gets null OracleHomeInfo

    grid node1 opatch lsinventory detail oh u01 app 12 2 0 grid Oracle Interim Patch Installer version 12 2 0 1 25 Copyright
  • Socks5代理:网络安全与爬虫之利器

    一 Socks5代理 简介与工作原理 Socks5代理 全称为Socket Secure 5代理 是一种允许用户通过代理服务器进行网络连接的技术 它是Socks协议的最新版本 在网络安全和数据传输方面有着显著的优势 Socks5代理与其他代
  • `计算机知识` 驱动程序

    catalog 驱动 全称为 设备驱动程序 Device driver 首先 我们的计算机 是无法直接和 外部硬件设备 显卡 声卡 进行通信的 因为 我们的计算机 OS 编程语言 使用的是 代码 而外部硬件设备 识别的是 电子信号 这两个是
  • 基于Java的学生管理系统

    学生管理系统ManageSystem 一 系统架构与环境 1 1 springboot2 3 4 1 2 maven3 3 9 1 3 jdk1 8 1 4 mysql5 7 1 5 ssm架构单服务节点 二 具备的功能 1 用户管理 2