基于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管理等等。
Integer deleteTeacher = deleteService.deleteTeacher(teacherDB);
// 删除教师授课信息
Integer deleteTchCourse = deleteService.deleteTchCourse(tid);
// 删除教师班级信息
Integer deleteTchClass = deleteService.deleteTchClass(tid);
// 删除教师成绩信息
Integer deleteTchExam = deleteService.deleteTchExam(tid);
// 删除教评记录信息
Integer deleteTeaRecord = deleteService.deleteTeaRecord(tid);
// 改用户登录状态改为(1)锁定状态
Integer deleteUser = deleteService.deleteUser(teacherDB.getTchid());
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();
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);
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);
if(!user.getPassword().equals(password)){
return ResponseEntity.failure("旧密码错误");
user.setPassword(newPwd);
Encodes.entryptPassword(user);
userService.updateById(user);
return ResponseEntity.success("操作成功");
return roles;
@RequestMapping("add")
public String add(ModelMap modelMap){
Map<String,Object> map = new HashMap();
map.put("parentId",null);
map.put("isShow",false);
List<Menu> menuList = menuService.selectAllMenus(map);
modelMap.put("menuList",menuList);
return "admin/role/add";
@RequiresPermissions("sys:role:add")
@PostMapping("add")
@ResponseBody
@RequiresPermissions("sys:user:lock")
@PostMapping("lock")
@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")
Role oldRole = roleService.getRoleById(role.getId());
if(!oldRole.getName().equals(role.getName())){
if(roleService.getRoleNameCount(role.getName())>0){
return ResponseEntity.failure("角色名称已存在");
roleService.updateRole(role);
return ResponseEntity.success("操作成功");
@RequiresPermissions("sys:role:delete")
@PostMapping("delete")
@ResponseBody
@SysLog("删除角色数据")
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("该邮箱已被使用");
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){
modelMap.put("currentUser",userService.getById(MySysUser.id()));
return "admin/user/changePassword";
@CrossOrigin
modelMap.put("menuList",menuList);
modelMap.put("menuIds",menuIds);
return "admin/role/edit";
@RequiresPermissions("sys:role:edit")
@PostMapping("edit")
@ResponseBody
@SysLog("保存编辑角色数据")
public ResponseEntity edit(@RequestBody Role role){
if(StringUtils.isBlank(role.getId())){
return ResponseEntity.failure("角色ID不能为空");
return result;
角色管理控制层:
@Controller
@RequestMapping("admin/system/role")
public class RoleController {
@Autowired
RoleService roleService;
@Autowired
UserService userService;
@Autowired
MenuService menuService;
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){
modelMap.put("currentUser",userService.getById(MySysUser.id()));
return "admin/user/changePassword";
@CrossOrigin
public class RoleController {
@Autowired
RoleService roleService;
@Autowired
UserService userService;
@Autowired
MenuService menuService;
@RequestMapping(value = "list")
public String list(){
return "admin/role/list";
@RequiresPermissions("sys:role:list")
@PostMapping("list")
if(user != null) {
roleIds = user.getRoleLists().stream().map(role -> role.getId()).collect(Collectors.joining(","));
List<Role> roleList = roleService.selectAll();
modelMap.put("localuser",user);
modelMap.put("roleIds",roleIds);
modelMap.put("roleList",roleList);
return "admin/user/edit";
@RequiresPermissions("sys:user:edit")
@PostMapping("edit")
@ResponseBody
@SysLog("保存系统用户编辑数据")
// 删除教师成绩信息
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);
for (User u : users){
if(u.getAdminUser()){
return ResponseEntity.failure("不能删除超级管理员");
}else{
userService.deleteUser(u);
return ResponseEntity.success("操作成功");
@RequestMapping("userinfo")
public String toEditMyInfo(ModelMap modelMap){
String userId = MySysUser.id();
User user = userService.findUserById(userId);
modelMap.put("userinfo",user);
modelMap.put("userRole",user.getRoleLists());
return "admin/user/userInfo";
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);
map.put("isShow",Boolean.FALSE);
List<Menu> menuList = menuService.selectAllMenus(map);
modelMap.put("role",role);
@PostMapping("list")
@ResponseBody
public PageData<User> list(@RequestParam(value = "page",defaultValue = "1")Integer page,
@RequestParam(value = "limit",defaultValue = "10")Integer limit,
ServletRequest request){
Map map = WebUtils.getParametersStartingWith(request, "s_");
PageData<User> userPageData = new PageData<>();
QueryWrapper<User> userWrapper = new QueryWrapper<>();
if(!map.isEmpty()){
String type = (String) map.get("type");
if(StringUtils.isNotBlank(type)) {