基于javaweb和mysql的springboot学生信息管理系统(java+springboot+maven+mybaits+html+thymeleaf+easyui+mysql)
基于javaweb和mysql的springboot学生信息管理系统(java+springboot+maven+mybaits+html+thymeleaf+easyui+mysql)
私信源码获取及调试交流
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot学生信息管理系统(java+springboot+maven+mybaits+html+thymeleaf+easyui+mysql)
项目介绍
Springboot学生信息管理系统主要分为管理员、教师、学生三种角色。 管理员角色主要功能如下: 学生信息管理:学生查询、新增、编辑、删除等; 班级信息管理:班级查询、新增、编辑、删除等; 教师信息管理:教师查询、新增、编辑、删除等; 课程信息管理:课程查询、新增、编辑、删除等; 选课信息管理:选课查询、新增、编辑、删除等; 考勤信息管理:考勤查询、新增、编辑、删除等; 请假信息管理:请假查询、新增、编辑、删除等; 成绩信息管理:成绩查询、新增、编辑、删除等; 成绩统计:区间统计图、平均统计图; 系统管理:修改密码;
教师主要功能如下: 学生信息管理:学生查询、新增、编辑、删除等; 班级信息管理:班级查询、新增、编辑、删除等; 教师信息管理:教师查询、新增、编辑、删除等; 课程信息管理:课程查询、新增、编辑、删除等; 选课信息管理:选课查询、新增、编辑、删除等; 考勤信息管理:考勤查询、新增、编辑、删除等; 请假信息管理:请假查询、新增、编辑、删除等; 成绩信息管理:成绩查询、新增、编辑、删除等; 教师用户仅可查看自己权限下的信息。
学生主要功能如下: 学生信息管理:学生查询、新增、编辑、删除等; 选课信息管理:选课查询、新增、编辑、删除等; 考勤信息管理:考勤查询、新增、编辑、删除等; 请假信息管理:请假查询、新增、编辑、删除等; 成绩信息管理:成绩查询、新增、编辑、删除等; 学生用户仅可查看自己的信息。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;
技术栈
后端:SpringBoot+Mybaits
前端:Html+css+easyui+h-ui
使用说明
项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入地址:http://localhost:8080/ 管理员账号、密码:admin/123456 教师账号、密码:张三/111 学生账号、密码:张三纷/123456
@RequestMapping("/teacher_list")
public String teacherList(){
return "/teacher/teacherList";
}
/**
* 异步加载老师数据列表
* @param page
* @param rows
* @param teacherName
* @param clazzid
* @param from
* @param session
* @return
*/
@PostMapping("/getTeacherList")
@ResponseBody
public Object getTeacherList(@RequestParam(value = "page", defaultValue = "1")Integer page,
@RequestParam(value = "rows", defaultValue = "100")Integer rows,
String teacherName,
@RequestParam(value = "clazzid", defaultValue = "0")String clazzid, String from, HttpSession session){
Map<String,Object> paramMap = new HashMap();
paramMap.put("pageno",page);
paramMap.put("pagesize",rows);
if(!StringUtils.isEmpty(teacherName)) paramMap.put("username",teacherName);
if(!clazzid.equals("0")) paramMap.put("clazzid",clazzid);
//判断是老师还是学生权限
Teacher teacher = (Teacher) session.getAttribute(Const.TEACHER);
if(!StringUtils.isEmpty(teacher)){
//是老师权限,只能查询自己的信息
paramMap.put("teacherid",teacher.getId());
}
PageBean<Teacher> pageBean = teacherService.queryPage(paramMap);
if(!StringUtils.isEmpty(from) && from.equals("combox")){
return pageBean.getDatas();
}else{
Map<String,Object> result = new HashMap();
result.put("total",pageBean.getTotalsize());
result.put("rows",pageBean.getDatas());
return result;
}
}
}
}catch (Exception e){
e.printStackTrace();
ajaxResult.setSuccess(false);
ajaxResult.setMessage("修改失败");
}
}
return ajaxResult;
}
}
/**
* @Classname StudentController
* @Description None
*/
@Controller
@RequestMapping("/student")
public class StudentController {
@Autowired
private StudentService studentService;
@Autowired
private ClazzService clazzService;
@Autowired
private SelectedCourseService selectedCourseService;
/**
* 跳转学生列表页面
* @return
*/
@GetMapping("/student_list")
public String studentList(){
return "/student/studentList";
}
/**
/**
* @Classname TeacherController
* @Description None
*/
@Controller
@RequestMapping("/teacher")
public class TeacherController {
@Autowired
private TeacherService teacherService;
@RequestMapping("/teacher_list")
public String teacherList(){
return "/teacher/teacherList";
}
/**
* 异步加载老师数据列表
* @param page
* @param rows
* @param teacherName
* @param clazzid
* @param from
* @param session
* @return
*/
@PostMapping("/getTeacherList")
ajaxResult.setSuccess(false);
ajaxResult.setMessage("修改失败");
}
}catch(Exception e){
e.printStackTrace();
ajaxResult.setSuccess(false);
ajaxResult.setMessage("修改失败");
}
return ajaxResult;
}
}
/**
* @Classname AttendanceController
* @Description None
*/
@Controller
@RequestMapping("/attendance")
public class AttendanceController {
@Autowired
private AttendanceService attendanceService;
@Autowired
private SelectedCourseService selectedCourseService;
@Autowired
@Autowired
private SelectedCourseService selectedCourseService;
@GetMapping("/selectedCourse_list")
public String selectedCourseList(){
return "course/selectedCourseList";
}
/**
* 异步加载选课信息列表
* @param page
* @param rows
* @param studentid
* @param courseid
* @param from
* @return
*/
@PostMapping("/getSelectedCourseList")
@ResponseBody
public Object getClazzList(@RequestParam(value = "page", defaultValue = "1")Integer page,
@RequestParam(value = "rows", defaultValue = "100")Integer rows,
@RequestParam(value = "teacherid", defaultValue = "0")String studentid,
@RequestParam(value = "teacherid", defaultValue = "0")String courseid ,String from,HttpSession session){
Map<String,Object> paramMap = new HashMap();
paramMap.put("pageno",page);
paramMap.put("pagesize",rows);
if(!studentid.equals("0")) paramMap.put("studentId",studentid);
if(!courseid.equals("0")) paramMap.put("courseId",courseid);
//判断是老师还是学生权限
Student student = (Student) session.getAttribute(Const.STUDENT);
if(!StringUtils.isEmpty(student)){
//是学生权限,只能查询自己的信息
paramMap.put("studentid",student.getId());
}
PageBean<SelectedCourse> pageBean = selectedCourseService.queryPage(paramMap);
if(!StringUtils.isEmpty(from) && from.equals("combox")){
return pageBean.getDatas();
}else{
Map<String,Object> result = new HashMap();
result.put("total",pageBean.getTotalsize());
result.put("rows",pageBean.getDatas());
return result;
}
}
/**
* 学生进行选课
* @param selectedCourse
* @return
*/
return result;
}
}
/**
* 添加课程信息
* @param course
* @return
*/
@PostMapping("/addCourse")
@ResponseBody
public AjaxResult addCourse(Course course){
AjaxResult ajaxResult = new AjaxResult();
try {
int count = courseService.addCourse(course);
if(count > 0){
ajaxResult.setSuccess(true);
ajaxResult.setMessage("添加成功");
}else{
ajaxResult.setSuccess(false);
ajaxResult.setMessage("添加失败");
}
}catch (Exception e){
e.printStackTrace();
ajaxResult.setSuccess(false);
ajaxResult.setMessage("添加失败");
}
return ajaxResult;
}
/**
* 修改课程信息
* @param course
* @return
*/
@PostMapping("/editCourse")
@ResponseBody
public AjaxResult editCourse(Course course){
AjaxResult ajaxResult = new AjaxResult();
try {
int count = courseService.editCourse(course);
if(count > 0){
ajaxResult.setSuccess(true);
*/
@GetMapping("/login")
public String login(){
return "/login";
}
/**
* 登录表单提交 校验
* @return
*/
@PostMapping("/login")
@ResponseBody
public AjaxResult submitlogin(String username, String password, String code, String type,
HttpSession session){
AjaxResult ajaxResult = new AjaxResult();
if(StringUtils.isEmpty(username)){
ajaxResult.setSuccess(false);
ajaxResult.setMessage("请填写用户名");
return ajaxResult;
}
if(StringUtils.isEmpty(password)){
ajaxResult.setSuccess(false);
ajaxResult.setMessage("请填写密码");
return ajaxResult;
}
if(StringUtils.isEmpty(code)){
ajaxResult.setSuccess(false);
ajaxResult.setMessage("请填验证码");
return ajaxResult;
}
if(StringUtils.isEmpty(session.getAttribute(Const.CODE))){
ajaxResult.setSuccess(false);
ajaxResult.setMessage("会话时间过长,请刷新");
return ajaxResult;
}else{
if(!code.equalsIgnoreCase((String) session.getAttribute(Const.CODE))){
ajaxResult.setSuccess(false);
ajaxResult.setMessage("验证码错误");
return ajaxResult;
}
}
//数据库校验
avgStringList.add("平均分");
Map<String, Object> retMap = new HashMap<String, Object>();
retMap.put("courseName", scoreStats.getCourseName());
retMap.put("scoreList", scoreList);
retMap.put("avgList", avgStringList);
retMap.put("type", "success");
return retMap;
}
Score score = new Score();
score.setCourseId(courseid);
List<Score> scoreList = scoreService.getAll(score);
List<Integer> numberList = new ArrayList<Integer>();
numberList.add(0);
numberList.add(0);
numberList.add(0);
numberList.add(0);
numberList.add(0);
List<String> rangeStringList = new ArrayList<String>();
rangeStringList.add("60分以下");
rangeStringList.add("60~70分");
rangeStringList.add("70~80分");
rangeStringList.add("80~90分");
rangeStringList.add("90~100分");
String courseName = "";
for(Score sc : scoreList){
courseName = sc.getCourseName(); //获取课程名
double scoreValue = sc.getScore();//获取成绩
if(scoreValue < 60){
numberList.set(0, numberList.get(0)+1);
continue;
}
if(scoreValue <= 70 && scoreValue >= 60){
numberList.set(1, numberList.get(1)+1);
continue;
}
if(scoreValue <= 80 && scoreValue > 70){
numberList.set(2, numberList.get(2)+1);
continue;
}
*/
@PostMapping("/addCourse")
@ResponseBody
public AjaxResult addCourse(Course course){
AjaxResult ajaxResult = new AjaxResult();
try {
int count = courseService.addCourse(course);
if(count > 0){
ajaxResult.setSuccess(true);
ajaxResult.setMessage("添加成功");
}else{
ajaxResult.setSuccess(false);
ajaxResult.setMessage("添加失败");
}
}catch (Exception e){
e.printStackTrace();
ajaxResult.setSuccess(false);
ajaxResult.setMessage("添加失败");
}
return ajaxResult;
}
/**
* 修改课程信息
* @param course
* @return
*/
@PostMapping("/editCourse")
@ResponseBody
public AjaxResult editCourse(Course course){
AjaxResult ajaxResult = new AjaxResult();
try {
int count = courseService.editCourse(course);
if(count > 0){
ajaxResult.setSuccess(true);
ajaxResult.setMessage("修改成功");
}else{
ajaxResult.setSuccess(false);
ajaxResult.setMessage("修改失败");
}
}catch (Exception e){
e.printStackTrace();
* @param attendance
* @return
*/
@PostMapping("/addAttendance")
@ResponseBody
public AjaxResult addAttendance(Attendance attendance){
AjaxResult ajaxResult = new AjaxResult();
attendance.setDate(DateFormatUtil.getFormatDate(new Date(),"yyyy-MM-dd"));
//判断是否已签到
if(attendanceService.isAttendance(attendance)){
//true为已签到
ajaxResult.setSuccess(false);
ajaxResult.setMessage("已签到,请勿重复签到!");
}else{
int count = attendanceService.addAtendance(attendance);
if(count > 0){
//签到成功
ajaxResult.setSuccess(true);
ajaxResult.setMessage("签到成功");
}else{
ajaxResult.setSuccess(false);
ajaxResult.setMessage("系统错误,请重新签到");
}
}
return ajaxResult;
}
/**
* 删除考勤签到
* @param id
* @return
*/
@PostMapping("/deleteAttendance")
@ResponseBody
public AjaxResult deleteAttendance(Integer id){
AjaxResult ajaxResult = new AjaxResult();
try {
int count = attendanceService.deleteAttendance(id);
if(count > 0){
ajaxResult.setSuccess(true);
ajaxResult.setMessage("删除成功");
}else{
ajaxResult.setSuccess(false);
ajaxResult.setMessage("删除失败");
}
} catch (Exception e) {
ajaxResult.setSuccess(false);
* @param clazzid
* @param from
* @param session
* @return
*/
@RequestMapping("/getStudentList")
@ResponseBody
public Object getStudentList(@RequestParam(value = "page", defaultValue = "1")Integer page,
@RequestParam(value = "rows", defaultValue = "100")Integer rows,
String studentName,
@RequestParam(value = "clazzid", defaultValue = "0")String clazzid, String from, HttpSession session){
Map<String,Object> paramMap = new HashMap();
paramMap.put("pageno",page);
paramMap.put("pagesize",rows);
if(!StringUtils.isEmpty(studentName)) paramMap.put("username",studentName);
if(!clazzid.equals("0")) paramMap.put("clazzid",clazzid);
//判断是老师还是学生权限
Student student = (Student) session.getAttribute(Const.STUDENT);
if(!StringUtils.isEmpty(student)){
//是学生权限,只能查询自己的信息
paramMap.put("studentid",student.getId());
}
PageBean<Student> pageBean = studentService.queryPage(paramMap);
if(!StringUtils.isEmpty(from) && from.equals("combox")){
return pageBean.getDatas();
}else{
Map<String,Object> result = new HashMap();
result.put("total",pageBean.getTotalsize());
result.put("rows",pageBean.getDatas());
return result;
}
}
/**
* 删除学生
* @param data
* @return
*/
@PostMapping("/deleteStudent")
/**
* @Classname CourseController
* @Description None
*/
@Controller
@RequestMapping("/course")
public class CourseController {
@Autowired
private CourseService courseService;
@GetMapping("/course_list")
public String courseList(){
return "course/courseList";
}
/**
* 异步加载课程信息列表
* @param page
* @param rows
* @param name
* @param teacherid
* @param from
* @return
*/
@PostMapping("/getCourseList")
@ResponseBody
public Object getClazzList(@RequestParam(value = "page", defaultValue = "1")Integer page,
@RequestParam(value = "rows", defaultValue = "100")Integer rows,
String name,
@RequestParam(value = "teacherid", defaultValue = "0")String teacherid ,String from){
Map<String,Object> paramMap = new HashMap();
paramMap.put("pageno",page);
paramMap.put("pagesize",rows);
if(!StringUtils.isEmpty(name)) paramMap.put("name",name);
if(!teacherid.equals("0")) paramMap.put("teacherId",teacherid);
PageBean<Course> pageBean = courseService.queryPage(paramMap);
if(!StringUtils.isEmpty(from) && from.equals("combox")){
return pageBean.getDatas();
}else{
Map<String,Object> result = new HashMap();
result.put("total",pageBean.getTotalsize());
result.put("rows",pageBean.getDatas());
return result;
}
}
/**
* 跳转统计页面
* @return
*/
@RequestMapping("/scoreStats")
public String scoreStats(){
return "/score/scoreStats";
}
/**
* 统计成绩数据
* @param courseid
* @param searchType
* @return
*/
@RequestMapping("/getScoreStatsList")
@ResponseBody
public Object getScoreStatsList(@RequestParam(value = "courseid", defaultValue = "0")Integer courseid,
String searchType){
AjaxResult ajaxResult = new AjaxResult();
if(searchType.equals("avg")){
ScoreStats scoreStats = scoreService.getAvgStats(courseid);
List<Double> scoreList = new ArrayList<Double>();
scoreList.add(scoreStats.getMax_score());
scoreList.add(scoreStats.getMin_score());
scoreList.add(scoreStats.getAvg_score());
List<String> avgStringList = new ArrayList<String>();
avgStringList.add("最高分");
avgStringList.add("最低分");
avgStringList.add("平均分");
Map<String, Object> retMap = new HashMap<String, Object>();
retMap.put("courseName", scoreStats.getCourseName());
retMap.put("scoreList", scoreList);
retMap.put("avgList", avgStringList);
retMap.put("type", "success");
return retMap;
}
Score score = new Score();
score.setCourseId(courseid);
List<Score> scoreList = scoreService.getAll(score);
List<Integer> numberList = new ArrayList<Integer>();
* 显示 验证码
* @param request
* @param response
* @param vl
* @param w
* @param h
*/
@GetMapping("/checkCode")
public void generateCpacha(HttpServletRequest request, HttpServletResponse response,
@RequestParam(value="vl",defaultValue="4",required=false) Integer vl,
@RequestParam(value="w",defaultValue="110",required=false) Integer w,
@RequestParam(value="h",defaultValue="39",required=false) Integer h){
CpachaUtil cpachaUtil = new CpachaUtil(vl, w, h);
String generatorVCode = cpachaUtil.generatorVCode();
request.getSession().setAttribute(Const.CODE, generatorVCode);
BufferedImage generatorRotateVCodeImage = cpachaUtil.generatorRotateVCodeImage(generatorVCode, true);
try {
ImageIO.write(generatorRotateVCodeImage, "gif", response.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 跳转后台主页
* @return
*/
@GetMapping("/index")
public String index(){
return "/system/index";
}
/**
* 登出
* @param session
* @return
*/
@GetMapping("/logout")
public String logout(HttpSession session){
session.invalidate();
return "/login";
}
//如果是学生,只能查看自己的信息
score.setStudentId(student.getId());
}
try {
response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode("score_list_sid_"+score.getStudentId()+"_cid_"+score.getStudentId()+".xls", "UTF-8"));
response.setHeader("Connection", "close");
response.setHeader("Content-Type", "application/octet-stream");
ServletOutputStream outputStream = response.getOutputStream();
List<Score> scoreList = scoreService.getAll(score);
XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
XSSFSheet createSheet = xssfWorkbook.createSheet("成绩列表");
XSSFRow createRow = createSheet.createRow(0);
createRow.createCell(0).setCellValue("学生");
createRow.createCell(1).setCellValue("课程");
createRow.createCell(2).setCellValue("成绩");
createRow.createCell(3).setCellValue("备注");
//实现将数据装入到excel文件中
int row = 1;
for( Score s:scoreList){
createRow = createSheet.createRow(row++);
createRow.createCell(0).setCellValue(s.getStudentName());
createRow.createCell(1).setCellValue(s.getCourseName());
createRow.createCell(2).setCellValue(s.getScore());
createRow.createCell(3).setCellValue(s.getRemark());
}
xssfWorkbook.write(outputStream);
outputStream.flush();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 跳转统计页面
* @return
*/
@RequestMapping("/scoreStats")
public String scoreStats(){
return "/score/scoreStats";
}
/**
/**
* 异步获取考勤列表数据
* @param page
* @param rows
* @param studentid
* @param courseid
* @param type
* @param date
* @param from
* @param session
* @return
*/
@RequestMapping("/getAttendanceList")
@ResponseBody
public Object getAttendanceList(@RequestParam(value = "page", defaultValue = "1")Integer page,
@RequestParam(value = "rows", defaultValue = "100")Integer rows,
@RequestParam(value = "studentid", defaultValue = "0")String studentid,
@RequestParam(value = "courseid", defaultValue = "0")String courseid,
String type,String date, String from, HttpSession session){
Map<String,Object> paramMap = new HashMap();
paramMap.put("pageno",page);
paramMap.put("pagesize",rows);
if(!studentid.equals("0")) paramMap.put("studentid",studentid);
if(!courseid.equals("0")) paramMap.put("courseid",courseid);
if(!StringUtils.isEmpty(type)) paramMap.put("type",type);
if(!StringUtils.isEmpty(date)) paramMap.put("date",date);
//判断是老师还是学生权限
Student student = (Student) session.getAttribute(Const.STUDENT);
if(!StringUtils.isEmpty(student)){
//是学生权限,只能查询自己的信息
paramMap.put("studentid",student.getId());
}
PageBean<Attendance> pageBean = attendanceService.queryPage(paramMap);
if(!StringUtils.isEmpty(from) && from.equals("combox")){
return pageBean.getDatas();
}else{
Map<String,Object> result = new HashMap();
result.put("total",pageBean.getTotalsize());
result.put("rows",pageBean.getDatas());
return result;
}
}
/**
* 通过 选课信息中的课程id 查询 学生所选择的课程
* @param studentid
/**
* @Classname ScoreController
* @Description 成绩控制器
*/
@Controller
@RequestMapping("/score")
public class ScoreController {
@Autowired
private ScoreService scoreService;
@Autowired
private StudentService studentService;
@Autowired
private CourseService courseService;
@Autowired
} catch (IOException e) {
e.printStackTrace();
}
student.setPhoto(uuidName+extName);
}
try{
int count = studentService.editStudent(student);
if(count > 0){
ajaxResult.setSuccess(true);
ajaxResult.setMessage("修改成功");
}else{
ajaxResult.setSuccess(false);
ajaxResult.setMessage("修改失败");
}
}catch(Exception e){
e.printStackTrace();
ajaxResult.setSuccess(false);
ajaxResult.setMessage("修改失败");
}
return ajaxResult;
}
}











更多推荐

所有评论(0)