Java项目:springboot田径运动会管理系统

news2024/11/17 13:29:19

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

本项目分为管理员、学生两种角色,
管理员主要功能包括:
功能:登录、查看个人资料、修改密码、选手管理、赛事管理、报名管理、成绩管理、开幕式管理、闭幕式管理

学生主要功能包括:
首页,
项目管理:报名项目、查看已报名项目;
成绩查询:单个项目查询、总成绩查询、个人总积分查询;
查看开幕式;
查看闭幕式;

个人资料:查看个人资料、修改密码;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
5.数据库:MySql 8.0版本;

6.是否Maven项目:是;

技术栈

1. 后端:SpringBoot

2. 前端:Thymeleaf+HTML+CSS+jQuery

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;

3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入localhost:8080/ 登录
管理员账号/密码:10001/123456

学生账号/密码:1001/123456

运行截图

代码相关

成绩管理控制器

@Controller
public class GradeController {

    @Autowired
    GradeService gradeService;
    @Autowired
    SportsService sportsService;
    @Autowired
    StudentService studentService;

    //去显示成绩页面
    @RequestMapping("/admin/toGetScore")
    public String toGetScore(Model model){
        //将项目名称返回
        List list = sportsService.querySports();
        model.addAttribute("list",list);
        //一加载页面默认查出一个项目的成绩
        List scoreDefault = gradeService.selectWithStuAndSportsDefault();
        //System.out.println(scoreDefault);
        model.addAttribute("scoreDefault",scoreDefault);
        return "admin/scorelist-byOne";
    }

    //显示单项目成绩
    @RequestMapping("/admin/getScoreBySportsName")
    public String getScoreBySportsName(@RequestParam("sportsId") Integer sportsId,Model model ){
        //将项目名称返回
        List list = sportsService.querySports();
        model.addAttribute("list",list);
        //将sportsId返回
        model.addAttribute("sportsId",sportsId);
        //System.out.println(sportsId);
        List scoreList = gradeService.selectWithStuAndSports(sportsId);
        model.addAttribute("scoreDefault",scoreList);
        return "admin/scorelist-byOne";
    }

    //去修改成绩页面
    @RequestMapping("/admin/toUpdGrade/{idAndsportsId}")
    public String toUpdGrade(@PathVariable("idAndsportsId") String idAndsportsId,Model model){
        //System.out.println(idAndsportsId);
        String[] split = idAndsportsId.split("-");
        int stuId=Integer.parseInt(split[0]);
        int sportsId=Integer.parseInt(split[1]);
        //System.out.println(stuId+",,>"+sportsId);
        SportsScore sportsScore = sportsService.queryStuScore(stuId, sportsId);
        //System.out.println(sportsScore);
        model.addAttribute("sportsScore",sportsScore);
        return "admin/grade-upd";
    }

    //修改成绩
    @RequestMapping("/admin/updScore")
    @ResponseBody
    public Msg updScore(SportsScore sportsScore,Model model){
        //System.out.println(sportsScore);
        gradeService.updScore(sportsScore);
        return Msg.success().add("msg","修改成功");
    }

    //查询总项目情况
    @RequestMapping("/admin/toGetScoreAll/{pn}")
    public String toGetScoreAll(@PathVariable(value = "pn") Integer pn,Model model){
        List schoolName = studentService.querySchool();
        model.addAttribute("schoolName",schoolName);

        PageHelper.startPage(pn,5);
        List scoreAll = gradeService.getScoreAll();
        PageInfo page=new PageInfo(scoreAll,5);
        model.addAttribute("pageInfo",page);
        model.addAttribute("sign","toGetScoreAll");
        model.addAttribute("signTable","toGetScoreAll");
        //System.out.println(page);
        return "admin/score-all";
    }

    String gender;
    String school;
    //查询总项目情况--带条件
    @RequestMapping("/admin/getScoreAllWithCondition/{pn}")
    public String getScoreAllWithCondition(@RequestParam(value = "school",required = false)String school,
                                   @RequestParam(value = "gender",required = false)String gender,
                                   @PathVariable(value = "pn") Integer pn,
                                   Model model){

        if(school!=null||gender!=null) {
            this.school = school;
            this.gender = gender;
        }
//        System.out.println(this.id+"-->"+this.gender+"-->"+this.school);
        List schoolName = studentService.querySchool();
        model.addAttribute("schoolName",schoolName);

        model.addAttribute("school",this.school);
        model.addAttribute("gender",this.gender);

        PageHelper.startPage(pn,5);
        List scoreAllWithCondition = gradeService.getScoreAllWithCondition(this.school, this.gender);

        PageInfo page=new PageInfo(scoreAllWithCondition,5);
        model.addAttribute("pageInfo",page);
        model.addAttribute("sign","scoreAllWithCondition");
        model.addAttribute("signTable","toGetScoreAll");
        return "admin/score-all";
    }

    //查询学校总分情况
    String sportsType;
    @RequestMapping("/admin/scoreAll/{pn}")
    public String scoreAll(@RequestParam(value = "sportsType",required = false)String sportsType,
                           @PathVariable(value = "pn") Integer pn,
                           Model model){
        //System.out.println(this.sportsType);
        if(sportsType!=null)
        this.sportsType=sportsType;

        List schoolName = studentService.querySchool();
        model.addAttribute("schoolName",schoolName);

        if(this.sportsType==""||this.sportsType==null){
            PageHelper.startPage(pn,5);
            List scoreBySchoolAll = gradeService.getScoreBySchoolAll();
            PageInfo page=new PageInfo(scoreBySchoolAll,5);
            //System.out.println(page);
            model.addAttribute("pageInfo",page);
            model.addAttribute("sign","scoreAll");
            model.addAttribute("signTable","scoreAll");
            return "admin/score-all";
        }
        else {
            model.addAttribute("sportsType",this.sportsType);
            PageHelper.startPage(pn,5);
            List scoreBySchoolTypeAll = gradeService.getScoreBySchoolTypeAll(this.sportsType);
            PageInfo page=new PageInfo(scoreBySchoolTypeAll,5);
            //System.out.println(page);
            model.addAttribute("pageInfo",page);
            model.addAttribute("sign","scoreAll");//分页
            model.addAttribute("signTable","scoreAllBySportsType");//表格
            return "admin/score-all";
        }
    }
}

运动管理控制器

@Controller
public class SportsController {

    @Autowired
    private SportsService sportsService;
    @Autowired
    private RefereeService refereeService;
    @Autowired
    private StudentService studentService;

    //分页显示运动项目
    @RequestMapping("/admin/getSports/{pn}")
    public String getStuWithJson(@PathVariable(value = "pn") Integer pn,Model model){
        PageHelper.startPage(pn,5);
        //startPage后面紧跟的这个查询就是一个分页查询
        List<Sports> sports=sportsService.querySports();
        List sportsName = sportsService.querySportsName();

        model.addAttribute("sports",sports);
        model.addAttribute("sportsName",sportsName);

        PageInfo page=new PageInfo(sports,5);
        //System.out.println(page);
        model.addAttribute("pageInfo",page);
        model.addAttribute("sign","getSports");
        return "admin/sports-list";
    }

    String sportsName;
    String sportsType;
    //分页显示运动项目----带条件
    @RequestMapping("/admin/querySportsWithCondition/{pn}")
    public String querySportsWithCondition(@RequestParam(value = "sportsName",required = false)String sportsName,
                                        @RequestParam(value = "sportsType",required = false)String sportsType,
                                        @PathVariable(value = "pn") Integer pn,
                                        Model model){
        if(sportsName!=null||sportsType!=null) {
            this.sportsName = sportsName;
            this.sportsType = sportsType;
        }
//        System.out.println(this.id+"-->"+this.gender+"-->"+this.school);
        List sportsName1 = sportsService.querySportsName();
        model.addAttribute("sportsName",sportsName1);

        model.addAttribute("sports",this.sportsName);
        model.addAttribute("sportsType",this.sportsType);


        PageHelper.startPage(pn,5);
        List<Sports> sports=sportsService.querySportsWithCondition(this.sportsName,this.sportsType);
        PageInfo page=new PageInfo(sports,5);
        model.addAttribute("pageInfo",page);
        model.addAttribute("sign","querySportsWithCondition");
        return "admin/sports-list";

    }

    //去添加运动项目页面,展示裁判姓名
    @RequestMapping("/admin/toAddSports")
    public String toAdd(Model model) {
        List referee = refereeService.queryReferee();
        model.addAttribute("referee",referee);
        return "admin/sports-add";
    }
    //添加运动项目
    @RequestMapping("/admin/addSports")
    @ResponseBody
    public Msg addStu(Sports sports) {
        //System.out.println(sports);
        sportsService.addSports(sports);
        return Msg.success();
    }

    //去运动项目修改页面
    @RequestMapping("/admin/toUpdSports/{sportsId}")
    public String toUpdSports(@PathVariable("sportsId")Integer sportsId , Model model) {
        Sports sports = sportsService.querySportsById(sportsId);
        model.addAttribute("sports",sports);

        List referee = refereeService.queryReferee();
        model.addAttribute("referee",referee);

        return "admin/sports-update";
    }

    //修改运动项目
    @RequestMapping("/admin/updSports")
    @ResponseBody
    public Msg updSports(Sports sports, Model model) {
        //System.out.println(sports);
        sportsService.updSports(sports);
        return Msg.success().add("msg","修改成功!");
    }

    //删除运动项目
    @RequestMapping(value = "/admin/toDelSports/{sportsId}",method = RequestMethod.DELETE)
    @ResponseBody
    public Msg toDelSports(@PathVariable("sportsId") String sportsId){
        int sportsId2=Integer.parseInt(sportsId);
        sportsService.delSportsById(sportsId2);
        return Msg.success().add("msg","删除成功!");
    }



//     根据类型查询运动项目
//    @RequestMapping(value = "/admin/querySportsByType",method = RequestMethod.GET)
//    @ResponseBody
//    public Msg querySportsByType(@RequestParam("sportsType") String sportsType,
//            Model model) {
//        List list = sportsService.querySportsByType(sportsType);
//        System.out.println(list);
//        model.addAttribute("sports",list);
//        return Msg.success().add("sports",list);
//    }



    //分页显示报名信息
    @RequestMapping("/admin/toEntryForm/{pn}")
    public String toEntryForm(@PathVariable(value = "pn") Integer pn,Model model){
        PageHelper.startPage(pn,5);
        List list = sportsService.entryForm();
        List sportsName = sportsService.querySportsName();
        //System.out.println(list);
        model.addAttribute("list",list);
        model.addAttribute("sportsName",sportsName);
        PageInfo page=new PageInfo(list,5);
        //System.out.println(page);
        model.addAttribute("pageInfo",page);
        model.addAttribute("sign","getSports");
        return "admin/entry-form";
    }

    //分页显示报名信息----带条件
    @RequestMapping("/admin/toEntryFormWithCondition/{pn}")
    public String toEntryFormWithCondition(@RequestParam(value = "sportsName",required = false)String sportsName,
                                           @RequestParam(value = "sportsType",required = false)String sportsType,
                                           @PathVariable(value = "pn") Integer pn,
                                           Model model){
        if(sportsName!=null||sportsType!=null) {
            this.sportsName = sportsName;
            this.sportsType = sportsType;
        }

        List sportsName1 = sportsService.querySportsName();
        model.addAttribute("sportsName",sportsName1);

        model.addAttribute("sports",this.sportsName);
        model.addAttribute("sportsType",this.sportsType);

        PageHelper.startPage(pn,5);
        List<EntryForm> entryForm=sportsService.entryFormWithCondition(this.sportsName,this.sportsType);
        PageInfo page=new PageInfo(entryForm,5);
        model.addAttribute("pageInfo",page);
        model.addAttribute("sign","querySportsWithCondition");
        return "admin/entry-form";

    }

    //去录入成绩页面
    @RequestMapping("/admin/toAddGrade/{idAndsportsId}")
    public String toAddGrade(@PathVariable("idAndsportsId")String idAndsportsId, Model model) {
        //System.out.println(idAndsportsId);
        String[] split = idAndsportsId.split("-");
        int stuId=Integer.parseInt(split[0]);
        int sportsId=Integer.parseInt(split[1]);
        String sportsType=split[2];
        model.addAttribute("stuId",stuId);
        model.addAttribute("sportsIdScore",sportsId);
        model.addAttribute("sportsType",sportsType);
//        List list = sportsService.querySports();
//        model.addAttribute("sports",list);
        return "admin/grade-add";
    }

    //添加成绩
    @RequestMapping("/admin/addGrade")
    @ResponseBody
    public Msg addGrade(SportsScore sportsScore){
        //System.out.println(sportsScore);
        SportsScore stuScore = sportsService.queryStuScore(sportsScore.getStuId(), sportsScore.getSportsIdScore());
        if(stuScore==null) {//没有成绩,可以录入
            sportsService.addGrade(sportsScore);
            return Msg.success().add("msg", "录入成功!");
        }else{
            return Msg.fail().add("msg","该学生已存在成绩,请不要重复录入!");
        }
    }



}

如果也想学习本系统,下面领取。回复:075springboot

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot 2.7.1学习---构建SpringBoot的几种方式

开发环境: SpringBoot2.7.1需要JDK版本8,Spring版本需要5.3.20或更高版本 maven版本3.5以上 如果不使用内置Tomcat,需要tomcat9.0或以上 Tomcat9好像没有,先搞个 SpringBoot 2.7.1快速入门 构建SpringBoot的几种方式 1.maven方式构建 写一个启动类 且加上SpringBootAppli…

还在手动发早安吗?教你用java实现每日给女友微信发送早安

摘要&#xff1a;教你如何用java实现每日给女友微信发送早安等微信信息。本文分享自华为云社区《java实现每日给女友微信发送早安等微信信息》&#xff0c;作者&#xff1a;穆雄雄 。 前言 据说这个功能最近在抖音上很火&#xff0c;我没有抖音&#xff0c;没有看到。 但是我…

排序

章节目录&#xff1a;一、排序算法1.1 概述1.2 分类1.3 算法复杂度1.4 时间复杂度1.5 空间复杂度二、冒泡排序2.1 概述2.2 算法分析2.3 代码示例三、选择排序3.1 概述3.2 算法分析3.3 代码示例四、插入排序4.1 概述4.2 算法分析4.3 代码示例五、希尔排序5.1 概述5.2 算法分析5.…

裸露土堆识别系统 yolov7

裸露土堆识别系统基于yolov7深度学习架构模型&#xff0c;对现场画面实时分析检测&#xff0c;如检测到画面中的土堆有超过40%部分没被绿色防尘网覆盖&#xff0c;则立即抓拍存档告警。我们使用YOLO(你只看一次)算法进行对象检测。YOLO是一个聪明的卷积神经网络(CNN)&#xff0…

我靠steam搬砖,日赚几千,投入不到万元

什么做苦力、技能、直播卖货&#xff0c;电商等等对比我这个都是小钱。我这个方法是利用了大部分人的信息差来赚钱。 我就不藏着掖着了&#xff0c;授人以鱼不如授人以渔&#xff0c;反正你赚的又不是我的钱。 什么是“Steam游戏搬砖”呢&#xff1f; 简单来说&#xff0c;就…

Docker网络

网络基础知识 网络相关命令 查看Linux中的网卡 [rootlocalhost ~]# ip link show[rootlocalhost ~]# ls /sys/class/net[rootlocalhost ~]# ip a 状态: UP、DOWN、UNKNOW link/ether&#xff1a;MAC地址 inet&#xff1a;该网卡绑定的IPv4地址 [rootlocalhost ~]# ip link …

Python和MySQL对比(1):用Pandas 实现MySQL语法效果

文章目录一、前言二、语法对比数据表SELECTASWHEREDISTINCTGROUP BYORDER BYHAVINGLIMIT三、小结一、前言 环境&#xff1a; windows11 64位 Python3.9 MySQL8 pandas1.4.2 本文主要介绍 MySQL 中的关键字&#xff1a;SELECT、AS、WHERE、DISTINCT、GROUP BY、ORDER BY、HAVING…

文献检索

文献检索第一篇检索作业总结第一章检索任务1.1检索课题1.2确定选题所属学科1.3中英文检索词第二章检索策略与结果2.1检索中文期刊文献2.1.1 CNKI中国期刊全文数据库2.1.2 维普期刊全文数据库2.1.3 万方期刊数据库2.1.4 超星期刊全文2.2检索中文学位论文2.2.1 CNKI博硕学位论文数…

Java项目:SpringBoot美容院后台管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目为美容院后台管理系统&#xff0c; 操作员包含以下功能&#xff1a;操作员登陆,操作员首页,会员列表,添加会员,添加美容产品,购买商品,添…

YOLOV7学习记录之mAP计算

如何评估一个训练好模型的好坏&#xff0c;是目标检测中一个很重要的因素&#xff0c;如常见的TP、FP、AP、PR、map等 TP、FP、TN、FN TP&#xff1a;被正确分类为正样本的数量&#xff1b;实际是正样本&#xff0c;也被模型分类为正样本 FP&#xff1a;被错误分类为正样本的…

Node.js - 数据库与身份认证

文章目录目标一、数据库的基本概念1、什么是数据库2、常见的数据库及分类3、传统型数据库的数据组织结构&#xff08;1&#xff09;Excel 的数据组织结构&#xff08;2&#xff09;传统型数据库的数据组织结构&#xff08;3&#xff09;实际开发中库、表、行、字段的关系二、安…

RV1126笔记十二:实现RTMP多路拉流

若该文为原创文章,转载请注明原文出处。 一、介绍 通过RV1126实现RTMP的多路拉流,并在屏幕上显示出来,这里涉及到ffmpeg几个重要知识点,和RV1126如何在屏幕分屏显示。 二、流程图 流程和单路拉流类似,这里只是涉及拉取后的图像需要解码缩放,在合成分屏显示出来。 具…

阳过→阳康,数据里的时代侧影;谷歌慌了!看各公司如何应对ChatGPT;两份优质AI年报;本周技术高光时刻 | ShowMeAI每周通讯 #003-12.24

这是ShowMeAI每周通讯的第3期。通讯聚焦AI领域本周热点&#xff0c;及其在各圈层泛起的涟漪&#xff1b;关注AI技术进步&#xff0c;并提供我们的商业洞察。欢迎关注与订阅&#xff01; 本周在 CSDN 积极答题一路升到 Top2&#xff0c;被系统误判为 ChatGPT 机器人X﹏X 可见压力…

自动化测试-Cypress快速入门

cypress介绍 一个前端自动化测试工具不同于其他只能测试 UI 层的前端测试工具&#xff0c;Cypress 允许编写所有类型的测试&#xff0c;覆盖了测试金字塔模型的所有测试类型**【界面测试&#xff0c;集成测试&#xff0c;单元测试】**Cypress 测试代码和应用程序均运行在由 Cy…

拦截器与过滤器

什么是过滤器 过滤器 Filter 基于 Servlet 实现&#xff0c;过滤器的主要应用场景是对字符编码、跨域等问题进行过滤。Servlet 的工作原理是拦截配置好的客户端请求&#xff0c;然后对 Request 和 Response 进行处理。Filter 过滤器随着 web 应用的启动而启动&#xff0c;只初…

电商订单对接系列-第1章-整体设计

背景 电商行业在处理订单的业务时&#xff0c;初创一般是直接通过电商后台导出表格&#xff0c;然后根据其来跟进进销存。在单量到了一定规模时&#xff0c;业务场景会变得复杂&#xff0c;如促销套餐&#xff0c;拆单&#xff0c;合单等&#xff0c;一般会购买市面上的…

Android -- 每日一问:介绍一下你经常浏览的 Android 技术网站

经典回答 做为一个合格的 Android 开发者&#xff0c;我想官方的 developer 站点是必上的&#xff0c;有什么网站能比官方更全面和权威呢。而且 Android Developer 站点上还有很多指导性的文章写得很不错&#xff0c;也不用担心英文不好&#xff0c;因为基本上官方都翻译了中文…

一文轻松图解搞懂Elasticsearch原理!

ES 的集群模式和 kafka 很像&#xff0c;kafka 又和 redis 的集群模式很像。总之就是相互借鉴&#xff01; 不管你用没用过 ES&#xff0c;今天我们一起聊聊它。就当扩展大家的知识广度了&#xff01; 认识倒排索引 「正排索引 VS 倒排索引&#xff1a;」 正排索引 VS 倒排索…

【PyTorch深度学习项目实战100例】—— 基于FastText实现情感二分类任务 | 第78例

前言 大家好,我是阿光。 本专栏整理了《PyTorch深度学习项目实战100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPy…

【Pandas入门教程】如何重塑表格布局

如何重塑表格布局 来源&#xff1a;Pandas官网&#xff1a;https://pandas.pydata.org/docs/getting_started/intro_tutorials/index.html 笔记托管&#xff1a;https://gitee.com/DingJiaxiong/machine-learning-study 文章目录如何重塑表格布局导包数据准备【1】对表行进行排…