IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统
Posted 水坚石青
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统相关的知识,希望对你有一定的参考价值。
目录
一、系统介绍
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+Servlet系统系列实现
Java+SSM系统系列实现
Java+SSH系统系列实现
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系统请关注专栏。
2.源码下载
Java+SSM+Maven+Mysql+Bootstrap实现学校教务管理系统
3.备注
如有侵权请联系我删除。感谢Jacey作者原创。
4.支持博主
如果您觉得此文对您有帮助,请点赞加关注加收藏。祝您生活愉快!想要获取其他资源可关注左侧微信公众号获取!
以上是关于IDEA+Java+SSM+Mysql+Bootstrap+Maven实现学校教务管理系统的主要内容,如果未能解决你的问题,请参考以下文章
IDEA+Java+SSM+JSP+Mysql实现Web图书管理系统
IDEA+Java+SSM+Jsp+Mysql实现Web商品信息管理系统
IDEA+Java+SSM+Mysql+Bootstrap实现Web学生信息管理系统
IDEA+Java+SSM+Mysql+JSP实现Web宠物商城系统