基于javaweb+mysql的springboot学生管理系统(java+springboot+maven+mybatis+vue+mysql)
运行环境
Java≥8、MySQL≥5.7、Node.js≥10
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBoot学生管理系统(java+springboot+maven+mybatis+vue+mysql)
一、项目简述
本系统功能包括: 学生管理,教师管理,课程管理,成绩管理,系统管理等等。
二、项目运行
环境配置:
Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。
项目技术:
Springboot + Maven + mybatis+ Vue 等等组成,B/S模式 + Maven管理等等。
return ResponseEntity.failure("登录名称已经存在");
// if(StringUtils.isNotBlank(user.getEmail())){
// if(userService.userCount(user.getEmail())>0){
// return ResponseEntity.failure("该邮箱已被使用");
// }
// }
// if(StringUtils.isNoneBlank(user.getTel())){
// if(userService.userCount(user.getTel())>0){
// return ResponseEntity.failure("该手机号已被绑定");
// }
// }
//设置默认密码
if(StringUtils.isBlank(user.getPassword())){
QueryWrapper<Role> roleWrapper = new QueryWrapper<>();
roleWrapper.eq("del_flag",false);
if(!map.isEmpty()){
String keys = (String) map.get("key");
if(StringUtils.isNotBlank(keys)) {
roleWrapper.like("name", keys);
IPage<Role> rolePage = roleService.page(new Page<>(page,limit),roleWrapper);
rolePageData.setCount(rolePage.getTotal());
rolePageData.setData(setUserToRole(rolePage.getRecords()));
return rolePageData;
private List<Role> setUserToRole(List<Role> roles){
roles.forEach(r -> {
if(StringUtils.isNotBlank(r.getCreateId())){
return ResponseEntity.failure("登录名不能为空");
if(user.getRoleLists() == null || user.getRoleLists().size() == 0){
return ResponseEntity.failure("用户角色至少选择一个");
if(userService.userCount(user.getLoginName())>0){
return ResponseEntity.failure("登录名称已经存在");
// if(StringUtils.isNotBlank(user.getEmail())){
// if(userService.userCount(user.getEmail())>0){
// return ResponseEntity.failure("该邮箱已被使用");
// }
// }
// if(StringUtils.isNoneBlank(user.getTel())){
// if(userService.userCount(user.getTel())>0){
// return ResponseEntity.failure("该手机号已被绑定");
return ResponseEntity.failure("登录名不能为空");
User oldUser = userService.findUserById(user.getId());
if(StringUtils.isNotBlank(user.getEmail())){
if(!user.getEmail().equals(oldUser.getEmail())){
if(userService.userCount(user.getEmail())>0){
return ResponseEntity.failure("该邮箱已被使用");
if(StringUtils.isNotBlank(user.getTel())){
if(!user.getTel().equals(oldUser.getTel())) {
if (userService.userCount(user.getTel()) > 0) {
return ResponseEntity.failure("该手机号已经被绑定");
userService.updateById(user);
return ResponseEntity.success("操作成功");
@RequestMapping("changePassword")
public String changePassword(ModelMap modelMap){
// 修改教师信息
@RequestMapping("/updateTeacher")
@ResponseBody
public LayuiResult<TeacherDB> updTeacher(TeacherDB teacherDB, String birthday) throws Exception{
LayuiResult result= new LayuiResult();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date=format.parse(birthday);
teacherDB.setTbirthday(date);
Integer state = teacherDB.getTchstate();
Integer tid = teacherDB.getTid();
if(state == 1){
// 修改教师为离职状态并逻辑删除
Integer deleteTchClass = deleteService.deleteTchClass(tid);
// 删除教师成绩信息
Integer deleteTchExam = deleteService.deleteTchExam(tid);
// 删除教评记录信息
Integer deleteTeaRecord = deleteService.deleteTeaRecord(tid);
// 改用户登录状态改为(1)锁定状态
Integer deleteUser = deleteService.deleteUser(teacherDB.getTchid());
//删除提示
result.setMsg("修改成功!");
return result;
}else{
int a =lxxTeacherService.updTeacher(teacherDB);
if(!user.getTel().equals(oldUser.getTel())) {
if (userService.userCount(user.getTel()) > 0) {
return ResponseEntity.failure("该手机号已经被绑定");
user.setIcon(oldUser.getIcon());
userService.updateUser(user);
if(StringUtils.isBlank(user.getId())){
return ResponseEntity.failure("保存用户信息出错");
userService.saveUserRoles(user.getId(),user.getRoleLists());
return ResponseEntity.success("操作成功");
@RequiresPermissions("sys:user:lock")
@PostMapping("lock")
u.setNickName(u.getLoginName());
r.setCreateUser(u);
if(StringUtils.isNotBlank(r.getUpdateId())){
User u = userService.findUserById(r.getUpdateId());
if(StringUtils.isBlank(u.getNickName())){
u.setNickName(u.getLoginName());
r.setUpdateUser(u);
});
return roles;
@RequestMapping("add")
public String add(ModelMap modelMap){
Map<String,Object> map = new HashMap();
String keys = (String) map.get("key");
if(StringUtils.isNotBlank(keys)) {
userWrapper.and(wrapper -> wrapper.like("login_name", keys).or().like("tel", keys).or().like("email", keys));
IPage<User> userPage = userService.page(new Page<>(page,limit),userWrapper);
userPageData.setCount(userPage.getTotal());
userPageData.setData(userPage.getRecords());
return userPageData;
@RequestMapping("add")
public String add(ModelMap modelMap){
List<Role> roleList = roleService.selectAll();
modelMap.put("roleList",roleList);
return "admin/user/add";
@PostMapping("saveUserinfo")
@ResponseBody
public ResponseEntity saveUserInfo(User user){
if(StringUtils.isBlank(user.getId())){
return ResponseEntity.failure("用户ID不能为空");
if(StringUtils.isBlank(user.getLoginName())){
return ResponseEntity.failure("登录名不能为空");
User oldUser = userService.findUserById(user.getId());
if(StringUtils.isNotBlank(user.getEmail())){
if(!user.getEmail().equals(oldUser.getEmail())){
if(userService.userCount(user.getEmail())>0){
@ResponseBody
@SysLog("锁定或开启系统用户")
public ResponseEntity lock(@RequestParam(value = "id",required = false)String id){
if(StringUtils.isBlank(id)){
return ResponseEntity.failure("参数错误");
User user = userService.getById(id);
if(user == null){
return ResponseEntity.failure("用户不存在");
userService.lockUser(user);
return ResponseEntity.success("操作成功");
@RequiresPermissions("sys:user:delete")
@PostMapping("delete")
return ResponseEntity.failure("角色名称已存在");
roleService.saveRole(role);
return ResponseEntity.success("操作成功");
@RequestMapping("edit")
public String edit(String id,ModelMap modelMap){
Role role = roleService.getRoleById(id);
String menuIds = null;
if(role != null) {
menuIds = role.getMenuSet().stream().map(menu -> menu.getId()).collect(Collectors.joining(","));
Map<String,Object> map = new HashMap();
map.put("parentId",null);
if(StringUtils.isBlank(user.getPassword())){
user.setPassword(Constants.DEFAULT_PASSWORD);
userService.saveUser(user);
if(StringUtils.isBlank(user.getId())){
return ResponseEntity.failure("保存用户信息出错");
//保存用户角色关系
userService.saveUserRoles(user.getId(),user.getRoleLists());
return ResponseEntity.success("操作成功");
@RequestMapping("edit")
public String edit(String id,ModelMap modelMap){
map.put("url", url);
map.put("name", file.getOriginalFilename());
} catch (Exception e) {
e.printStackTrace();
return ResponseEntity.failure(e.getMessage());
return ResponseEntity.success("操作成功").setAny("data",map);
教师管理控制层:
@Controller
public class TeacherController {
@Autowired
private TeacherService lxxTeacherService;
@Autowired
private StudentService lxxStudentService;
if(StringUtils.isBlank(newPwd)){
return ResponseEntity.failure("新密码不能为空");
if(StringUtils.isBlank(confirmPwd)){
return ResponseEntity.failure("确认密码不能为空");
if(!confirmPwd.equals(newPwd)){
return ResponseEntity.failure("确认密码与新密码不一致");
//小程序修改密码
if(StringUtils.isBlank(userName)){
//PC修改密码
User user = userService.findUserById(MySysUser.id());
byte[] hashPassword = Encodes.sha1(oldPwd.getBytes(), Encodes.SHA1, Encodes.decodeHex(user.getSalt()), Constants.HASH_INTERATIONS);
String password = Encodes.encodeHex(hashPassword);
rolePageData.setCount(rolePage.getTotal());
rolePageData.setData(setUserToRole(rolePage.getRecords()));
return rolePageData;
private List<Role> setUserToRole(List<Role> roles){
roles.forEach(r -> {
if(StringUtils.isNotBlank(r.getCreateId())){
User u = userService.findUserById(r.getCreateId());
if(StringUtils.isBlank(u.getNickName())){
u.setNickName(u.getLoginName());
r.setCreateUser(u);
if(StringUtils.isNotBlank(r.getUpdateId())){
User u = userService.findUserById(r.getUpdateId());
} catch (Exception e) {
e.printStackTrace();
return ResponseEntity.failure(e.getMessage());
return ResponseEntity.success("操作成功").setAny("data",map);
教师管理控制层:
@Controller
public class TeacherController {
@Autowired
private TeacherService lxxTeacherService;
@Autowired