一、系统介绍
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<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实现超市订单系统
Java+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.html
https://blog.csdn.net/helongqiang/category_10020130.html
2.更多JavaSwing系统请关注专栏。
https://blog.csdn.net/helongqiang/category_6229101.html
https://blog.csdn.net/helongqiang/category_6229101.html
2.源码下载
Java+SSM+Maven+Mysql+Bootstrap实现学校教务管理系统
3.备注
如有侵权请联系我删除。感谢Jacey作者原创。
4.支持博主
如果您觉得此文对您有帮助,请点赞加关注加收藏。祝您生活愉快!