作者主页:源码空间站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 登录
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";@Autowiredprivate CourseService courseService;//跳转添加页面@GetMapping("/add")public String create() {return ADD;}//添加操作@PostMapping("/create")@ResponseBodypublic Map 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}")@ResponseBodypublic Map 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")@ResponseBodypublic Map delete(String ids) {int result = courseService.delete(ids);if (result <= 0) {return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}//修改操作@PostMapping("/update")@ResponseBodypublic Map 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")@ResponseBodypublic Map query(@RequestBody Course course) {List list = courseService.query(course);//查询总记录条数Integer count = courseService.count(course);return MapControl.getInstance().success().page(list, count).getMap();}//跳转列表页面@GetMapping("/list")public String list() {return LIST;}}
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 {@AutowiredUserService userService;@AutowiredTeacherService teacherService;@AutowiredStudentService studentService;@AutowiredClazzService clazzService;@AutowiredSubjectService subjectService;@AutowiredCourseService courseService;@AutowiredSectionService sectionService;@AutowiredScoreService scoreService;//跳转系统主页@GetMapping("/index")public String login() {return "index";}//跳转用户基本信息页面@GetMapping("/info")public String info() {return "info";}//跳转修改密码页面@GetMapping("/pwd")public String pwd() {return "pwd";}//修改密码 根据旧密码来修改密码@PostMapping("/pwd")@ResponseBodypublic Map 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 clazzes = clazzService.query(null);List subjects = subjectService.query(null);List teachers = teacherService.query(null);List courses = courseService.query(null);List sections = sectionService.query(null);List 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
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 {@Autowiredprivate ScoreService scoreService;@Autowiredprivate CourseService courseService;@Autowiredprivate SectionService sectionService;//添加操作@PostMapping("/create")@ResponseBodypublic Map 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")@ResponseBodypublic Map 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}")@ResponseBodypublic Map 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")@ResponseBodypublic Map query(Score score) {List 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")@ResponseBodypublic Map query_student_score(HttpSession session) {//从session中获取Student student = (Student) session.getAttribute("user");Score score = new Score();score.setStuId(student.getId());//查询成绩List scores = scoreService.query(score);//查询课程信息List courses = courseService.query(null);//查询开课信息List 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();}
}
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";@Autowiredprivate StudentService studentService;@Autowiredprivate SubjectService subjectService;@Autowiredprivate ClazzService clazzService;//跳转添加页面@GetMapping("/add")public String create(ModelMap modelMap) {//查询所有的专业,存储到request域List subjects = subjectService.query(null);modelMap.addAttribute("subjects", subjects);return ADD;}//添加操作@PostMapping("/create")@ResponseBodypublic Map 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}")@ResponseBodypublic Map 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")@ResponseBodypublic Map delete(String ids) {int result = studentService.delete(ids);if (result <= 0) {return MapControl.getInstance().error().getMap();}return MapControl.getInstance().success().getMap();}//修改操作@PostMapping("/update")@ResponseBodypublic Map 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 subjects = subjectService.query(null);//将查询出来的数据存储到request域,实现表单回显modelMap.addAttribute("student", student);modelMap.addAttribute("subjects", subjects);return UPDATE;}//查询所有@PostMapping("/query")@ResponseBodypublic Map query(@RequestBody Student student) {//查询所有的学生信息List list = studentService.query(student);//查询所有的专业List subjects = subjectService.query(null);//查询所有的班级List 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 subjects = subjectService.query(null);//查询所有的班级List 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")@ResponseBodypublic Map teacher_student(Integer clazzId, Integer subjectId, ModelMap modelMap, HttpSession session) {Teacher teacher = (Teacher) session.getAttribute("user");List students = studentService.queryStudentByTeacher(teacher.getId(), clazzId, subjectId);List subjects = subjectService.query(null);List 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