Java项目:ssm学生学籍管理系统

news2024/12/24 22:13:26

作者主页:源码空间站2022

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

文末获取源码

项目介绍

SSM项目-学生学籍管理系统。该项目分管理员、老师、学生三种用户角色。每种角色分别对应不同的菜单;

以下分别介绍各个角色对应的功能模块:

管理员角色:

- 用户登录和退出
- 权限控制
- 系统管理
- 专业管理
- 班级管理
- 学生管理
- 老师管理
- 课程管理
- 开课管理
- 用户管理

老师角色:

- 老师管理
- 成绩管理
- 学生查询

学生角色:

- 学生管理
- 选课管理

- 成绩查询

技术路线

- 开发工具:IDEA 2020.1

- 技术框架:Spring、SpringMVC、MyBatis
- Web容器:Tomcat 8.5.7
- 数据库:MySQL 5.7
- 前端UI框架:LayUI

- 项目管理:Maven 3.6.3

使用说明

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

若为maven项目,导入成功后请执行maven clean;maven install命令,下载所需jar包;

2. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置
4. 配置tomcat,然后运行项目,输入localhost:8080 登录

运行截图

相关代码 

CourseController

package com.yanzhen.controller;

import com.yanzhen.entity.Course;
import com.yanzhen.service.CourseService;
import com.yanzhen.utils.MapControl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/course")
public class CourseController {

    private static final String LIST = "course/list";
    private static final String ADD = "course/add";
    private static final String UPDATE = "course/update";

    @Autowired
    private CourseService courseService;

    //跳转添加页面
    @GetMapping("/add")
    public String create() {
        return ADD;
    }

    //添加操作
    @PostMapping("/create")
    @ResponseBody
    public Map<String, Object> create(@RequestBody Course course) {
        int result = courseService.create(course);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }

    //根据id删除
    @PostMapping("/delete/{id}")
    @ResponseBody
    public Map<String, Object> delete(@PathVariable("id") Integer id) {
        int result = courseService.delete(id);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }

    //批量删除
    @PostMapping("/delete")
    @ResponseBody
    public Map<String, Object> delete(String ids) {
        int result = courseService.delete(ids);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }

    //修改操作
    @PostMapping("/update")
    @ResponseBody
    public Map<String, Object> update(@RequestBody Course course) {
        int result = courseService.update(course);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }

    //根据id删除,跳转修改页面
    @GetMapping("/detail/{id}")
    public String detail(@PathVariable("id") Integer id, ModelMap modelMap) {
        //查询出要修改的课程信息,存储到request域
        Course course = courseService.detail(id);
        modelMap.addAttribute("course", course);
        return UPDATE;
    }

    //查询所有
    @PostMapping("/query")
    @ResponseBody
    public Map<String, Object> query(@RequestBody Course course) {
        List<Course> list = courseService.query(course);
        //查询总记录条数
        Integer count = courseService.count(course);
        return MapControl.getInstance().success().page(list, count).getMap();
    }

    //跳转列表页面
    @GetMapping("/list")
    public String list() {
        return LIST;
    }

}

IndexController

package com.yanzhen.controller;

import com.yanzhen.entity.*;
import com.yanzhen.service.*;
import com.yanzhen.utils.MD5Utils;
import com.yanzhen.utils.MapControl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
public class IndexController {

    @Autowired
    UserService userService;
    @Autowired
    TeacherService teacherService;
    @Autowired
    StudentService studentService;
    @Autowired
    ClazzService clazzService;
    @Autowired
    SubjectService subjectService;
    @Autowired
    CourseService courseService;
    @Autowired
    SectionService sectionService;
    @Autowired
    ScoreService scoreService;

    //跳转系统主页
    @GetMapping("/index")
    public String login() {
        return "index";
    }

    //跳转用户基本信息页面
    @GetMapping("/info")
    public String info() {
        return "info";
    }

    //跳转修改密码页面
    @GetMapping("/pwd")
    public String pwd() {
        return "pwd";
    }

    //修改密码 根据旧密码来修改密码
    @PostMapping("/pwd")
    @ResponseBody
    public Map<String,Object> pwd(String sourcePwd,String newPwd,String type,Integer id) {
        //先判断类型
        if("1".equals(type)) {
            User user = userService.detail(id);
            //比较原密码是否相同 注意:原密码也要加密后再进行比较,因为数据库中存储的是加密后的密码
            if(user.getUserPwd().equals(MD5Utils.getMD5(sourcePwd))) {
                User entity = new User();
                entity.setId(id);
                entity.setUserPwd(MD5Utils.getMD5(newPwd)); //主要要加密
                int result = userService.update(entity);
                if(result <= 0) {
                    return MapControl.getInstance().error().getMap();
                } else {
                    return MapControl.getInstance().success().getMap();
                }
            } else {
                return MapControl.getInstance().error("原密码错误").getMap();
            }
        }
        if("2".equals(type)) {
            Teacher teacher = teacherService.detail(id);
            //比较原密码
            if(teacher.getTeacherPwd().equals(MD5Utils.getMD5(sourcePwd))) {
                Teacher entity = new Teacher();
                entity.setId(id);
                entity.setTeacherPwd(MD5Utils.getMD5(newPwd));
                int result = teacherService.update(entity);
                if(result <= 0) {
                    return MapControl.getInstance().error().getMap();
                } else {
                    return MapControl.getInstance().success().getMap();
                }
            } else {
                return MapControl.getInstance().error("原密码错误").getMap();
            }
        }
        if("3".equals(type)) {
            Student student = studentService.detail(id);
            //比较原密码
            if(student.getStuPwd().equals(MD5Utils.getMD5(sourcePwd))) {
                Student entity = new Student();
                entity.setId(id);
                entity.setStuPwd(MD5Utils.getMD5(newPwd));
                int result = studentService.update(entity);
                if(result <= 0) {
                    return MapControl.getInstance().error().getMap();
                } else {
                    return MapControl.getInstance().success().getMap();
                }
            } else {
                return MapControl.getInstance().error("原密码错误").getMap();
            }
        }

        return MapControl.getInstance().error().getMap();
    }

    //跳转系统主页(数据概览)
    @GetMapping("/main")
    public String main(ModelMap modelMap) {
        //1.系统数据概览
        List<Clazz> clazzes = clazzService.query(null);
        List<Subject> subjects = subjectService.query(null);
        List<Teacher> teachers = teacherService.query(null);
        List<Course> courses = courseService.query(null);
        List<Section> sections = sectionService.query(null);
        List<Student> students = studentService.query(null);
        modelMap.addAttribute("clazzCnt",clazzes.size());
        modelMap.addAttribute("subjectCnt",subjects.size());
        modelMap.addAttribute("teacherCnt",teachers.size());
        modelMap.addAttribute("courseCnt",courses.size());
        modelMap.addAttribute("studentCnt",students.size());
        modelMap.addAttribute("sectionCnt",sections.size());

        //2.班级学生数量
        List<Map<String,Object>> mapList = new ArrayList<>();
        for(Clazz clazz : clazzes) {
            Map<String,Object> map = new HashMap<>();
            map.put("name",clazz.getClazzName()); //设置班级名称
            int cnt = 0;
            //统计学生数量
            for(Student student : students) {
                if(student.getClazzId() == clazz.getId()) {
                    cnt++;
                }
            }
            map.put("cnt",cnt); //设置学生数量
            mapList.add(map);
        }
        modelMap.addAttribute("mapList",mapList);

        //3.查询各科平均成绩(根据专业查询各科平均成绩)
        List<HashMap> mapList2 = scoreService.queryAvgScoreBySection();
        modelMap.addAttribute("mapList2",mapList2);

        return "main";
    }

}

ScoreController

package com.yanzhen.controller;

import com.yanzhen.entity.Course;
import com.yanzhen.entity.Score;
import com.yanzhen.entity.Section;
import com.yanzhen.entity.Student;
import com.yanzhen.service.CourseService;
import com.yanzhen.service.ScoreService;
import com.yanzhen.service.SectionService;
import com.yanzhen.utils.MapControl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/score")
public class ScoreController {

    @Autowired
    private ScoreService scoreService;
    @Autowired
    private CourseService courseService;
    @Autowired
    private SectionService sectionService;

    //添加操作
    @PostMapping("/create")
    @ResponseBody
    public Map<String, Object> create(String sectionIds, String courseIds, HttpSession session) {
        Student student = (Student) session.getAttribute("user");
        int result = scoreService.create(sectionIds, courseIds, student.getId());
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }

    //修改操作
    @PostMapping("/update")
    @ResponseBody
    public Map<String, Object> update(Score score) {
        int result = scoreService.update(score);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }

    //根据id查询
    @PostMapping("/detail/{id}")
    @ResponseBody
    public Map<String, Object> detail(@PathVariable("id") Integer id) {
        Score score = scoreService.detail(id);
        if (score == null) {
            return MapControl.getInstance().nodata().getMap();
        }
        return MapControl.getInstance().success().put("data", score).getMap();
    }

    //查询所有
    @PostMapping("/query")
    @ResponseBody
    public Map<String, Object> query(Score score) {
        List<Score> list = scoreService.query(score);
        return MapControl.getInstance().success().put("data", list).getMap();
    }

    //跳转查询成绩页面
    @GetMapping("/student_score")
    public String student_score() {
        return "score/student_score";
    }

    //查询学生成绩
    @PostMapping("/query_student_score")
    @ResponseBody
    public Map<String, Object> query_student_score(HttpSession session) {
        //从session中获取
        Student student = (Student) session.getAttribute("user");
        Score score = new Score();
        score.setStuId(student.getId());
        //查询成绩
        List<Score> scores = scoreService.query(score);
        //查询课程信息
        List<Course> courses = courseService.query(null);
        //查询开课信息
        List<Section> sections = sectionService.query(null);

        scores.forEach(entity -> {
            courses.forEach(course -> {
                //判断该成绩表中的courseId与课程表的id是否一致
                if (entity.getCourseId() == course.getId()) {
                    entity.setCourse(course);
                }
            });
            sections.forEach(section -> {
                //判断该成绩的开课id是否与开课的id一致
                if (entity.getSectionId() == section.getId()) {
                    entity.setSection(section);
                }
            });
            entity.setStudent(student);
        });
        return MapControl.getInstance().success().put("data", scores).getMap();
    }
}

StudentController

package com.yanzhen.controller;

import com.yanzhen.entity.Clazz;
import com.yanzhen.entity.Student;
import com.yanzhen.entity.Subject;
import com.yanzhen.entity.Teacher;
import com.yanzhen.service.ClazzService;
import com.yanzhen.service.StudentService;
import com.yanzhen.service.SubjectService;
import com.yanzhen.utils.MapControl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/student")
public class StudentController {

    private static final String LIST = "student/list";
    private static final String ADD = "student/add";
    private static final String UPDATE = "student/update";

    @Autowired
    private StudentService studentService;
    @Autowired
    private SubjectService subjectService;
    @Autowired
    private ClazzService clazzService;

    //跳转添加页面
    @GetMapping("/add")
    public String create(ModelMap modelMap) {
        //查询所有的专业,存储到request域
        List<Subject> subjects = subjectService.query(null);
        modelMap.addAttribute("subjects", subjects);
        return ADD;
    }

    //添加操作
    @PostMapping("/create")
    @ResponseBody
    public Map<String, Object> create(@RequestBody Student student) {
        //设置学生的状态
        student.setStatus(Student.StatusType.type_1);
        int result = studentService.create(student);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }

    //根据id查询
    @PostMapping("/delete/{id}")
    @ResponseBody
    public Map<String, Object> delete(@PathVariable("id") Integer id) {
        int result = studentService.delete(id);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }

    //删除操作
    @PostMapping("/delete")
    @ResponseBody
    public Map<String, Object> delete(String ids) {
        int result = studentService.delete(ids);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }

    //修改操作
    @PostMapping("/update")
    @ResponseBody
    public Map<String, Object> update(@RequestBody Student student) {
        int result = studentService.update(student);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }

    //根据id查询,跳转修改页面
    @GetMapping("/detail/{id}")
    public String detail(@PathVariable("id") Integer id, ModelMap modelMap) {
        //查询出要修改的学生的信息
        Student student = studentService.detail(id);
        //查询所有的专业
        List<Subject> subjects = subjectService.query(null);
        //将查询出来的数据存储到request域,实现表单回显
        modelMap.addAttribute("student", student);
        modelMap.addAttribute("subjects", subjects);
        return UPDATE;
    }

    //查询所有
    @PostMapping("/query")
    @ResponseBody
    public Map<String, Object> query(@RequestBody Student student) {
        //查询所有的学生信息
        List<Student> list = studentService.query(student);
        //查询所有的专业
        List<Subject> subjects = subjectService.query(null);
        //查询所有的班级
        List<Clazz> clazzes = clazzService.query(null);
        //设置关联
        list.forEach(entity -> {
            subjects.forEach(subject -> {
                //判断学生表中的subjectId和专业表的id是否一致
                if (subject.getId() == entity.getSubjectId()) {
                    entity.setSubject(subject);
                }
            });
            clazzes.forEach(clazz -> {
                //判断学生表中的clazzId和班级表的id是否一致
                if (clazz.getId() == entity.getClazzId()) {
                    entity.setClazz(clazz);
                }
            });
        });
        //查询总记录条数
        Integer count = studentService.count(student);
        return MapControl.getInstance().success().page(list, count).getMap();
    }

    //跳转列表页面
    @GetMapping("/list")
    public String list() {
        return LIST;
    }

    //跳转查询学生页面
    @GetMapping("/teacher_student")
    public String teacher_student(ModelMap modelMap, HttpSession session) {
        //查询所有的专业
        List<Subject> subjects = subjectService.query(null);
        //查询所有的班级
        List<Clazz> clazzes = clazzService.query(null);
        Teacher teacher = (Teacher) session.getAttribute("user");
        modelMap.addAttribute("subjects", subjects);
        modelMap.addAttribute("clazzes", clazzes);
        modelMap.addAttribute("teacher", teacher);
        return "student/teacher_student";
    }

    //老师查询学生
    @PostMapping("/teacher_student")
    @ResponseBody
    public Map<String, Object> teacher_student(Integer clazzId, Integer subjectId, ModelMap modelMap, HttpSession session) {
        Teacher teacher = (Teacher) session.getAttribute("user");
        List<Student> students = studentService.queryStudentByTeacher(teacher.getId(), clazzId, subjectId);
        List<Subject> subjects = subjectService.query(null);
        List<Clazz> clazzes = clazzService.query(null);
        //设置关联
        students.forEach(entity -> {
            subjects.forEach(subject -> {
                //判断学生表的subjectId和专业表的id是否一致
                if (subject.getId() == entity.getSubjectId()) {
                    entity.setSubject(subject);
                }
            });
            clazzes.forEach(clazz -> {
                //判断学生表的clazzId和班级表的id是否一致
                if (clazz.getId() == entity.getClazzId()) {
                    entity.setClazz(clazz);
                }
            });
        });
        return MapControl.getInstance().success().add("data", students).getMap();
    }
}

如果也想学习本系统,下面领取。关注并回复:014ssm 

 

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

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

相关文章

[附源码]计算机毕业设计springboot基于Java的日用品在线电商平台

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

二进制数据的贝叶斯非参数聚类算法(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 部分运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 利用图像结构信息是字典学习的难点,针对传统非参数贝叶斯算法对图像结构信息利用不充分,以及算法运行效率低下的问题,该文…

GoLand2022.2.5版本Hello调动Greetings包

安装Goland2022.2.5 版本 1.官网下载goland-2022.2.5.dmg版本&#xff08;Mac)版本。如果是windows版本也可以直接下载&#xff09; 2.配置gopath&#xff0c;基本都是配置.我这里配置为/usr/local/go 作为全目录&#xff0c;如果是windows&#xff0c;直接在环境中配置path路…

Mysql基础知识篇(二)

1.UNION 与 UNION ALL 的区别&#xff1f; 如果使用 UNION&#xff0c;会在表链接后筛选掉重复的记录行如果使用 UNION ALL&#xff0c;不会合并重复的记录行从效率上说&#xff0c;UNION ALL 要比 UNION 快很多&#xff0c;如果合并没有刻意要删除重复行&#xff0c;那么就使…

自动化测试框架

自动化测试框架1.自动化测试框架核心功能1.数据驱动2.页面驱动3.关键字驱动2.关键字驱动实现-文档形式3.关键字驱动实现-表格形式1.自动化测试框架核心功能 这三种驱动测试可以结合使用来完成系统的自动化测试。可以将测试数据 1.数据驱动 将测试代码和测试数据分离&#xff…

科技云报道:云计算走向工业互联网“深水区”

科技云报道原创。 在新科技革命中&#xff0c;将网格化、信息化与智能化深度融合的工业互联网&#xff0c;正在将人、机、物全面互联&#xff0c;实现全要素、全产业链、全价值链的连接&#xff0c;推动传统产业加快转型升级、助力新兴产业加速发展壮大。 工业如何在快速变革…

培训机构借助创客匠人发力线上业务

疫情反反复复&#xff0c;传统线下教学受到严重影响,转型线上、借力线上发展业务成为行业主流趋势。但是,没有线上经验,人手不足的线下教培机构是否可以转型线上做教学服务,实现招生引流呢? 答案是——可以!用对工具,选对模式,其实很简单! 有很多没有专门线上运营团队,甚至是…

《计算机体系结构量化研究方法》1.7 可信任度

主要内容 计算机是在不同的抽象层上设计和构造的。我们可以逐级深入计算机的不同层面&#xff0c;将每个组件放大为一个完整的子系统进行查看&#xff0c;直到深入到独立的晶体管为止。尽管有些故障会波及整个系统&#xff0c;比如掉电&#xff0c;但许多故障可以被限制在模块…

leetcode-每日一题-1758-生成交替二进制字符串的最少操作数(简单,数学思想)

这道题标记为简单题是正常的&#xff0c;因为当你想到0或者1开头的时候就已经结束了看看我的分析 那么知道这个信息之后就很简单了&#xff0c;加上我们的位运算符号^作为标记即可&#xff0c;大家看看代码实现 1758. 生成交替二进制字符串的最少操作数 难度简单88收藏分享切换…

R语言和Tableau通过情感分析,我们可以从特朗普的推文得到什么?

社交媒体分析的许多用途中的一些是情绪分析&#xff0c;我们评估特定问题的帖子是积极还是消极。我们把社交媒体分析、机器学习、预测建模等集成到文本数据挖掘中。最近我们被客户要求撰写关于推文的研究报告&#xff0c;包括一些图形和统计输出。 在这篇文章中&#xff0c;我…

使用React.ts创建一个密码生成器的简单示例

目录密码生成器DemoFeature知识点React TypeScript —— Function Components为元素(::before/::after)绑定点击事件React如何正确定义对象数组在React中设置复选框check属性三目运算符实现React动态绑定class和style参考资料密码生成器Demo 使用密码生成器工具创建随机密码。P…

Java基于springboot +vue网上超市购物网站 多商家

随着我国信息化的发展&#xff0c;大家更多的是希望通过网络获取到更多的直接所需的信息&#xff0c;而商品一直以来就是人类永恒的追求之一&#xff0c;如何能够享有到更多的商品是很多人一直以来关系的问题。 本系统通过在线网购的方式让用户可以在需要购买商品但是有没有时间…

git submodule创建子仓库

git submodule创建子仓库 文章目录git submodule创建子仓库简介创建主仓库创建子仓库将子仓库添加到主仓库中将合并后的主仓库提交推送到云端简介 当我们的项目伴随着时间的增长越来越大的时候&#xff0c;单一的仓库便不再方便管理&#xff0c;这时候就需要将部分功能提取出来…

PyQt5 事件处理机制

PyQt5 事件处理机制PyQt为事件处理提供了两种机制&#xff1a;高级的信号与槽机制&#xff0c;以及低级的事件处理机制。信号与槽可以说是对事件处理机制的高级封装。 常见事件类型&#xff1a; 键盘事件&#xff1a;按键按下和松开。鼠标事件&#xff1a;鼠标指针移动&#x…

Go语言中的值传递和引用传递 附: 内存地址分析

在学习Go语言函数部分遇到了引用传递和值传递&#xff0c;与C颇为类似&#xff0c;浅谈一下自己对Go语言中的值传递和引用传递的理解。 一、数组—值传递 我们用Go语言中的数组作为样例&#xff0c;来理解值传递的过程。 代码 package mainimport "fmt"func main…

[附源码]计算机毕业设计springboot基于Java的员工管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

[附源码]SSM计算机毕业设计校园闲置物品租赁系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Pytest接口测试框架实战项目搭建(二)

一、前言 业务系统的登录均要经过统一登录系统S&#xff0c;本篇演示统一登录处理&#xff0c;一个是内部业务系统C&#xff08;其余内部业务系统AB用的都是相同账号密码&#xff09;&#xff0c;一个是外部用户使用的系统W&#xff0c;因为账号密码以及headers信息都不一样&am…

DCDC--Burst Mode和Pulse Skipping Mode

1、Burst Mode和Pulse Skipping Mode&#xff08;PSM&#xff09;的区别 Burst Mode ≠ Pulse Skipping Mode&#xff0c;论坛有人认为Burst Mode就是Pulse Skipping Mode&#xff0c;这是不对的。 以LTC3624为例&#xff1a; Burst Mode operation provides the highest ef…

大数据(9h)FlinkSQL双流JOIN、Lookup Join

文章目录1、环境2、Temporal Joins2.1、基于处理时间&#xff08;重点&#xff09;2.1.1、设置状态保留时间2.2、基于事件时间3、Lookup Join&#xff08;重点&#xff09;4、Interval Joins&#xff08;基于间隔JOIN&#xff09;重点是Lookup Join和Processing Time Temporal …