Java项目:springboot教务管理系统

news2024/12/27 13:49:21

作者主页:源码空间站2022

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

文末获取源码

项目介绍

1.系统默认超级管理员账号为admin,默认密码为123456
系统配置:用户管理、角色管理、权限管理
默认已配置好基本数据:用户默认只有一个超级管理员,角色有三种:管理员、教师、学生,权限已按照角色分配完成。

2.系统建设
a.建设简介:
学校建设需要按照系部 > 专业 > 年级 > 班级的顺序进行建设。每项管理均提供精确/条件查询,可快速定位所需信息。
b.系部建设
c.专业建设
d.年级建设

3,课目建设
a.课目介绍
b.添加必修课目
c.添加选修课目
d.课目启动与暂停

4.教师管理
a.教师授课管理
b.录入教师
c.教师信息查询

5.学生管理:
a,退学信息
b.录入学生
c.学生信息查询

6.成绩管理
a.学生成绩管理
b.教师成绩管理

7.校园新闻:

a,新闻管理

b.发布新闻

环境需要

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 5.7版本;

6.是否Maven项目:是;

技术栈

1. 后端:SpringBoot+Thymeleaf

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

使用说明

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

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

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

3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;注:要修改最下方profiles:dev相关的配置;
4. 运行项目,输入localhost:8080/home 登录
管理员账号/密码:admin/123456
教师账号/密码:2020001/123456

学生账号/密码:15020002/123456

运行截图

 代码相关

学生管理控制器

@Controller
//使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法
public class AddStudentController {
    @Autowired  //  自动注入
    private StudentService studentService;
    @Autowired
    private AddStudentService addStudentService;

    @RequestMapping("/addStudentPage")
    public String selPolitics(Model model){
        //  查询政治面貌表
        List<PoliticsTypeDB> stupol = studentService.selPolitics();
        model.addAttribute("stupol",stupol);
        return "view/student/addStudent";
    }

    //  添加学生
    @RequestMapping("addStudent") //   用来处理请求地址映射的注解
    @ResponseBody   // 通常用来返回JSON数据给客户端
    public LayuiResult<StudentDB> addStudent(StudentVO studentVO, String birthday, String tertime) throws Exception{
        LayuiResult<StudentDB> result= new LayuiResult<>();
        //  将接收到的时间进行类型转换
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date date1=format.parse(birthday);
        Date date2=format.parse(tertime);
        studentVO.setSbirthday(date1);
        studentVO.setEntertime(date2);
        //  判断该年份是否已存在学生
        Integer year = addStudentService.selectStuYear(studentVO.getClassid());
        if(year !=0 ){
            //  若该年份学生为空时 则添加一条分割线
            Integer fenge = addStudentService.stuSegmentation(studentVO.getClassid());
        }
        //  生成学生学号
        String stui = addStudentService.selStuid(studentVO.getGid());
        studentVO.setStuid(stui);
        studentVO.setSid(Integer.valueOf(stui));
        //  根据前台传来信息添加学生
        Integer addStudent = addStudentService.addStudent(studentVO);
        //  获取学号
        String stuid = studentVO.getStuid();
        //  根据学号查询学生id编号
        Integer sid = addStudentService.selectSid(stuid);
        //  获取所选专业id
        Integer mid = studentVO.getMid();
        //  根据学生专业查询该专业开设的必修课程
        List<CourseDB> selCourse = addStudentService.selCourse(mid);
        for(CourseDB cou : selCourse){
            //  将学生id以及必修课程的id添加至学生选课表
            Integer addStuCourse = addStudentService.addStuCourse(sid,cou.getCid());
            System.out.println(addStuCourse);
        }

        //  班级人数+1
        Integer selClassinfo = addStudentService.selecteClassinfo(studentVO.getClassid());
        //  年级人数+1
        Integer selGrade = addStudentService.selecteGrade(studentVO.getGid());
        //  专业人数+1
        Integer selMajor = addStudentService.selecteMajor(studentVO.getMid());
        //  系部人数+1
        Integer selDepartment = addStudentService.selecteDepartment(studentVO.getDid());

        //  根据学号查询信息
        List<StudentDB> stu = addStudentService.selectMessage(stuid);
        //  查询sys_role角色id
        String id = addStudentService.selectRole();
        result.setData(stu);
        result.setMsg(id);
        return result;
    }
}

 新闻管理控制器

@Controller
@RequestMapping("news")
public class NewsController extends BaseController {
    @Autowired
    private NewsService newsService;

    /**
     * 进入发布文章页面
     * @return
     */
    @RequestMapping("addnews")
    public String addnews() {
        return "view/news/addnews";
    }

    /**
     * 进入新闻公示管理页面
     * @return
     */
    @RequestMapping("newscontrol")
    public String newscontrol() {
        return "view/news/newscontrol";
    }


    /**
     * 发布新闻
     */
    @RequestMapping("addingnews")
    @ResponseBody
    public Object addingNews(NewsinfoDB newsinfoDB){
        int r = newsService.addNews(newsinfoDB);
        if(r==1){
            return true;
        }else{
            return false;
        }
    }

    /**
     * 获取新闻列表
     */
    @RequestMapping("findallnews")
    @ResponseBody
    public Object findallnews(NewsinfoDB newsinfoDB, Integer page, Integer limit){
        PageHelper.startPage(page, limit);
        List<NewsinfoDB> listAll = newsService.findAllNews(newsinfoDB);
        PageInfo pageInfo = new PageInfo(listAll);
        Map<String, Object> newsData = new HashMap<String, Object>();
        //这是layui要求返回的json数据格式
        newsData.put("code", 0);
        newsData.put("msg", "");
        //将全部数据的条数作为count传给前台(一共多少条)
        newsData.put("count", pageInfo.getTotal());
        //将分页后的数据返回(每页要显示的数据)
        newsData.put("data", pageInfo.getList());
        return newsData;
    }

    /**
     * 删除新闻
     * */
    @RequestMapping("deletenews")
    @ResponseBody
    public Object deleteNews(Integer nid){
        int r = newsService.deleteNews(nid);
        if(r==1){
            return true;
        }else{
            return false;
        }
    }

    /**
     * 编辑新闻
     */
    @RequestMapping("editingnews")
    @ResponseBody
    public Object editNews(NewsinfoDB newsinfoDB){
        int r = newsService.editNews(newsinfoDB);
        if(r==1){
            return true;
        }else{
            return false;
        }
    }

}

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

 

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

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

相关文章

4.3.2、分类编址的 IPv4 地址

分类编址的 IPv4 地址分为 A、B、C、D、E 五类 A 类地址的网络号部分占 888 比特&#xff0c;主机号部分占 242424 比特。网络号的最高位固定为 000B 类地址的网络号部分占 161616 比特&#xff0c;主机号部分占 161616 比特。网络号的最高两位固定为 101010C 类地址的网络号部…

Reason: CORS request did not succeed 浏览器

放上我的错误&#xff1a; 一定要坚信他给你的提提示&#xff01;&#xff01;&#xff01;一定要怀疑是浏览器的设置 因为我试过网上的两种方法&#xff0c;均无效 法一&#xff1a;将Access-Control-Allow-Origin设置为&#xff1a;* 法二&#xff1a;因为我使用的是vue3&…

深度学习——转置卷积(笔记)

1.卷积层和汇聚层通常会减少下采样输入图像的空间维度&#xff08;高和宽&#xff09;&#xff0c;语义分割对输入进行像素级别的输出&#xff0c;但是卷积会不断减小高宽&#xff0c;不利于像素级别的输出。通过转置卷积能增大输入的高和宽 2.具体操作&#xff1a;步幅为1没有…

uni-app整包更新与热更新方案(安卓和IOS)

原文链接&#xff1a;uni-app整包更新与热更新方案(安卓和IOS) 效果预览 大致效果&#xff1a; 打开App&#xff0c;进入首页&#xff08;首次&#xff09;&#xff0c;检测线上是否存在新版本&#xff0c;如果存在&#xff0c;弹窗提示用户是否进行版本更新。Android 有热更新…

VMware17虚拟机安装及Linux系统搭建(详细版)

✅作者简介&#xff1a;大家好&#xff0c;我是小杨 &#x1f4c3;个人主页&#xff1a;「小杨」的csdn博客 &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; &#x1f4dc;前言&#xff1a; VMware是一个虚拟PC的软件&#xff0c;可以在现有的操作系统上虚…

虚拟机最小化方式安装Centos7后,ping和ifconfig都不可用解决方法

我用的是台式机&#xff0c;主机连接的是网线&#xff0c;在以最小化方式安装Centos7后&#xff0c;ping和ifconfig不可用。这里要记住&#xff0c;vm虚拟机使用网络适配器是&#xff1a;NAT 模式(N): 用于共享主机的 IP 地址 问题&#xff1a; ifconfig command not found p…

QT基本组件与常用类

目录 一、设计师 Designer&#xff08;掌握&#xff09; 二、布局 Layout 2.1 布局的基本使用&#xff08;掌握&#xff09; 2.2 布局属性&#xff08;掌握&#xff09; 2.3 伸展器&#xff08;掌握&#xff09; 2.4 嵌套&#xff08;掌握&#xff09; 2.5 伸展与策略&#xff…

【C语言进阶】想用好C++?那就一定要掌握动态内存管理

目录 &#x1f929;前言&#x1f929;&#xff1a; 一、动态内存概述⚔️&#xff1a; 1.什么是动态内存&#xff1a; 2.动态内存分配的意义&#xff1a; 二、常用的动态内存函数&#x1f3f9;&#xff1a; 1. malloc 和 free函数&#xff1a; ①. malloc 函数&#xff1a; …

基于PSO粒子群优化的带时间窗VRPTW问题matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation)&#xff0c;1995 年由Eberhart 博士和kennedy 博士提出&#xff0c;源于对鸟群捕食的行为研究 。该算法最初是受到飞鸟集群活…

数据结构初阶:树与二叉树(1)——堆

许久没发博客&#xff0c;在这里跟各位看客道声久等了~ 冬至已至&#xff0c;各位有没有吃上热乎的饺子呢 下面给各位奉上承载着满满干货的饺子吧&#xff1a; 目录 一、树 1. 树的结构定义 2. 树的相关概念 3. 树的表示 孩子兄弟表示法 二、二叉树 1. 二叉树的结构定义 2. 特…

自己整理的vue实现生成分享海报(含二维码),看着网上的没实现

大家好&#xff0c;我是雄雄。 前言 相信大家在许多的场景下&#xff0c;看到过这样的案例。 当我们在某购物app上看好一件商品&#xff0c;想分享给别人时&#xff0c;app会给我们生成一张海报&#xff0c;我们将其保存在手机里面转发给其他人达到分享。当我们逛CSDN的时候&…

【Android弹窗】Dialog Bottom Translate Animation

文章目录1. 系统Dialog2. 自定义Dialog3. 其余1. 系统Dialog 首先先来使用回顾一下系统的Dialog弹窗&#xff0c;这里使用比较简单的AlertDialog为例&#xff1a; AlertDialog.Builder builder new AlertDialog.Builder(this).setTitle("弹窗标题").setMessage(&q…

【小程序】全局数据共享

目录 全局数据共享 1. 什么是全局数据共享 2. 小程序中的全局数据共享方案 全局数据共享 - MobX 1. 安装 MobX 相关的包 2. 创建 MobX 的 Store 实例 3. 将 Store 中的成员绑定到页面中 4. 在页面上使用 Store 中的成员 ​5. 将 Store 中的成员绑定到组件中 6. 在组件中…

【分布式技术专题】「架构实践于案例分析」盘点一下分布式模式下的服务治理和监控优化方案

什么是服务治理&#xff1f; 相信每一个软件公司&#xff08;企业&#xff09;都希望可以确保开发及项目运行流程可以顺利&#xff0c;但是如果要完美完结那么需要其中会有很多的因素存在。包括&#xff0c;最佳实践、架构原则、服务治理以及其他决定性的因素。而其中服务治理…

新冠确诊阳性的第七篇博客,Linux动态监控系统

新冠确诊阳性的第七篇博客&#xff0c;Linux动态监控系统1.动态监控进程2.动态监控网络1.动态监控进程 top命令和ps相似&#xff0c;都可以用来显示系统正在执行的进程&#xff0c;top和ps的最大不同之处就是在于top在执行一段时间可以更新正在运行的进程&#xff08;也可以理…

JavaScript:优先级队列的实现案例

优先级队列的定义&#xff1a;优先级队列&#xff08;priority_queue&#xff09;其实&#xff0c;不满足先进先出的条件&#xff0c;更像是数据类型中的“堆”。优先级队列每次出队的元素是队列中优先级最高的那个元素&#xff0c;而不是队首的元素。这个优先级可以通过元素的…

架构设计(九):估算

架构设计&#xff08;九&#xff09;&#xff1a;估算 作者&#xff1a;Grey 原文地址&#xff1a; 博客园&#xff1a;架构设计&#xff08;九&#xff09;&#xff1a;估算 CSDN&#xff1a;架构设计&#xff08;九&#xff09;&#xff1a;估算 估算在系统设计中非常重…

还在用定时器吗?借助 CSS 来监听事件

平时工作中很多场合都要用到定时器,比如延迟加载、定时查询等等,但定时器的控制有时候会有些许麻烦,比如鼠标移入停止、移出再重新开始。这次介绍几个借助 CSS 来更好的控制定时器的方法,一起了解一下吧,相信可以带来不一样的体验 一、hover 延时触发 有这样一个场景,在…

C++ WebSockSet服务器解决方案

使用C实现WebSocket服务器是为了解决Web直接访问本地应用程序最佳解决方案。解决云访问硬件最经济的方案或增加了一种解决方法。方案选用开源uWebSockets库。 开发工具选择Visual C 2017,所有源码或工程都用它编译或创建。 1. 准备工作 下载以下第三方库最新版源码并且编译供…

FMOC-PEG-COOH,FMOC-PEG-acid,芴甲氧羰基-聚乙二醇-羧基试剂供应

英文名称&#xff1a;FMOC-PEG-COOH&#xff0c;FMOC-PEG-acid 中文名称&#xff1a;芴甲氧羰基-聚乙二醇-羧基 蛋白质、肽和其他材料通过氨基酸或其他酸活性化学组&#xff0c;增加溶解度和稳定性&#xff0c;降低免疫原性&#xff1b;药物修饰或缓释药物研发&#xff0c;新…