基于javaweb的学生管理系统(java+springboot+mybatis+vue+mysql)

基于javaweb的学生管理系统(java+springboot+mybatis+vue+mysql)

运行环境

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

开发工具

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

前端:WebStorm/VSCode/HBuilderX等均可

适用

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

功能说明

20220819215952

20220819215953

20220819215954

20220819215955

20220819215956

20220819215957

基于javaweb+mysql的学生管理系统(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管理等等。

学生管理控制层:

@Controller

@RequestMapping(“admin/system/user”)

public class UserController {

@Autowired

UserService userService;

@Autowired

RoleService roleService;

@Autowired

UploadService uploadService;

@RequestMapping(“list”)

@SysLog(“跳转系统用户列表页面”)

public String list(){

return “admin/user/list”;

@RequiresPermissions(“sys:user:list”)

@PostMapping(“list”)

@ResponseBody

public PageData list(@RequestParam(value = “page”,defaultValue = “1”)Integer page,

@RequestParam(value = “limit”,defaultValue = “10”)Integer limit,

ServletRequest request){

Map map = WebUtils.getParametersStartingWith(request, “s_”);

PageData userPageData = new PageData<>();

QueryWrapper userWrapper = new QueryWrapper<>();

if(!map.isEmpty()){

String type = (String) map.get(“type”);

if(StringUtils.isNotBlank(type)) {

userWrapper.eq(“is_admin”, “admin”.equals(type) ? true : false);

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 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 roleList = roleService.selectAll();

modelMap.put(“roleList”,roleList);

return “admin/user/add”;

@RequiresPermissions(“sys:user:add”)

@PostMapping(“add”)

@ResponseBody

@SysLog(“保存新增系统用户数据”)

public ResponseEntity add(@RequestBody User user){

if(StringUtils.isBlank(user.getLoginName())){

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(“该手机号已被绑定”);

// }

// }

//设置默认密码

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){

User user = userService.findUserById(id);

String roleIds = “”;

if(user != null) {

roleIds = user.getRoleLists().stream().map(role -> role.getId()).collect(Collectors.joining(“,”));

List 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(“保存系统用户编辑数据”)

public ResponseEntity edit(@RequestBody User user){

if(StringUtils.isBlank(user.getId())){

return ResponseEntity.failure(“用户ID不能为空”);

if(StringUtils.isBlank(user.getLoginName())){

return ResponseEntity.failure(“登录名不能为空”);

if(user.getRoleLists() == null || user.getRoleLists().size() == 0){

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.getLoginName())){

if(!user.getLoginName().equals(oldUser.getLoginName())) {

if (userService.userCount(user.getLoginName()) > 0) {

return ResponseEntity.failure(“该登录名已存在”);

if(StringUtils.isNotBlank(user.getTel())){

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”)

@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”)

@ResponseBody

@SysLog(“删除系统用户数据(单个)”)

public ResponseEntity delete(@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(“用户不存在”);

}else if(user.getAdminUser()) {

return ResponseEntity.failure(“不能删除后台用户”);

userService.deleteUser(user);

return ResponseEntity.success(“操作成功”);

@RequiresPermissions(“sys:user:delete”)

@PostMapping(“deleteSome”)

@ResponseBody

@SysLog(“删除系统用户数据(多个)”)

public ResponseEntity deleteSome(@RequestBody List users){

if(users == null || users.size()==0){

return ResponseEntity.failure(“请选择需要删除的用户”);

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”;

@SysLog(“系统用户个人信息修改”)

@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){

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

@SysLog(“用户修改密码”)

@PostMapping(“changePassword”)

@ResponseBody

public ResponseEntity changePassword(@RequestParam(value = “userName”,required = false)String userName,

@RequestParam(value = “oldPwd”,required = false)String oldPwd,

@RequestParam(value = “newPwd”,required = false)String newPwd,

@RequestParam(value = “confirmPwd”,required = false)String confirmPwd){

if(StringUtils.isBlank(oldPwd)){

return ResponseEntity.failure(“旧密码不能为空”);

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);

if(!user.getPassword().equals(password)){

return ResponseEntity.failure(“旧密码错误”);

user.setPassword(newPwd);

Encodes.entryptPassword(user);

userService.updateById(user);

return ResponseEntity.success(“操作成功”);

}else {

//小程序修改密码

User user = userService.findUserByLoginName(userName);

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(“操作成功”);

@SysLog(“上传头像”)

@PostMapping(“uploadFace”)

@ResponseBody

public ResponseEntity uploadFile(@RequestParam(“icon”) MultipartFile file, HttpServletRequest httpServletRequest) {

if(file == null){

return ResponseEntity.failure("上传文件为空 ");

String url = null;

Map map = new HashMap();

try {

url = uploadService.upload(file);

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;

@Autowired

private DeleteService deleteService;

// 跳转教师查询页面

@RequestMapping(“/selectTeacher”)

public String selectTeacher(){

return “view/teacher/selTeacher”;

// 查询教师信息

@RequestMapping(“selTeacher”)

@ResponseBody

public LayuiResult selTeacher(TeacherDB teacherDB, pageCount pageCount){

LayuiResult result = new LayuiResult<>();

// 查询所有教师信息/模糊查询教师信息

List list = lxxTeacherService.selTeacher(teacherDB,pageCount);

// 查询符合条件的教师数量

int count = lxxTeacherService.selTeacherCount(teacherDB);

result.setData(list);

result.setCount(count);

return result;

// 根据教师编号查询教师信息

@RequestMapping(“/selTeacherId”)

public String selTeacherId(Integer id, Model model){

List tea = lxxTeacherService.selTeacherId(id);

// 查询政治面貌

List selpol = lxxStudentService.selPolitics();

model.addAttribute(“tea”,tea);

model.addAttribute(“selpol”,selpol);

return “view/teacher/updTeacher”;

// 根据教师编号查询教师详细信息

@RequestMapping(“/selectTeaMessage”)

public String selectTeaMessage(Integer id, Model model){

List tea = lxxTeacherService.selTeacherId(id);

// 查询政治面貌

List selpol = lxxStudentService.selPolitics();

model.addAttribute(“tea”,tea);

model.addAttribute(“selpol”,selpol);

return “view/teacher/selTchMessage”;

// 修改教师信息

@RequestMapping(“/updateTeacher”)

@ResponseBody

public LayuiResult 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 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());

//删除提示

result.setMsg(“修改成功!”);

return result;

}else{

int a =lxxTeacherService.updTeacher(teacherDB);

//删除提示

result.setMsg(“修改成功!”);

return result;

角色管理控制层:

@Controller

@RequestMapping(“admin/system/role”)

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”)

@ResponseBody

public PageData list(@RequestParam(value = “page”,defaultValue = “1”)Integer page,

@RequestParam(value = “limit”,defaultValue = “10”)Integer limit,

ServletRequest request){

Map map = WebUtils.getParametersStartingWith(request, “s_”);

PageData rolePageData = new PageData<>();

QueryWrapper 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 rolePage = roleService.page(new Page<>(page,limit),roleWrapper);

rolePageData.setCount(rolePage.getTotal());

rolePageData.setData(setUserToRole(rolePage.getRecords()));

return rolePageData;

private List setUserToRole(List 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());

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();

map.put(“parentId”,null);

map.put(“isShow”,false);

List

menuList = menuService.selectAllMenus(map);

modelMap.put(“menuList”,menuList);

return “admin/role/add”;

@RequiresPermissions(“sys:role:add”)

@PostMapping(“add”)

@ResponseBody

@SysLog(“保存新增角色数据”)

public ResponseEntity add(@RequestBody Role role){

if(StringUtils.isBlank(role.getName())){

return ResponseEntity.failure(“角色名称不能为空”);

if(roleService.getRoleNameCount(role.getName())>0){

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);

map.put(“isShow”,Boolean.FALSE);

List

menuList = menuService.selectAllMenus(map);

modelMap.put(“role”,role);

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不能为空”);

if(StringUtils.isBlank(role.getName())){

return ResponseEntity.failure(“角色名称不能为空”);

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(“删除角色数据”)

public ResponseEntity delete(@RequestParam(value = “id”,required = false)String id){

if(StringUtils.isBlank(id)){

return ResponseEntity.failure(“角色ID不能为空”);

Role role = roleService.getRoleById(id);

roleService.deleteRole(role);

return ResponseEntity.success(“操作成功”);

@RequiresPermissions(“sys:role:delete”)

@PostMapping(“deleteSome”)

@ResponseBody

@SysLog(“多选删除角色数据”)

public ResponseEntity deleteSome(@RequestBody List roles){

if(roles == null || roles.size()==0){

return ResponseEntity.failure(“请选择需要删除的角色”);

for (Role r : roles){

roleService.deleteRole®;

return ResponseEntity.success(“操作成功”);


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生成绩信息管理系统涉及到学生、教师、系统管理员、班级、学生成绩、课程。设置一个系统管理员对系统进行管理。所有用户需输入账号、密码登录进入系统管理员进入系统后可对学生、老师、班级、课程进行增删改查操作;学生进入系统,查看成绩、查看和修改自己的信息;老师进入系统后,对自己这门课程的学生设置课程成绩、查看和修改自己的信息,查看学生的信息和成绩、以及统计分析学生的成绩; 管理员为班级设置年级,为年级设置课程,为班级的每门课程设置老师,为学生设置班级。一个年级有多门课程(语文、数学、外语等等),班级的每门课程只能有一名老师,一个老师可以有多门课程;老师选择自己这门课程为该课程的学生登记成绩。老师可以查看其他老师的信息(可以当成是老师的通讯录),查看本课程学生的信息和成绩;学生可以查看班级其他同学的信息(可以看成是班级的同学录)。 考试分为两种,一种是年级统考,一种是平时考试。年级统考需要管理员事先添加一次年级统考,考试成绩出来后,老师进入系统选择该次考试为学生登记成绩。平时考试则是班级平时的考试,老师添加考试信息,登记成绩。成绩统计分析则是针对年级统考进行分析,主要涉及各学科分数名次,总分名次。 技术实现 系统环境:Windows开发工具:IDEAJava版本:JDK 1.8服务器:Tomcat 1.8数据库:MySQL 5.X系统采用技术:Servlet+Jsp+Jdbc+H-ui+EasyUI+jQuery+Html+Css+Ajax 系统功能系统主要分为三种用户角色,分别是管理员、老师以及学生,其具体功能如下: - 管理员   学生信息管理、教师信息管理、年级信息管理、班级信息管理、课程信息管理、考试信息管理系统参数设置 - 老师   教学管理、教师个人信息维护、教师通讯录管理 - 学生考试成绩查询、学生通讯录、学生个人信息维护 运行截图 登录界面: 管理员界面: 考试列表:  成绩统计: 学生信息管理: 教师信息管理: 年级、班级信息管理:  系统设置: 教师界面:  成绩登记:  教师通讯录: 个人信息:  学生界面: 学生成绩查询: 班级通讯录: 学生个人信息:              

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值