目录

一、系统介绍

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 TransferSource Server         : MYSQLSource Server Type    : MySQLSource Server Version : 80013Source Host           : localhost:3306Source Schema         : ssm_maven_examinationTarget Server Type    : MySQLTarget Server Version : 80013File Encoding         : 65001Date: 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<StudentCustom> 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<College> 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<College> 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<StudentCustom> list = studentService.findByName(findByName);model.addAttribute("studentList", list);return "admin/showStudent";}/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<教师操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/// 教师页面显示@RequestMapping("/showTeacher")public String showTeacher(Model model, Integer page) throws Exception {List<TeacherCustom> 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<College> 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<College> 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<TeacherCustom> list = teacherService.findByName(findByName);model.addAttribute("teacherList", list);return "admin/showTeacher";}/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<课程操作>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/// 课程信息显示@RequestMapping("/showCourse")public String showCourse(Model model, Integer page) throws Exception {List<CourseCustom> 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<TeacherCustom> list = teacherService.findAll();List<College> 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<TeacherCustom> list = teacherService.findAll();List<College> 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<CourseCustom> 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.*/
@Controller
public 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.*/
@Controller
public 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<CourseCustom> 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<SelectedCourseCustom> 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<SelectedCourseCustom> 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<CourseCustom> 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<SelectedCourseCustom> 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

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.sjsq</groupId><artifactId>Examination</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>Examination Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!--servletAPI--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!--shiro依赖--><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</artifactId><version>1.2.3</version></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-web</artifactId><version>1.2.3</version></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.2.3</version></dependency><!--spring--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.8.RELEASE</version></dependency><!--springWEB--><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>4.3.8.RELEASE</version></dependency><!--springMVC--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.7.RELEASE</version></dependency><!--spring tx 事务处理--><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>4.3.8.RELEASE</version></dependency><!--spring aop--><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>4.3.9.RELEASE</version></dependency><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.8.10</version></dependency><!--spring-jdbc--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.2.5.RELEASE</version></dependency><!--jstl--><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!--log4j--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!--mybatis--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.1</version></dependency><!--mybatis逆向工程--><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.5</version></dependency><!--mybatis spring整合包--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version></dependency><!--hibernate 数据校验器包--><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>5.4.1.Final</version></dependency><!--c3p0链接池--><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version></dependency><!--Mysql数据库驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.13</version></dependency><dependency><groupId>org.jetbrains</groupId><artifactId>annotations-java5</artifactId><version>RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/org.jetbrains/annotations-java5 --><dependency><groupId>org.jetbrains</groupId><artifactId>annotations-java5</artifactId><version>15.0</version></dependency></dependencies><build><finalName>Examination_System</finalName><!--在IDEA中maven 默认编译的时候   只搬运src/main/java里面的java文件到target/classes,其他文件会被忽略--><!--这时,我们Mybatis的Mapper.xml文件就不能被加载进去,也就是不能映射成功--><!--下面配置就能解决这个问题--><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build>
</project>

四、其他

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.支持博主

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

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

  1. IDEA+Java+JSP+Mysql+Tomcat实现Web学校教材管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库文件 5.系统截图 二.系统展示 1.登录系统 2.系统主页 3.新增教材 4.修改教材 三.部分代码 AdminDaoImpl ...

  2. 基于Java+SSM+MySQL的高校就业创业信息管理系统

    目 录 摘 要 I ABSTRACT II 第1章 绪论 1 1.1 选题背景 1 1.2 现状分析 1 1.3 研究主要内容 1 第2章 系统工具 3 2.1 B/S结构 3 2.1.1 什么是B/ ...

  3. IDEA+Java+JSP+Mysql+Tomcat实现Web商品信息管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库文件 5.系统截图 二.系统展示 1.登录系统 2.系统主页 3.增加商品 4.修改商品 三.部分代码 AdminDaoImpl ...

  4. IDEA+Java+JSP+Mysql+Tomcat实现Web教师信息管理系统

    目录 一.系统介绍 1.开发环境 2.技术选型 3.系统功能 4.数据库文件 5.工程截图 二.系统展示 1.登录系统 2.查询教师信息 3.添加教师信息 4.修改教师信息 三.部分代码 AdminD ...

  5. 基于javaweb的家校通管理系统(java+ssm+jsp+bootstrap+echarts+mysql)

    基于javaweb的家校通管理系统(java+ssm+jsp+bootstrap+echarts+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/ ...

  6. Java+Springboot+Mybatis+Mysql+Bootstrap+Maven实现网上商城系统

    网上商城系统 一.系统介绍 1.软件环境 2.功能模块图 3.系统功能 4.数据库表 5.SQL语句 6.工程截图 二.系统展示 1.用户-浏览商品 2.用户-注册 3.用户-登录 4.用户-购物车管 ...

  7. 基于javaweb的图书进销存管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的图书进销存管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/m ...

  8. 基于javaweb的在线车队货车管理系统(java+ssm+jsp+bootstrap+mysql)

    基于javaweb的在线车队货车管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/ ...

  9. 基于javaweb的医院病历信息管理系统(java+ssm+jsp+bootstrap+easyui+mysql)

    基于javaweb的医院病历信息管理系统(java+ssm+jsp+bootstrap+easyui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclips ...

最新文章

  1. ExecutorService(任务调度器)详解
  2. 在ListBox中添加ToggleButton(有IsChecked属性)
  3. 一些适用于前端开发的 Atom 插件
  4. hdu 1115(多边形重心)
  5. python request库_【Python爬虫】Request库入门
  6. 最近项目中遇到的问题以及解决办法
  7. 聊聊RPC之Provider
  8. 永别了!2200元,老外眼中的2200元神机缺货数月后下架
  9. Python+KNN算法判断单词相似度小案例
  10. python做一个本地搜索_用 python, django 实现的一个很简单的搜索引擎
  11. 英方软件:以“数据复制”为起点来赋能行业
  12. forEach(BiConsumer action)方法遍历Map集合
  13. ssm框架实现用户登录的拦截器和过滤器
  14. 儿童吹泡泡水简单配方_最好的吹泡泡水的制作方法
  15. ae批量修改字体_AE脚本pt_TextEdit v2.5批量修改文字图层样式字体大小属性编辑工具...
  16. matlab软件及基础实验第8单元,MATLAB软件与基础数学实验
  17. Java的基本语法^_^
  18. 北京林业大学matlab公选课,北京林业大学教务处
  19. 红米手机TWRP读不了刷机包成功解决记录
  20. Leo第一次练习跆拳道--Leo与跆拳道 1

热门文章

  1. “被动挖光缆”到“主动剪网线”,蚂蚁金服异地多活的微服务体系
  2. 使用nginx上传大文件报500异常处理
  3. 数据 | 全国历史六级以上地震记录制图
  4. 计算机图形学中的光栅化
  5. SpringCloud搭建微服务之Hystrix熔断器
  6. 网盘直链下载插件纯净版
  7. 算法问题:什么是P问题、NP问题和NPC问题zz
  8. 破解Linux操作系统root 权限不能使用问题
  9. 三次技术转型,程序员的北漂奋斗史 | 程序员有话说
  10. CUDA out of memory解决办法