基于javaweb的SpringBoot智慧校园管理系统(java+springboot+mybaits+vue+elementui+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

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

功能说明

341524092608

351524092608

361524092608

371524092608

381524092608

401524092608

411524092608

421524092608

431524092608

441524092608

基于javaweb的SpringBoot智慧校园管理系统(java+springboot+mybaits+vue+elementui+mysql)

项目介绍

基于Springboot + vue实现的智慧校园管理系统

系统包含学生、老师、管理员三个角色,分为前后台;

学生:登录、注册、查看计算机软件(收藏、下载、留言)、查看课程(在线观看、下载、留言)、查看音乐(收藏、播放、留言)、个人中心、我的收藏、记事本管理、备忘录管理、宿舍管理、成绩管理等

老师:登录、个人中心、计算机软件管理、计算机软件留言管理、课程管理、课程留言管理、宿舍管理、宿舍人员管理、宿舍归寝管理、宿舍报修管理、音乐管理、成绩管理等

管理员:登录、个人中心、基础数据管理、记事本管理、备忘录管理、计算机软件管理、计算机软件留言管理、课程管理、课程留言管理、宿舍管理、宿舍人员管理、宿舍归寝管理、宿舍报修管理、音乐管理、成绩管理、用户管理、轮播图管理等

环境需要

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

前端:Vue+elementui

使用说明

项目运行:

  1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;

  2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令;

  3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;

4.运行项目,在浏览器中输入地址:

前台登录页面

http://localhost:8080/zhihuixiaoyuan/front/index.html

用户账户:a1 密码:123456

后台登录页面

http://localhost:8080/zhihuixiaoyuan/admin/dist/index.html

管理员账户:admin 密码:admin

老师账户:a1 密码:123456

用户账户:a1 密码:123456

文档结构介绍:

软件类型全部:

用户登录页面:

课程展示页面:

个人中心展示页面:

后台登录界面展示:

计算机专业相关的软件管理:

老师管理展示页面:

音乐管理展示:

用户管理页面展示:

用户管理控制层:

@RequestMapping(“/user”)

@RestController //标识为返回类型为Json的控制器

public class UserController {

//自动注入服务类

@Autowired

private IUserService userService;

@Autowired

private TStudentService studentService;

//标识请求地址

@RequestMapping(“/login”)

public ResultObject<List> getUsers(User user,HttpServletRequest request) {

//查询用户列表

List list= userService.getUser(user);

ResultObject<List> rs=new ResultObject<List>();

if(list.isEmpty()) {

//状态码

rs.setCode(Constant.FAILURE_RETUEN_CODE);

//提示

rs.setMsg(“登录失败”);

}else {

//状态码

rs.setCode(Constant.SUCCESS_RETUEN_CODE);

request.getSession().setAttribute(“user”, list.get(0));

//提示

rs.setMsg(“登录成功”);

//数据

rs.setData(list);

return rs;

@RequestMapping(“/loginOut”)

public ResultObject loginOut(HttpServletRequest request) {

//查询用户列表

ResultObject rs=new ResultObject();

request.getSession().removeAttribute(“user”);

//数据

rs.setCode(Constant.SUCCESS_RETUEN_CODE);

rs.setMsg(“退出成功”);

return rs;

//标识请求地址

@RequestMapping(“/studentLogin”)

public ResultObject<List> studentLogin(User user,HttpServletRequest request) {

//查询用户列表

TStudent student=new TStudent();

student.setStudentNo(Integer.parseInt(user.getUserName()));

student.setStuPass(user.getPassword());

List list= studentService.selectloginStudent(student);

ResultObject<List> rs=new ResultObject<List>();

if(list.isEmpty()) {

//状态码

rs.setCode(Constant.FAILURE_RETUEN_CODE);

//提示

rs.setMsg(“登录失败”);

}else {

//状态码

rs.setCode(Constant.SUCCESS_RETUEN_CODE);

request.getSession().setAttribute(“student”, list.get(0));

//提示

rs.setMsg(“登录成功”);

//数据

rs.setData(list);

return rs;

@RequestMapping(“/studentloginOut”)

public ResultObject studentloginOut(HttpServletRequest request) {

//查询用户列表

ResultObject rs=new ResultObject();

request.getSession().removeAttribute(“student”);

//数据

rs.setCode(Constant.SUCCESS_RETUEN_CODE);

rs.setMsg(“退出成功”);

return rs;

教师管理控制层:

@Controller

@RequestMapping(value=”/teacher”)

public class TeacherController {

@Autowired

private TeacherService teacherService;

@ResponseBody

@RequestMapping(value=”/list”)

public String getTeacherList(@RequestParam(defaultValue=”0”)int curr,@RequestParam(defaultValue=”10”)int nums,

@RequestParam(defaultValue=””)String searchKey) {

Pagination page = new Pagination();

page.setTotalItemsCount(teacherService.getTotalItemsCount(searchKey));

page.setPageSize(nums);

page.setPageNum(curr);

List list = teacherService.getTeacher(page, searchKey);

String jsonStr = StrUtil.RETURN_JONS_PRE_STR + page.getTotalItemsCount()

  • StrUtil.RETURN_JONS_MID_STR

  • JSON.toJSONString(list) + StrUtil.RETURN_JONS_END_STR;

return jsonStr;

@ResponseBody

@RequestMapping(value=”/listForSelect”)

public String getTeacherListForSelect(@RequestParam(defaultValue=””) String searchKey) {

List list = teacherService.getTeacherForSelect(searchKey);

String jsonStr = StrUtil.RETURN_JONS_PRE_STR + list.size()

  • StrUtil.RETURN_JONS_MID_STR

  • JSON.toJSONString(list) + StrUtil.RETURN_JONS_END_STR;

return jsonStr;

@RequestMapping(value=”/addPage”)

public ModelAndView toAddPage() {

return new ModelAndView(“/teacherAdd”);

/**

  • 增加,或者修改teacher

  • @param opType

  • @param teacher

  • @return

*/

@ResponseBody

@RequestMapping(value=”/add”)

public String addTeacher(@RequestParam(defaultValue=”2”) int opType, Teacher teacher) {

int res = 0;

if (opType == 0) {

try {

teacher.setPassword(teacher.getPassword().toUpperCase());

res = teacherService.addTeacher(teacher);

} catch (Exception e) {

System.out.println(“添加失败!学号重复!”);

return “添加失败!工号重复!”;

if (res > 0)

return StrUtil.RESULT_TRUE;

return “添加失败”;

} else if (opType == 1) {

teacher.setPassword(null);

res = teacherService.updateTeacher(teacher);

if (res > 0) return StrUtil.RESULT_TRUE;

return “修改失败!”;

return “error”;

/**

  • 重置密码

  • @param id

  • @return

*/

@ResponseBody

@RequestMapping(value=”/resetPswd”)

public String resetPasswrd(String id) {

Teacher teacher = new Teacher();

teacher.setId(id);

teacher.setPassword(MD5Util.MD5(“123456”));

if (teacherService.updateTeacher(teacher) > 0) return StrUtil.RESULT_TRUE;

return “修改失败!”;

@ResponseBody

@RequestMapping(value=”/delete”)

public String deleteStudnet(Teacher t) {

if (teacherService.deleteTeacher(t) > 0) return StrUtil.RESULT_TRUE;

return “删除失败!”;

/**

  • 批量删除

  • @param tIds

  • @return

*/

@ResponseBody

@RequestMapping(value=”/deleteList”)

public String deleteStudnetList(String tIds) {

List list = new ArrayList();

try {

String[] ids = tIds.split(“,”);

for (String id: ids) {

list.add(id);

if (teacherService.deleteTeacher(list) > 0) {

return StrUtil.RESULT_TRUE;

} catch (Exception e) {

e.printStackTrace();

return “删除失败!参数出错!”;//

return “删除失败!”;

@ResponseBody

@RequestMapping(“/import”)

public String impotr(HttpServletRequest request, MultipartFile file) {

//获取上传的文件

InputStream in = null;

try {

in = file.getInputStream();

//数据导入

int res = teacherService.importExcelInfo(in,file);

if (res > 0) {

return StrUtil.RETURN_JONS_PRE_STR+”0”

+StrUtil.RETURN_JONS_MID_STR+”true”

+StrUtil.RETURN_JONS_END_STR;

} else {

return StrUtil.RETURN_JONS_PRE_STR+”0”

+StrUtil.RETURN_JONS_MID_STR+”false”

+StrUtil.RETURN_JONS_END_STR;

} catch (Exception e) {

e.printStackTrace();

return StrUtil.RETURN_JONS_PRE_STR+”0”

+StrUtil.RETURN_JONS_MID_STR+”error”

+StrUtil.RETURN_JONS_END_STR;

} finally {

if (in != null)

try {

in.close();

} catch (IOException e) {

e.printStackTrace();

登录管理控制层:

@Controller

@RequestMapping(value=”/login”)

public class LoginController {

@Autowired

AuthService authService;

@Autowired

AdminService adminServiceImpl;

@Autowired

TeacherService teacherServiceImpl;

@Autowired

StudentService studentServiceImpl;

@RequestMapping(value=”/loginPage”)

public ModelAndView toLoginPage() {

return new ModelAndView(“login”);

@ResponseBody

@RequestMapping(value=”/doLogin”)

public String doLogin(@RequestParam(defaultValue=””) String username,

@RequestParam(defaultValue=””) String password,

@RequestParam(defaultValue=”0”) int userType,

@RequestParam(defaultValue=””) String verifyCode, HttpSession session) {

//比较验证码

String sessionVerifyCode = (String) session.getAttribute(StrUtil.VERIFY_CODE);

if (sessionVerifyCode == null || !sessionVerifyCode.equals(verifyCode.toUpperCase()) ) {

return StrUtil.CODE_ERROR;

Login loginUser = null;

if (userType == 1) {

loginUser = (Login) adminServiceImpl;

} else if(userType == 2) {

loginUser = (Login) teacherServiceImpl;

} else if(userType == 3) {

loginUser = (Login) studentServiceImpl;

User user = loginUser.loginValidate(username, password.toUpperCase());//获得验证后user对象

if (user != null) {

//List menuList = authService.getMenuList(user.getUserType());

List urlList = authService.getUrlList(user.getUserType());

user.setUrlList(urlList);

//user.setMenuList(menuList);

session.setAttribute(StrUtil.USER, user);

return JSON.toJSONString(user);

return StrUtil.RESULT_FALSE;

@RequestMapping(value=”/out”)

public ModelAndView loginOut(HttpSession session) {

session.invalidate();//销毁sessions

//请求重定向到主页(login页)

return new ModelAndView(“redirect:/“);

@RequestMapping(value=”/getVerifyCode”)

public void getVerifyCode(HttpServletResponse response, HttpSession session) {

ByteArrayOutputStream output = new ByteArrayOutputStream();

session.setAttribute(“verifyCode”, drawCodeImg(output));

try {

ServletOutputStream out = response.getOutputStream();

output.writeTo(out);

} catch (IOException e) {

e.printStackTrace();

/**

  • 绘出验证码

  • @param output

  • @return

*/

private String drawCodeImg(ByteArrayOutputStream output) {

String code = “”;

for (int i = 0; i < 4; i++) {

code += randomChar();

int width = 70;

int height = 36;

BufferedImage bImage = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);

Font font = new Font(“Times New Roman”, Font.PLAIN, 20);

Graphics2D graphics = bImage.createGraphics();

graphics.setFont(font);

graphics.setColor(new Color(66,2,82));

graphics.setBackground(new Color(226,226,240));

graphics.clearRect(0, 0, width, height);

FontRenderContext context = graphics.getFontRenderContext();

Rectangle2D bounds = font.getStringBounds(code, context);

double x = (width - bounds.getWidth()) / 2;

double y = (height - bounds.getHeight()) / 2;

double ascent = bounds.getY();

double baseY = y - ascent;

graphics.drawString(code, (int) x, (int) baseY);

graphics.dispose();

try {

ImageIO.write(bImage, “jpg”, output);

} catch (IOException e) {

e.printStackTrace();

return code;

/**

  • 返回一个随机字符

  • @return

*/

private char randomChar() {

Random r = new Random();

String str = “ABCDEFGHJKLMNPRSTUVWXYZ0123456789”;

return str.charAt(r.nextInt(str.length()));


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