基于javaweb的SpringBoot学生信息管理系统(java+springboot+maven+mybaits+html+thymeleaf+easyui+mysql)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

021424150701

041424150701

051424150701

061424150701

071424150701

081424150701

091424150701

101424150701

111424150701

121424150701

131424150701

基于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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    List<SelectedCourse> selectedCourseList = selectedCourseService.getAllBySid(Integer.parseInt(studentid));
//通过 选课信息中的课程id 查询 学生所选择的课程
List<Integer> ids = new ArrayList<>();
for(SelectedCourse selectedCourse : selectedCourseList){
ids.add(selectedCourse.getCourseId());
}
List<Course> courseList = courseService.getCourseById(ids);
return courseList;
}


/**
* 添加考勤签到
* @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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
        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 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")){
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
    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();
ajaxResult.setSuccess(false);
ajaxResult.setMessage("修改失败");
}
return ajaxResult;
}


@PostMapping("/deleteCourse")
@ResponseBody
public AjaxResult deleteCourse(Data data){
AjaxResult ajaxResult = new AjaxResult();
try {
int count = courseService.deleteCourse(data.getIds());
if(count > 0){
ajaxResult.setSuccess(true);
ajaxResult.setMessage("删除成功");
}else{
ajaxResult.setSuccess(false);
ajaxResult.setMessage("删除失败");
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
            String uuidName = UUID.randomUUID().toString();

try {
// 构建真实的文件路径
File newFile = new File(fileDir.getAbsolutePath() + File.separator +uuidName+ extName);
// 上传图片到 -》 “绝对路径”
fileImg.transferTo(newFile);

Teacher byId = teacherService.findById(teacher.getId());
File file = new File(fileDir.getAbsolutePath() + File.separator + byId.getPhoto());
if(file != null){
//file.delete();
}

} catch (IOException e) {
e.printStackTrace();
}
teacher.setPhoto(uuidName+extName);
}

try{
int count = teacherService.editTeacher(teacher);
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;
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
}
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;
}
}
//数据库校验
switch (type){
case "1":{ //管理员
Admin admin = new Admin();
admin.setPassword(password);
admin.setUsername(username);
Admin ad = adminService.findByAdmin(admin);
if(StringUtils.isEmpty(ad)){
ajaxResult.setSuccess(false);
ajaxResult.setMessage("用户名或密码错误");
return ajaxResult;
}
ajaxResult.setSuccess(true);
session.setAttribute(Const.ADMIN,ad);
session.setAttribute(Const.USERTYPE,"1");
break;
}
case "2":{
Student student = new Student();
student.setPassword(password);
student.setUsername(username);
Student st = studentService.findByStudent(student);
if(StringUtils.isEmpty(st)){
ajaxResult.setSuccess(false);
ajaxResult.setMessage("用户名或密码错误");
return ajaxResult;
}
ajaxResult.setSuccess(true);
session.setAttribute(Const.STUDENT,st);
session.setAttribute(Const.USERTYPE,"2");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
    }

ajaxResult.setSuccess(true);
return ajaxResult;
}

/**
* 修改学生信息
* @param files
* @param student
* @return
*/
@PostMapping("/editStudent")
@ResponseBody
public AjaxResult editStudent(@RequestParam("file") MultipartFile[] files,Student student){
AjaxResult ajaxResult = new AjaxResult();

// 存放上传图片的文件夹
File fileDir = UploadUtil.getImgDirFile();
for(MultipartFile fileImg : files){

String name = fileImg.getOriginalFilename();
if(name.equals("")){
break;
}

// 拿到文件名
String extName = fileImg.getOriginalFilename().substring(fileImg.getOriginalFilename().lastIndexOf("."));
String uuidName = UUID.randomUUID().toString();

try {
// 构建真实的文件路径
File newFile = new File(fileDir.getAbsolutePath() + File.separator +uuidName+ extName);
// 上传图片到 -》 “绝对路径”
fileImg.transferTo(newFile);

Student byId = studentService.findById(student.getId());
File file = new File(fileDir.getAbsolutePath() + File.separator + byId.getPhoto());
if(file != null){
//file.delete();


项目链接:
https://javayms.github.io?id=051524180701201ho
https://javayms.pages.dev?id=051524180701201ho