SSM+Mysql实现的学校教务管理系统
本系统是一个SSM的学校教务管理系统,分为学生、教师、管理员三种角色,学生可以选课、查看自己修的课程,教师可以查看自己教授的课程以及学生成绩,管理员可以对课程、学生、教师进行管理等。
(文末查看完整源码)
实现功能截图
登录
学生
已选课程
已修课程
我教授的课程
学生/教师管理
系统功能
本系统实现了以下功能:
1、登录
2、已选课程
3、已修课程
4、我教授的课程
5、成绩查看
6、用户管理
7、学生管理
8、教师管理
9、修改密码
等
使用技术
数据库:mysql
开发工具:Idea(Myeclispe、Eclipse也可以)
知识点:SSM+Mybatis
项目结构
代码
java端
实体类
Student.java
package com.system.po;
import java.util.Date;
public class Student {
private Integer userid;
private String username;
private String sex;
private Date birthyear;
private Date grade;
private Integer collegeid;
public Integer getUserid() {
return userid;
}
public void setUserid(Integer userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username == null ? null : username.trim();
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex == null ? null : sex.trim();
}
public Date getBirthyear() {
return birthyear;
}
public void setBirthyear(Date birthyear) {
this.birthyear = birthyear;
}
public Date getGrade() {
return grade;
}
public void setGrade(Date grade) {
this.grade = grade;
}
public Integer getCollegeid() {
return collegeid;
}
public void setCollegeid(Integer collegeid) {
this.collegeid = collegeid;
}
}
Teacher.java
package com.system.po;
import java.util.Date;
public class Teacher {
private Integer userid;
private String username;
private String sex;
private Date birthyear;
private String degree;
private String title;
private Date grade;
private Integer collegeid;
public Integer getUserid() {
return userid;
}
public void setUserid(Integer userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username == null ? null : username.trim();
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex == null ? null : sex.trim();
}
public Date getBirthyear() {
return birthyear;
}
public void setBirthyear(Date birthyear) {
this.birthyear = birthyear;
}
public String getDegree() {
return degree;
}
public void setDegree(String degree) {
this.degree = degree == null ? null : degree.trim();
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title == null ? null : title.trim();
}
public Date getGrade() {
return grade;
}
public void setGrade(Date grade) {
this.grade = grade;
}
public Integer getCollegeid() {
return collegeid;
}
public void setCollegeid(Integer collegeid) {
this.collegeid = collegeid;
}
}
mapper层
StudentMapper
package com.system.mapper;
import com.system.po.Student;
import com.system.po.StudentExample;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface StudentMapper {
int countByExample(StudentExample example);
int deleteByExample(StudentExample example);
int deleteByPrimaryKey(Integer userid);
int insert(Student record);
int insertSelective(Student record);
List<Student> selectByExample(StudentExample example);
Student selectByPrimaryKey(Integer userid);
int updateByExampleSelective(@Param("record") Student record, @Param("example") StudentExample example);
int updateByExample(@Param("record") Student record, @Param("example") StudentExample example);
int updateByPrimaryKeySelective(Student record);
int updateByPrimaryKey(Student record);
}
TeacherMapper
package com.system.mapper;
import com.system.po.Teacher;
import com.system.po.TeacherExample;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TeacherMapper {
int countByExample(TeacherExample example);
int deleteByExample(TeacherExample example);
int deleteByPrimaryKey(Integer userid);
int insert(Teacher record);
int insertSelective(Teacher record);
List<Teacher> selectByExample(TeacherExample example);
Teacher selectByPrimaryKey(Integer userid);
int updateByExampleSelective(@Param("record") Teacher record, @Param("example") TeacherExample example);
int updateByExample(@Param("record") Teacher record, @Param("example") TeacherExample example);
int updateByPrimaryKeySelective(Teacher record);
int updateByPrimaryKey(Teacher record);
}
service层
package com.system.service.impl;
import com.system.mapper.CollegeMapper;
import com.system.mapper.StudentMapper;
import com.system.mapper.StudentMapperCustom;
import com.system.po.*;
import com.system.service.StudentService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* Student
*/
@Service
public class StudentServiceImpl implements StudentService {
//使用spring 自动注入
@Autowired
private StudentMapperCustom studentMapperCustom;
@Autowired
private StudentMapper studentMapper;
@Autowired
private CollegeMapper collegeMapper;
public void updataById(Integer id, StudentCustom studentCustom) throws Exception {
studentMapper.updateByPrimaryKey(studentCustom);
}
public void removeById(Integer id) throws Exception {
studentMapper.deleteByPrimaryKey(id);
}
public List<StudentCustom> findByPaging(Integer toPageNo) throws Exception {
PagingVO pagingVO = new PagingVO();
pagingVO.setToPageNo(toPageNo);
List<StudentCustom> list = studentMapperCustom.findByPaging(pagingVO);
return list;
}
public Boolean save(StudentCustom studentCustoms) throws Exception {
Student stu = studentMapper.selectByPrimaryKey(studentCustoms.getUserid());
if (stu == null) {
studentMapper.insert(studentCustoms);
return true;
}
return false;
}
//返回学生总数
public int getCountStudent() throws Exception {
//自定义查询对象
StudentExample studentExample = new StudentExample();
//通过criteria构造查询条件
StudentExample.Criteria criteria = studentExample.createCriteria();
criteria.andUseridIsNotNull();
return studentMapper.countByExample(studentExample);
}
public StudentCustom findById(Integer id) throws Exception {
Student student = studentMapper.selectByPrimaryKey(id);
StudentCustom studentCustom = null;
if (student != null) {
studentCustom = new StudentCustom();
//类拷贝
BeanUtils.copyProperties(student, studentCustom);
}
return studentCustom;
}
//模糊查询
public List<StudentCustom> findByName(String name) throws Exception {
StudentExample studentExample = new StudentExample();
//自定义查询条件
StudentExample.Criteria criteria = studentExample.createCriteria();
criteria.andUsernameLike("%" + name + "%");
List<Student> list = studentMapper.selectByExample(studentExample);
List<StudentCustom> studentCustomList = null;
if (list != null) {
studentCustomList = new ArrayList<StudentCustom>();
for (Student s : list) {
StudentCustom studentCustom = new StudentCustom();
//类拷贝
BeanUtils.copyProperties(s, studentCustom);
//获取课程名
College college = collegeMapper.selectByPrimaryKey(s.getCollegeid());
studentCustom.setcollegeName(college.getCollegename());
studentCustomList.add(studentCustom);
}
}
return studentCustomList;
}
@Override
public StudentCustom findStudentAndSelectCourseListByName(String name) throws Exception {
StudentCustom studentCustom = studentMapperCustom.findStudentAndSelectCourseListById(Integer.parseInt(name));
List<SelectedCourseCustom> list = studentCustom.getSelectedCourseList();
// 判断该课程是否修完
for (SelectedCourseCustom s : list) {
if (s.getMark() != null) {
s.setOver(true);
}
}
return studentCustom;
}
}
TeacherServiceImpl.java
package com.system.service.impl;
import com.system.exception.CustomException;
import com.system.mapper.CollegeMapper;
import com.system.mapper.CourseMapper;
import com.system.mapper.TeacherMapper;
import com.system.mapper.TeacherMapperCustom;
import com.system.po.*;
import com.system.service.TeacherService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* Created by
*/
@Service
public class TeacherServiceImpl implements TeacherService {
@Autowired
private TeacherMapper teacherMapper;
@Autowired
private TeacherMapperCustom teacherMapperCustom;
@Autowired
private CollegeMapper collegeMapper;
@Autowired
private CourseMapper courseMapper;
public void updateById(Integer id, TeacherCustom teacherCustom) throws Exception {
teacherMapper.updateByPrimaryKey(teacherCustom);
}
public void removeById(Integer id) throws Exception {
CourseExample courseExample = new CourseExample();
CourseExample.Criteria criteria = courseExample.createCriteria();
criteria.andTeacheridEqualTo(id);
List<Course> list = courseMapper.selectByExample(courseExample);
if (list.size() != 0) {
throw new CustomException("请先删除该名老师所教授的课程");
}
teacherMapper.deleteByPrimaryKey(id);
}
public List<TeacherCustom> findByPaging(Integer toPageNo) throws Exception {
PagingVO pagingVO = new PagingVO();
pagingVO.setToPageNo(toPageNo);
List<TeacherCustom> list = teacherMapperCustom.findByPaging(pagingVO);
return list;
}
public Boolean save(TeacherCustom teacherCustom) throws Exception {
Teacher tea = teacherMapper.selectByPrimaryKey(teacherCustom.getUserid());
if (tea == null) {
teacherMapper.insert(teacherCustom);
return true;
}
return false;
}
public int getCountTeacher() throws Exception {
//自定义查询对象
TeacherExample teacherExample = new TeacherExample();
//通过criteria构造查询条件
TeacherExample.Criteria criteria = teacherExample.createCriteria();
criteria.andUseridIsNotNull();
return teacherMapper.countByExample(teacherExample);
}
public TeacherCustom findById(Integer id) throws Exception {
Teacher teacher = teacherMapper.selectByPrimaryKey(id);
TeacherCustom teacherCustom = null;
if (teacher != null) {
teacherCustom = new TeacherCustom();
BeanUtils.copyProperties(teacher, teacherCustom);
}
return teacherCustom;
}
public List<TeacherCustom> findByName(String name) throws Exception {
TeacherExample teacherExample = new TeacherExample();
//自定义查询条件
TeacherExample.Criteria criteria = teacherExample.createCriteria();
criteria.andUsernameLike("%" + name + "%");
List<Teacher> list = teacherMapper.selectByExample(teacherExample);
List<TeacherCustom> teacherCustomList = null;
if (list != null) {
teacherCustomList = new ArrayList<TeacherCustom>();
for (Teacher t : list) {
TeacherCustom teacherCustom = new TeacherCustom();
//类拷贝
BeanUtils.copyProperties(t, teacherCustom);
//获取课程名
College college = collegeMapper.selectByPrimaryKey(t.getCollegeid());
teacherCustom.setcollegeName(college.getCollegename());
teacherCustomList.add(teacherCustom);
}
}
return teacherCustomList;
}
public List<TeacherCustom> findAll() throws Exception {
TeacherExample teacherExample = new TeacherExample();
TeacherExample.Criteria criteria = teacherExample.createCriteria();
criteria.andUsernameIsNotNull();
List<Teacher> list = teacherMapper.selectByExample(teacherExample);
List<TeacherCustom> teacherCustomsList = null;
if (list != null) {
teacherCustomsList = new ArrayList<TeacherCustom>();
for (Teacher t: list) {
TeacherCustom teacherCustom = new TeacherCustom();
BeanUtils.copyProperties(t, teacherCustom);
teacherCustomsList.add(teacherCustom);
}
}
return teacherCustomsList;
}
}
controller层
StudentController.java
package com.system.controller;
import com.system.exception.CustomException;
import com.system.po.*;
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;
/**
*/
@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";
}
}
完整源码
觉得有用,记得一键三连哦!