基于springboot的高校学科竞赛系统

简介: 该系统创作于2022年3月,包含详细数据库设计。基于springboot技术,数据层为MyBatis,mysql数据库,页面采用html,具有完整的业务逻辑,适合选题:学科竞赛、竞赛、校园竞赛等。

项目介绍:



该系统创作于2022年3月,包含详细数据库设计。基于springboot技术,数据层为MyBatis,mysql数据库,页面采用html,具有完整的业务逻辑,适合选题:学科竞赛、竞赛、校园竞赛等。


项目功能:



435d82d5def348acb2a587c288553730.png


数据库设计:



49f8f08fd3b64cd98fedd95ab204f088.png


系统包含技术:



后端:springBoot、mybatis

前端:bootstrap、js、css等,html页面

开发工具:idea

数据库:mysql 5.7

JDK版本:jdk1.8


部分截图说明:



下面是用户首页


98c95f5c7bbb4f63893b1704bd8251f1.png


下面展示的是竞赛信息,会显示竞赛的进行状态


b0eee683ca084503ab88427ff35abb0d.png


下面是竞赛相关新闻


39dae145ea9645dfb9a0936573a9b923.png


可以查看新闻详情


f5b467c156654349b4c6bd1315c9d842.png


下面是管理员登录


b8ae534b794a4916b78e6bcc70182f5e.png


登录后看到首页


aadc22b576f748eba22e639af1964b2c.png


管理员可以维护竞赛信息


eaa591b6aa624c2fbd4c49bfcfc72ed0.png


管理员维护学生信息


27bb2dc15a524a2a972645a2351ec729.png


管理员维护新闻


9aa6cff4497441a780144d7dd2a72579.png


项目结构也是规范的


2da207a43cbb4523af247049adca7a4c.png


部分代码:



/**进入列表页面*/
    @GetMapping("/competition")
    public String userIframe(){
        return "CompetitionList";
    }
    /**列表数据*/
    @GetMapping("/list")
    @ResponseBody
    public PageResultVo findCompetition(Competition competition, Integer limit, Integer page){
        PageHelper.startPage(page,limit);
        List<Competition> competitionList = competitionService.selectByCondition(competition);
        PageInfo<Competition> pages = new PageInfo<>(competitionList);
        return JsonData.table(competitionList,pages.getTotal());
    }
    /**
     * 后台内容图片上传
     * @param dropFile
     * @param request
     * @return
     */
    @RequestMapping(value = "/ContentUpload", method = RequestMethod.POST)
    @ResponseBody
    public Map<String, Object> hotelContentUpload(MultipartFile dropFile, HttpServletRequest request) {
        Map<String, Object> result = new HashMap<>();
        //获取文件后缀
        String fileName = dropFile.getOriginalFilename();
        String fileSuffix = fileName.substring(fileName.lastIndexOf('.'));
        //文件存放路径
        String fileDirPath = new String(uploadDir);
        File fileDir = new File(fileDirPath);
        //判断文件是否存在
        if (!fileDir.exists()){
            fileDir.mkdirs();
        }
        File file = new File(fileDir.getAbsolutePath()+File.separator+ UUID.randomUUID() + fileSuffix);
        try {
            dropFile.transferTo(file);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //传到前端
        result.put("errno",0);
        result.put("data",new String[] {"http://localhost:"+port+"/upload/" + file.getName()});
        return result;
    }
    /**详情*/
    @GetMapping("/query")
    public String query(String id,Model model) throws ParseException {
        Competition competition = competitionService.selectById(id);
        model.addAttribute("id",id);
        model.addAttribute("competition",competition);
        if(competition.getStartTime()==null
                || competition.getStartTime().equals("")
                || competition.getEndTime()==null
                || competition.getEndTime().equals("")
        ){
            competition.setStatus("00");
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date start = sdf.parse(competition.getStartTime());
        Date end = sdf.parse(competition.getEndTime());
        Date current = new Date();
        if(current.before(start)){
            competition.setStatus("01");
        }else if(end.before(current)){
            competition.setStatus("03");
        }else{
            competition.setStatus("02");
        }
        return "CompetitonDetail";
    }
    /**编辑详情*/
    @GetMapping("/edit")
    @ResponseBody
    public Competition edit(Model model, String id){
        return competitionService.selectById(id);
    }
    /**编辑*/
    @PostMapping("/edit")
    @ResponseBody
    public JsonData edit(Competition competition){
        int a = competitionService.updateById(competition);
        if (a > 0) {
          return JsonData.success(null,"编辑成功!");
        } else {
          return JsonData.fail("编辑失败");
        }
    }


以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。


好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

相关文章
|
3月前
|
监控 安全 JavaScript
2025基于springboot的校车预定全流程管理系统
针对传统校车管理效率低、信息不透明等问题,本研究设计并实现了一套校车预定全流程管理系统。系统采用Spring Boot、Java、Vue和MySQL等技术,实现校车信息管理、在线预定、实时监控等功能,提升学校管理效率,保障学生出行安全,推动教育信息化发展。
|
3月前
|
JavaScript 安全 Java
基于springboot的大学生兼职系统
本课题针对大学生兼职信息不对称、权益难保障等问题,研究基于Spring Boot、Vue、MySQL等技术的兼职系统,旨在构建安全、高效、功能完善的平台,提升大学生就业竞争力与兼职质量。
|
3月前
|
JavaScript Java 关系型数据库
基于springboot的美食城服务管理系统
本系统基于Spring Boot、Java、Vue和MySQL技术,构建集消费者服务、商家管理与后台监管于一体的美食城综合管理平台,提升运营效率与用户体验。
|
3月前
|
JavaScript Java 关系型数据库
基于springboot的项目管理系统
本文探讨项目管理系统在现代企业中的应用与实现,分析其研究背景、意义及现状,阐述基于SSM、Java、MySQL和Vue等技术构建系统的关键方法,展现其在提升管理效率、协同水平与风险管控方面的价值。
|
3月前
|
搜索推荐 JavaScript Java
基于springboot的儿童家长教育能力提升学习系统
本系统聚焦儿童家长教育能力提升,针对家庭教育中理念混乱、时间不足、个性化服务缺失等问题,构建科学、系统、个性化的在线学习平台。融合Spring Boot、Vue等先进技术,整合优质教育资源,提供高效便捷的学习路径,助力家长掌握科学育儿方法,促进儿童全面健康发展,推动家庭和谐与社会进步。
|
3月前
|
JavaScript Java 关系型数据库
基于springboot的古树名木保护管理系统
本研究针对古树保护面临的严峻挑战,构建基于Java、Vue、MySQL与Spring Boot技术的信息化管理系统,实现古树资源的动态监测、数据管理与科学保护,推动生态、文化与经济可持续发展。
|
4月前
|
存储 JavaScript Java
基于springboot的大学公文收发管理系统
本文介绍公文收发系统的研究背景与意义,分析其在数字化阅读趋势下的必要性。系统采用Vue、Java、Spring Boot与MySQL技术,实现高效、便捷的公文管理与在线阅读,提升用户体验与信息处理效率。
|
3月前
|
人工智能 Java 关系型数据库
基于springboot的画品交流系统
本项目构建基于Java+Vue+SpringBoot+MySQL的画品交流系统,旨在解决传统艺术交易信息不透明、流通受限等问题,融合区块链与AI技术,实现画品展示、交易、鉴赏与社交一体化,推动艺术数字化转型与文化传播。
|
3月前
|
JavaScript Java 关系型数据库
基于springboot的高校运动会系统
本系统基于Spring Boot、Vue与MySQL,实现高校运动会报名、赛程安排及成绩管理的全流程信息化,提升组织效率,杜绝信息错漏与冒名顶替,推动体育赛事智能化发展。