> 文档中心 > IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统

IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统

目录

一、系统介绍

1.开发环境

2.技术选型

3.系统功能

4.数据库文件

二、系统展示

1.系统登录

2.管理员-课程管理

3.管理员-学生管理

4.管理员-教师管理

5.管理员-账号密码设置

6.管理员-修改密码

7.教师-我的课程

8.教师-学生打分

9.教师-修改密码

10.学生-所有课程

11.学生-已选课程

12.学生-已修课程

13.学生-修改密码

三、部分代码

AdminController

LoginController

RestPasswordController

StudentController

TeacherController

pom.xml

四、其他

1.更多系统

Java+JSP系统系列实现

Java+Servlet系统系列实现

Java+SSM系统系列实现

Java+SSH系统系列实现

Java+Springboot系统系列实现

2.源码下载

3.备注

4.支持博主


一、系统介绍

1.开发环境

开发工具:IDEA2018

JDK版本:jdk1.8

Mysql版本:8.0.13

2.技术选型

Java+Spring+SpringMVC+Mybatis+Bootstrap+Mysql+Maven

3.系统功能

用户

1.注册

2.登录

3.浏览书籍

4.购买书籍

4.数据库文件

/* Navicat Premium Data Transfer Source Server  : MYSQL Source Server Type    : MySQL Source Server Version : 80013 Source Host    : localhost:3306 Source Schema  : ssm_maven_examination Target Server Type    : MySQL Target Server Version : 80013 File Encoding  : 65001 Date: 06/12/2021 17:15:58*/SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for college-- ----------------------------DROP TABLE IF EXISTS `college`;CREATE TABLE `college`  (  `collegeID` int(11) NOT NULL,  `collegeName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '课程名',  PRIMARY KEY (`collegeID`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of college-- ----------------------------INSERT INTO `college` VALUES (1, '计算机系');INSERT INTO `college` VALUES (2, '设计系');INSERT INTO `college` VALUES (3, '财经系');-- ------------------------------ Table structure for course-- ----------------------------DROP TABLE IF EXISTS `course`;CREATE TABLE `course`  (  `courseID` int(11) NOT NULL,  `courseName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '课程名称',  `teacherID` int(11) NOT NULL,  `courseTime` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开课时间',  `classRoom` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开课地点',  `courseWeek` int(200) NULL DEFAULT NULL COMMENT '学时',  `courseType` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '课程类型',  `collegeID` int(11) NOT NULL COMMENT '所属院系',  `score` int(11) NOT NULL COMMENT '学分',  PRIMARY KEY (`courseID`) USING BTREE,  INDEX `collegeID`(`collegeID`) USING BTREE,  INDEX `teacherID`(`teacherID`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of course-- ----------------------------INSERT INTO `course` VALUES (1, 'C语言程序设计', 1001, '周二', '科401', 18, '必修课', 1, 4);INSERT INTO `course` VALUES (2, 'Python爬虫技巧', 1001, '周四', 'X402', 18, '必修课', 1, 3);INSERT INTO `course` VALUES (3, '数据结构', 1001, '周四', '科401', 18, '必修课', 1, 2);INSERT INTO `course` VALUES (4, 'Java程序设计', 1002, '周五', '科401', 18, '必修课', 1, 2);INSERT INTO `course` VALUES (5, '英语', 1002, '周四', 'X302', 18, '必修课', 2, 2);INSERT INTO `course` VALUES (6, '服装设计', 1003, '周一', '科401', 18, '选修课', 2, 2);-- ------------------------------ Table structure for role-- ----------------------------DROP TABLE IF EXISTS `role`;CREATE TABLE `role`  (  `roleID` int(11) NOT NULL,  `roleName` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,  `permissions` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限',  PRIMARY KEY (`roleID`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of role-- ----------------------------INSERT INTO `role` VALUES (0, 'admin', NULL);INSERT INTO `role` VALUES (1, 'teacher', NULL);INSERT INTO `role` VALUES (2, 'student', NULL);-- ------------------------------ Table structure for selectedcourse-- ----------------------------DROP TABLE IF EXISTS `selectedcourse`;CREATE TABLE `selectedcourse`  (  `courseID` int(11) NOT NULL,  `studentID` int(11) NOT NULL,  `mark` int(11) NULL DEFAULT NULL COMMENT '成绩',  INDEX `courseID`(`courseID`) USING BTREE,  INDEX `studentID`(`studentID`) USING BTREE,  CONSTRAINT `FK1` FOREIGN KEY (`studentID`) REFERENCES `student` (`userid`) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of selectedcourse-- ----------------------------INSERT INTO `selectedcourse` VALUES (1, 10001, 98);INSERT INTO `selectedcourse` VALUES (2, 10001, 100);INSERT INTO `selectedcourse` VALUES (5, 10001, NULL);-- ------------------------------ Table structure for student-- ----------------------------DROP TABLE IF EXISTS `student`;CREATE TABLE `student`  (  `userID` int(11) NOT NULL AUTO_INCREMENT,  `userName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,  `sex` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  `birthYear` date NULL DEFAULT NULL COMMENT '出生日期',  `grade` date NULL DEFAULT NULL COMMENT '入学时间',  `collegeID` int(11) NOT NULL COMMENT '院系id',  PRIMARY KEY (`userID`) USING BTREE,  INDEX `collegeID`(`collegeID`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 10008 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of student-- ----------------------------INSERT INTO `student` VALUES (10001, '张三', '女', '1996-09-02', '2015-09-02', 2);INSERT INTO `student` VALUES (10002, '李四', '男', '1996-09-02', '2015-09-02', 1);INSERT INTO `student` VALUES (10003, '小陈', '女', '1996-09-02', '2015-09-02', 2);INSERT INTO `student` VALUES (10004, '王五', '男', '1996-09-03', '2019-11-13', 3);INSERT INTO `student` VALUES (10005, '黄七', '女', '1996-09-02', '2015-09-02', 2);INSERT INTO `student` VALUES (10006, '赵六', '男', '1996-09-02', '2015-09-02', 2);-- ------------------------------ Table structure for teacher-- ----------------------------DROP TABLE IF EXISTS `teacher`;CREATE TABLE `teacher`  (  `userID` int(11) NOT NULL AUTO_INCREMENT,  `userName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,  `sex` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  `birthYear` date NOT NULL,  `degree` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '学历',  `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '职称',  `grade` date NULL DEFAULT NULL COMMENT '入职时间',  `collegeID` int(11) NOT NULL COMMENT '院系',  PRIMARY KEY (`userID`) USING BTREE,  INDEX `collegeID`(`collegeID`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 1004 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of teacher-- ----------------------------INSERT INTO `teacher` VALUES (1001, '刘老师', '女', '1990-03-08', '硕士', '副教授', '2015-09-02', 2);INSERT INTO `teacher` VALUES (1002, '张老师', '女', '1996-09-02', '本科', '普通教师', '2015-09-02', 1);INSERT INTO `teacher` VALUES (1003, '软老师', '女', '1996-09-02', '硕士', '助教', '2017-07-07', 1);-- ------------------------------ Table structure for userlogin-- ----------------------------DROP TABLE IF EXISTS `userlogin`;CREATE TABLE `userlogin`  (  `userID` int(11) NOT NULL AUTO_INCREMENT,  `userName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,  `password` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,  `role` int(11) NOT NULL DEFAULT 2 COMMENT '角色权限',  PRIMARY KEY (`userID`) USING BTREE,  INDEX `role`(`role`) USING BTREE) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ------------------------------ Records of userlogin-- ----------------------------INSERT INTO `userlogin` VALUES (1, 'admin', 'admin', 0);INSERT INTO `userlogin` VALUES (14, '1001', '123', 1);INSERT INTO `userlogin` VALUES (15, '1002', '123', 1);INSERT INTO `userlogin` VALUES (16, '1003', '123', 1);INSERT INTO `userlogin` VALUES (18, '10001', '123', 2);INSERT INTO `userlogin` VALUES (19, '10002', '123', 2);INSERT INTO `userlogin` VALUES (20, '10003', '123', 2);INSERT INTO `userlogin` VALUES (23, '10004', '123', 2);INSERT INTO `userlogin` VALUES (24, '10005', '123', 2);INSERT INTO `userlogin` VALUES (25, '10006', '123', 2);SET FOREIGN_KEY_CHECKS = 1;

二、系统展示

1.系统登录

2.管理员-课程管理

3.管理员-学生管理

4.管理员-教师管理

5.管理员-账号密码设置

6.管理员-修改密码

7.教师-我的课程

8.教师-学生打分

9.教师-修改密码

10.学生-所有课程

11.学生-已选课程

12.学生-已修课程

13.学生-修改密码

三、部分代码

AdminController

package com.system.controller;import com.system.exception.CustomException;import com.system.po.*;import com.system.service.*;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import javax.annotation.Resource;import java.util.List;/ * Created by Jacey on 2017/7/5. */@Controller@RequestMapping("/admin")public class AdminController {    @Resource(name = "studentServiceImpl")    private StudentService studentService;    @Resource(name = "teacherServiceImpl")    private TeacherService teacherService;    @Resource(name = "courseServiceImpl")    private CourseService courseService;    @Resource(name = "collegeServiceImpl")    private CollegeService collegeService;    @Resource(name = "userloginServiceImpl")    private UserloginService userloginService;    /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/    //  学生信息显示    @RequestMapping("/showStudent")    public String showStudent(Model model, Integer page) throws Exception { List list = null; //页码对象 PagingVO pagingVO = new PagingVO(); //设置总页数 pagingVO.setTotalCount(studentService.getCountStudent()); if (page == null || page == 0) {     pagingVO.setToPageNo(1);     list = studentService.findByPaging(1); } else {     pagingVO.setToPageNo(page);     list = studentService.findByPaging(page); } model.addAttribute("studentList", list); model.addAttribute("pagingVO", pagingVO); return "admin/showStudent";    }    //  添加学生信息页面显示    @RequestMapping(value = "/addStudent", method = {RequestMethod.GET})    public String addStudentUI(Model model) throws Exception { List list = collegeService.finAll(); model.addAttribute("collegeList", list); return "admin/addStudent";    }    // 添加学生信息操作    @RequestMapping(value = "/addStudent", method = {RequestMethod.POST})    public String addStudent(StudentCustom studentCustom, Model model) throws Exception { Boolean result = studentService.save(studentCustom); if (!result) {     model.addAttribute("message", "学号重复");     return "error"; } //添加成功后,也添加到登录表 Userlogin userlogin = new Userlogin(); userlogin.setUsername(studentCustom.getUserid().toString()); userlogin.setPassword("123"); userlogin.setRole(2); userloginService.save(userlogin); //重定向 return "redirect:/admin/showStudent";    }    // 修改学生信息页面显示    @RequestMapping(value = "/editStudent", method = {RequestMethod.GET})    public String editStudentUI(Integer id, Model model) throws Exception { if (id == null) {     //加入没有带学生id就进来的话就返回学生显示页面     return "redirect:/admin/showStudent"; } StudentCustom studentCustom = studentService.findById(id); if (studentCustom == null) {     throw new CustomException("未找到该名学生"); } List list = collegeService.finAll(); model.addAttribute("collegeList", list); model.addAttribute("student", studentCustom); return "admin/editStudent";    }    // 修改学生信息处理    @RequestMapping(value = "/editStudent", method = {RequestMethod.POST})    public String editStudent(StudentCustom studentCustom) throws Exception { studentService.updataById(studentCustom.getUserid(), studentCustom); //重定向 return "redirect:/admin/showStudent";    }    // 删除学生    @RequestMapping(value = "/removeStudent", method = {RequestMethod.GET})    private String removeStudent(Integer id) throws Exception { if (id == null) {     //加入没有带学生id就进来的话就返回学生显示页面     return "admin/showStudent"; } studentService.removeById(id); userloginService.removeByName(id.toString()); return "redirect:/admin/showStudent";    }    // 搜索学生    @RequestMapping(value = "selectStudent", method = {RequestMethod.POST})    private String selectStudent(String findByName, Model model) throws Exception { List list = studentService.findByName(findByName); model.addAttribute("studentList", list); return "admin/showStudent";    }    /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/    // 教师页面显示    @RequestMapping("/showTeacher")    public String showTeacher(Model model, Integer page) throws Exception { List list = null; //页码对象 PagingVO pagingVO = new PagingVO(); //设置总页数 pagingVO.setTotalCount(teacherService.getCountTeacher()); if (page == null || page == 0) {     pagingVO.setToPageNo(1);     list = teacherService.findByPaging(1); } else {     pagingVO.setToPageNo(page);     list = teacherService.findByPaging(page); } model.addAttribute("teacherList", list); model.addAttribute("pagingVO", pagingVO); return "admin/showTeacher";    }    // 添加教师信息    @RequestMapping(value = "/addTeacher", method = {RequestMethod.GET})    public String addTeacherUI(Model model) throws Exception { List list = collegeService.finAll(); model.addAttribute("collegeList", list); return "admin/addTeacher";    }    // 添加教师信息处理    @RequestMapping(value = "/addTeacher", method = {RequestMethod.POST})    public String addTeacher(TeacherCustom teacherCustom, Model model) throws Exception { Boolean result = teacherService.save(teacherCustom); if (!result) {     model.addAttribute("message", "工号重复");     return "error"; } //添加成功后,也添加到登录表 Userlogin userlogin = new Userlogin(); userlogin.setUsername(teacherCustom.getUserid().toString()); userlogin.setPassword("123"); userlogin.setRole(1); userloginService.save(userlogin); //重定向 return "redirect:/admin/showTeacher";    }    // 修改教师信息页面显示    @RequestMapping(value = "/editTeacher", method = {RequestMethod.GET})    public String editTeacherUI(Integer id, Model model) throws Exception { if (id == null) {     return "redirect:/admin/showTeacher"; } TeacherCustom teacherCustom = teacherService.findById(id); if (teacherCustom == null) {     throw new CustomException("未找到该名学生"); } List list = collegeService.finAll(); model.addAttribute("collegeList", list); model.addAttribute("teacher", teacherCustom); return "admin/editTeacher";    }    // 修改教师信息页面处理    @RequestMapping(value = "/editTeacher", method = {RequestMethod.POST})    public String editTeacher(TeacherCustom teacherCustom) throws Exception { teacherService.updateById(teacherCustom.getUserid(), teacherCustom); //重定向 return "redirect:/admin/showTeacher";    }    //删除教师    @RequestMapping("/removeTeacher")    public String removeTeacher(Integer id) throws Exception { if (id == null) {     //加入没有带教师id就进来的话就返回教师显示页面     return "admin/showTeacher"; } teacherService.removeById(id); userloginService.removeByName(id.toString()); return "redirect:/admin/showTeacher";    }    //搜索教师    @RequestMapping(value = "selectTeacher", method = {RequestMethod.POST})    private String selectTeacher(String findByName, Model model) throws Exception { List list = teacherService.findByName(findByName); model.addAttribute("teacherList", list); return "admin/showTeacher";    }    /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/    // 课程信息显示    @RequestMapping("/showCourse")    public String showCourse(Model model, Integer page) throws Exception { List list = null; //页码对象 PagingVO pagingVO = new PagingVO(); //设置总页数 pagingVO.setTotalCount(courseService.getCountCouse()); if (page == null || page == 0) {     pagingVO.setToPageNo(1);     list = courseService.findByPaging(1); } else {     pagingVO.setToPageNo(page);     list = courseService.findByPaging(page); } model.addAttribute("courseList", list); model.addAttribute("pagingVO", pagingVO); return "admin/showCourse";    }    //添加课程    @RequestMapping(value = "/addCourse", method = {RequestMethod.GET})    public String addCourseUI(Model model) throws Exception { List list = teacherService.findAll(); List collegeList = collegeService.finAll(); model.addAttribute("collegeList", collegeList); model.addAttribute("teacherList", list); return "admin/addCourse";    }    // 添加课程信息处理    @RequestMapping(value = "/addCourse", method = {RequestMethod.POST})    public String addCourse(CourseCustom courseCustom, Model model) throws Exception { Boolean result = courseService.save(courseCustom); if (!result) {     model.addAttribute("message", "课程号重复");     return "error"; } //重定向 return "redirect:/admin/showCourse";    }    // 修改教师信息页面显示    @RequestMapping(value = "/editCourse", method = {RequestMethod.GET})    public String editCourseUI(Integer id, Model model) throws Exception { if (id == null) {     return "redirect:/admin/showCourse"; } CourseCustom courseCustom = courseService.findById(id); if (courseCustom == null) {     throw new CustomException("未找到该课程"); } List list = teacherService.findAll(); List collegeList = collegeService.finAll(); model.addAttribute("teacherList", list); model.addAttribute("collegeList", collegeList); model.addAttribute("course", courseCustom); return "admin/editCourse";    }    // 修改教师信息页面处理    @RequestMapping(value = "/editCourse", method = {RequestMethod.POST})    public String editCourse(CourseCustom courseCustom) throws Exception { courseService.upadteById(courseCustom.getCourseid(), courseCustom); //重定向 return "redirect:/admin/showCourse";    }    // 删除课程信息    @RequestMapping("/removeCourse")    public String removeCourse(Integer id) throws Exception { if (id == null) {     //加入没有带教师id就进来的话就返回教师显示页面     return "admin/showCourse"; } courseService.removeById(id); return "redirect:/admin/showCourse";    }    //搜索课程    @RequestMapping(value = "selectCourse", method = {RequestMethod.POST})    private String selectCourse(String findByName, Model model) throws Exception { List list = courseService.findByName(findByName); model.addAttribute("courseList", list); return "admin/showCourse";    }    /*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/    // 普通用户账号密码重置    @RequestMapping("/userPasswordRest")    public String userPasswordRestUI() throws Exception { return "admin/userPasswordRest";    }    // 普通用户账号密码重置处理    @RequestMapping(value = "/userPasswordRest", method = {RequestMethod.POST})    public String userPasswordRest(Userlogin userlogin) throws Exception { Userlogin u = userloginService.findByName(userlogin.getUsername()); if (u != null) {     if (u.getRole() == 0) {  throw new CustomException("该账户为管理员账户,没法修改");     }     u.setPassword(userlogin.getPassword());     userloginService.updateByName(userlogin.getUsername(), u); } else {     throw new CustomException("没找到该用户"); } return "admin/userPasswordRest";    }    // 本账户密码重置    @RequestMapping("/passwordRest")    public String passwordRestUI() throws Exception { return "admin/passwordRest";    }}

LoginController

package com.system.controller;import com.system.po.Userlogin;import org.apache.shiro.SecurityUtils;import org.apache.shiro.authc.UsernamePasswordToken;import org.apache.shiro.subject.Subject;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;/ * Created by Jacey on 2017/7/5. */@Controllerpublic class LoginController {    //登录跳转    @RequestMapping(value = "/login", method = {RequestMethod.GET})    public String loginUI() throws Exception { return "../../login";    }    //登录表单处理    @RequestMapping(value = "/login", method = {RequestMethod.POST})    public String login(Userlogin userlogin) throws Exception { //Shiro实现登录 UsernamePasswordToken token = new UsernamePasswordToken(userlogin.getUsername(),  userlogin.getPassword()); Subject subject = SecurityUtils.getSubject(); //如果获取不到用户名就是登录失败,但登录失败的话,会直接抛出异常 subject.login(token); if (subject.hasRole("admin")) {     return "redirect:/admin/showStudent"; } else if (subject.hasRole("teacher")) {     return "redirect:/teacher/showCourse"; } else if (subject.hasRole("student")) {     return "redirect:/student/showCourse"; } return "/login";    }}

RestPasswordController

package com.system.controller;import com.system.exception.CustomException;import com.system.po.Userlogin;import com.system.service.UserloginService;import org.apache.shiro.SecurityUtils;import org.apache.shiro.subject.Subject;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import javax.annotation.Resource;/ * Created by Jacey on 2017/7/5. */@Controllerpublic class RestPasswordController {    @Resource(name = "userloginServiceImpl")    private UserloginService userloginService;    // 本账户密码重置    @RequestMapping(value = "/passwordRest", method = {RequestMethod.POST})    public String passwordRest(String oldPassword, String password1) throws Exception { Subject subject = SecurityUtils.getSubject(); String username = (String) subject.getPrincipal(); Userlogin userlogin = userloginService.findByName(username); if (!oldPassword.equals(userlogin.getPassword())) {     throw new CustomException("旧密码不正确"); } else {     userlogin.setPassword(password1);     userloginService.updateByName(username, userlogin); } return "redirect:/logout";    }}

StudentController

package com.system.controller;import com.system.exception.CustomException;import com.system.po.CourseCustom;import com.system.po.PagingVO;import com.system.po.SelectedCourseCustom;import com.system.po.StudentCustom;import com.system.service.CourseService;import com.system.service.SelectedCourseService;import com.system.service.StudentService;import org.apache.shiro.SecurityUtils;import org.apache.shiro.subject.Subject;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import javax.annotation.Resource;import java.util.List;/ * Created by Jacey on 2017/7/5. */@Controller@RequestMapping(value = "/student")public class StudentController {    @Resource(name = "courseServiceImpl")    private CourseService courseService;    @Resource(name = "studentServiceImpl")    private StudentService studentService;    @Resource(name = "selectedCourseServiceImpl")    private SelectedCourseService selectedCourseService;    @RequestMapping(value = "/showCourse")    public String stuCourseShow(Model model, Integer page) throws Exception { List list = null; //页码对象 PagingVO pagingVO = new PagingVO(); //设置总页数 pagingVO.setTotalCount(courseService.getCountCouse()); if (page == null || page == 0) {     pagingVO.setToPageNo(1);     list = courseService.findByPaging(1); } else {     pagingVO.setToPageNo(page);     list = courseService.findByPaging(page); } model.addAttribute("courseList", list); model.addAttribute("pagingVO", pagingVO); return "student/showCourse";    }    // 选课操作    @RequestMapping(value = "/stuSelectedCourse")    public String stuSelectedCourse(int id) throws Exception { //获取当前用户名 Subject subject = SecurityUtils.getSubject(); String username = (String) subject.getPrincipal(); SelectedCourseCustom selectedCourseCustom = new SelectedCourseCustom(); selectedCourseCustom.setCourseid(id); selectedCourseCustom.setStudentid(Integer.parseInt(username)); SelectedCourseCustom s = selectedCourseService.findOne(selectedCourseCustom); if (s == null) {     selectedCourseService.save(selectedCourseCustom); } else {     throw new CustomException("该门课程你已经选了,不能再选"); } return "redirect:/student/selectedCourse";    }    // 退课操作    @RequestMapping(value = "/outCourse")    public String outCourse(int id) throws Exception { Subject subject = SecurityUtils.getSubject(); String username = (String) subject.getPrincipal(); SelectedCourseCustom selectedCourseCustom = new SelectedCourseCustom(); selectedCourseCustom.setCourseid(id); selectedCourseCustom.setStudentid(Integer.parseInt(username)); selectedCourseService.remove(selectedCourseCustom); return "redirect:/student/selectedCourse";    }    // 已选课程    @RequestMapping(value = "/selectedCourse")    public String selectedCourse(Model model) throws Exception { //获取当前用户名 Subject subject = SecurityUtils.getSubject(); StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal()); List list = studentCustom.getSelectedCourseList(); model.addAttribute("selectedCourseList", list); return "student/selectCourse";    }    // 已修课程    @RequestMapping(value = "/overCourse")    public String overCourse(Model model) throws Exception { //获取当前用户名 Subject subject = SecurityUtils.getSubject(); StudentCustom studentCustom = studentService.findStudentAndSelectCourseListByName((String) subject.getPrincipal()); List list = studentCustom.getSelectedCourseList(); model.addAttribute("selectedCourseList", list); return "student/overCourse";    }    //修改密码    @RequestMapping(value = "/passwordRest")    public String passwordRest() throws Exception { return "student/passwordRest";    }}

TeacherController

package com.system.controller;import com.system.po.CourseCustom;import com.system.po.SelectedCourseCustom;import com.system.service.CourseService;import com.system.service.SelectedCourseService;import com.system.service.TeacherService;import org.apache.shiro.SecurityUtils;import org.apache.shiro.subject.Subject;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import javax.annotation.Resource;import java.util.List;/ * Created by Jacey on 2017/7/6. */@Controller@RequestMapping(value = "/teacher")public class TeacherController {    @Resource(name = "teacherServiceImpl")    private TeacherService teacherService;    @Resource(name = "courseServiceImpl")    private CourseService courseService;    @Resource(name = "selectedCourseServiceImpl")    private SelectedCourseService selectedCourseService;    // 显示我的课程    @RequestMapping(value = "/showCourse")    public String stuCourseShow(Model model) throws Exception { Subject subject = SecurityUtils.getSubject(); String username = (String) subject.getPrincipal(); List list = courseService.findByTeacherID(Integer.parseInt(username)); model.addAttribute("courseList", list); return "teacher/showCourse";    }    // 显示成绩    @RequestMapping(value = "/gradeCourse", method = {RequestMethod.GET})    public String gradeCourse(Integer id, Model model) throws Exception { if (id == null) {     return ""; } System.out.println("id:"+id); List list = selectedCourseService.findByCourseID(id); model.addAttribute("selectedCourseList", list); return "teacher/showGrade";    }    // 打分    @RequestMapping(value = "/mark", method = {RequestMethod.GET})    public String markUI(SelectedCourseCustom scc, Model model) throws Exception { SelectedCourseCustom selectedCourseCustom = selectedCourseService.findOne(scc); model.addAttribute("selectedCourse", selectedCourseCustom); return "teacher/mark";    }    // 打分    @RequestMapping(value = "/mark", method = {RequestMethod.POST})    public String mark(SelectedCourseCustom scc) throws Exception { selectedCourseService.updataOne(scc); return "redirect:/teacher/gradeCourse?id=" + scc.getCourseid();    }    //修改密码    @RequestMapping(value = "/passwordRest")    public String passwordRest() throws Exception { return "teacher/passwordRest";    }}

pom.xml

    4.0.0    com.sjsq    Examination    1.0-SNAPSHOT    war    Examination Maven Webapp        http://www.example.com     UTF-8 1.7 1.7              junit     junit     4.12     test        javax.servlet     javax.servlet-api     3.1.0     provided        org.apache.shiro     shiro-core     1.2.3       org.apache.shiro     shiro-web     1.2.3       org.apache.shiro     shiro-spring     1.2.3        org.springframework     spring-context     4.3.8.RELEASE        org.springframework     spring-web     4.3.8.RELEASE        org.springframework     spring-webmvc     4.3.7.RELEASE        org.springframework     spring-tx     4.3.8.RELEASE        org.springframework     spring-aop     4.3.9.RELEASE       org.aspectj     aspectjweaver     1.8.10        org.springframework     spring-jdbc     4.2.5.RELEASE        javax.servlet     jstl     1.2        log4j     log4j     1.2.17        org.mybatis     mybatis     3.4.1        org.mybatis.generator     mybatis-generator-core     1.3.5        org.mybatis     mybatis-spring     1.3.0        org.hibernate     hibernate-validator     5.4.1.Final        com.mchange     c3p0     0.9.5.2        mysql     mysql-connector-java     8.0.13       org.jetbrains     annotations-java5     RELEASE        org.jetbrains     annotations-java5     15.0          Examination_System           src/main/java        /*.xml            

四、其他

1.更多系统

Java+JSP系统系列实现

Java+JSP实现学生图书管理系统

Java+JSP实现学生信息管理系统

Java+JSP实现用户信息管理系统

Java+Servlet系统系列实现

Java+Servlet+JSP实现航空订票系统

Java+Servlet+JSP实现新闻发布系统

Java+Servlet+JSP学生宿舍管理系统

Java+Servlet+JSP实现图书管理系统

Java+Servlet+JSP实现停车场管理系统

Java+Servlet+JSP实现房屋租赁管理系统

Java+Servlet+JSP实现学生信息管理系统

Java+Servlet+JSP实现学生选课管理系统

Java+Servlet+JSP实现宠物诊所管理系统

Java+Servlet+JSP实现学生成绩管理系统-1

Java+Servlet+JSP实现学生成绩管理系统-2

Java+SSM系统系列实现

Java+SSM+JSP实现超市订单系统

J​​​ava+SSM+JSP实现网上考试系统

Java+SSM+JSP实现宠物商城系统

Java+SSM+Layui实现学生成绩管理系统

Java+SSM+Bootstrap实现学生信息管理系统

Java+SSH系统系列实现

Java+SSH+JSP实现在线考试系统

Java+SSH+JSP实现医院在线挂号系统

Java+Springboot系统系列实现

Java+Springboot+H-ui+Maven实现营销管理系统

Java+Springboot+Bootstrap+Maven实现网上商城系统

Java+Springboot+Bootstrap+Maven实现景区旅游管理系统

1.更多JavaWeb系统请关注专栏。

https://blog.csdn.net/helongqiang/category_10020130.htmlhttps://blog.csdn.net/helongqiang/category_10020130.html

2.更多JavaSwing系统请关注专栏。

https://blog.csdn.net/helongqiang/category_6229101.htmlhttps://blog.csdn.net/helongqiang/category_6229101.html

2.源码下载

Java+SSM+Maven+Mysql+Bootstrap实现学校教务管理系统

3.备注

如有侵权请联系我删除。感谢Jacey作者原创。

4.支持博主

如果您觉得此文对您有帮助,请点赞加关注加收藏。祝您生活愉快!想要获取其他资源可关注左侧微信公众号获取!

素描网