在哪个网站去租地方做收废站惠州做网站建设

bicheng/2026/1/27 10:23:45/文章来源:
在哪个网站去租地方做收废站,惠州做网站建设,荣耀手机价格表大全一览,重庆网站优化排名系列文章目录 智能化校园#xff1a;深入探讨云端管理系统设计与实现#xff08;一#xff09; 文章目录 系列文章目录功能开发登录功能分析验证码功能实现登录校验功能登录后跳转功能 系统管理器实现验证码响应图片功能实现异步图片上传头像功能实现全局修改密码功能实现 …系列文章目录 智能化校园深入探讨云端管理系统设计与实现一 文章目录 系列文章目录功能开发登录功能分析验证码功能实现登录校验功能登录后跳转功能 系统管理器实现验证码响应图片功能实现异步图片上传头像功能实现全局修改密码功能实现 管理员管理功能实现查询管理员信息添加和修改管理员信息删除和批量删除管理员信息 年级管理功能实现查询年级信息添加和修改年级信息删除和批量删除年级信息 班级管理功能实现搜索条件中的年级选项查询班级信息添加和修改班级信息删除和批量删除班级信息 教师管理功能实现搜索条件中班级选项查询教师功能实现添加和修改教师信息删除和批量删除教师信息 学生管理功能实现搜索条件中班级选项查询学生功能实现添加和修改学生信息删除和批量删除学生信息 项目bug解决 项目总结 功能开发 登录功能分析 输入用户账户和密码验证码然后进行登录校验通过登录校验后跳转至首页功能。与此同时该系统所有用户都必须登录后才能跳转到后台首页所以登录功能在全局系统控制器的代码中实现。 验证码功能实现 验证码的前端请求请求的是后端方法getVerifiCodeImage该方法中先获取请求和响应的参数获取从工具类中创建的图片获取图片上的验证码文本将验证码图片响应给浏览器。 ApiOperation(获取验证码方法)GetMapping(/getVerifiCodeImage)public void getVerifiCodeImage(ApiParam(请求) HttpServletRequest request,ApiParam(响应) HttpServletResponse response){//获取图片BufferedImage verifiCodeImage CreateVerifiCodeImage.getVerifiCodeImage();//获取图片上的验证码String verifiCodenew String(CreateVerifiCodeImage.getVerifiCode());//将验证码文本放入session 域为下一次验证做准备HttpSession sessionrequest.getSession();session.setAttribute(verifiCode,verifiCode);/** 将验证码图片响应到浏览器 response输出流* 将生成的验证码图片按照PNG格式传给浏览器。* */try {ServletOutputStream outputStream response.getOutputStream();ImageIO.write(verifiCodeImage,PNG,outputStream);} catch (IOException e) {e.printStackTrace();}}登录校验功能 登录校验功能首先需要判断用户输入的验证码和系统图片的验证码文本是否一致如若不一致则会提示验证码有误请刷新后重试。如若判断一致后会先将现有session中移除现有验证码在进行用户类型验证管理员学生老师。在这里采用map类型进行用户响应数据的存放将传入的用户类型分为三种1代表管理员2代表学生3 代表老师。以管理员用户为例将传入的对象在数据库进行查询如果查询找到了则为admin对象。如果没有找到则admin对象为null那么说明用户名或者密码错误。 /** 登录校验* */ApiOperation(登录的方法)PostMapping(/login)//传入两个参数一个是系统的验证码图片一个是用户输入的验证码public Result login(ApiParam(登录提交的表单)RequestBody LoginForm loginForm,HttpServletRequest request){//验证码HttpSession sessionrequest.getSession();String sessionVerifiCode(String) session.getAttribute(verifiCode);String loginVerifiCodeloginForm.getVerifiCode();//验证码判断,是否失效或者为空if (.equals(sessionVerifiCode ) || nullsessionVerifiCode){return Result.fail().message(验证码失效请刷新后重试);}//判断用户输入验证码和系统验证码是否相同不区分大小写if (!sessionVerifiCode.equalsIgnoreCase(loginVerifiCode)){return Result.fail().message(验证码有误请输入后重试);}//从session移除现有验证码session.removeAttribute(verifiCode);//分用户类型验证 管理员学生老师等//准备一个map用户存放响应的数据MapString,Object mapnew LinkedHashMap();switch (loginForm.getUserType()){//管理员表case 1:try {//传入的对象判断登录数据库中查询找到为admin如果为null,即没有找到。Admin admin adminService.login(loginForm);if (null !admin){//用户的id 和类型转换为一个密文以token形式的名称反馈前端String token JwtHelper.createToken(admin.getId().longValue(),1);map.put(token,token);}else {throw new RuntimeException(用户名或者密码有误);}return Result.ok(map);}catch (RuntimeException e){e.printStackTrace();//异常对象抛出来的信息 new RuntimeException(用户名或者密码有误);return Result.fail().message(e.getMessage());}//学生信息case 2:try {Student student studentService.login(loginForm);if (null !student){String tokenJwtHelper.createToken(student.getId().longValue(),2);map.put(token,token);}else {throw new RuntimeException(用户名或者密码错误);}return Result.ok(map);}catch (RuntimeException e){e.printStackTrace();return Result.fail().message(e.getMessage());}case 3:try {Teacher teacher teacherService.login(loginForm);if (null !teacher){String tokenJwtHelper.createToken(teacher.getId().longValue(),3);map.put(token,token);}else {throw new RuntimeException(用户名或者密码错误);}return Result.ok(map);}catch (RuntimeException e){e.printStackTrace();return Result.fail().message(e.getMessage());}}return Result.fail().message(查无此人);}登录后跳转功能 在登录过程中先请求login再次请求getinfo 来判断登录页面。请求login页面响应码200信息成功data对象用户id类型token有效时间 生成密文 第二次请求在login请求成功后会请求访问getinfo页面第二次请求中也带有一个token。请求信息头响应admin 的数据信息源码 Api(tags 系统控制器) RestController RequestMapping(/sms/system) public class SystemController {Autowiredprivate AdminService adService;Autowiredprivate StudentService studentService;Autowiredprivate TeacherService teacherService;/** token 判断登录* */ApiOperation(通过taken口令来获取当前登录的用户信息的方法)GetMapping(/getInfo)public Result getInfoByToken(//请求头 tokenApiParam(token口令) RequestHeader(token) String token){boolean expirationJwtHelper.isExpiration(token);//验证token是否过期。if (expiration){//token无效return Result.build(null, ResultCodeEnum.TOKEN_ERROR);}//从token解析出 用户id用户类型Long userIdJwtHelper.getUserId(token);Integer userTypeJwtHelper.getUserType(token);//判断登录状态MapString,Object mapnew LinkedHashMap();//用户类型switch (userType){case 1://根据adminid查询一个对象键值对Admin adminadminService.getAdminById(userId);map.put(userType,1);map.put(user,admin);break;case 2:Student studentstudentService.getStudentById(userId);map.put(userType,2);map.put(user,student);break;case 3:Teacher teacherteacherService.getByTeacherById(userId);map.put(userType,3);map.put(user,teacher);break;}return Result.ok(map);}}这段代码同时可以优化为以下代码后续不少代码给出的是优化后或有一定变动后的代码 Api(tags 系统控制器) RestController RequestMapping(/sms/system) public class SystemController {private static final int ADMIN_USER_TYPE 1;private static final int STUDENT_USER_TYPE 2;private static final int TEACHER_USER_TYPE 3;private final AdminService adService;private final StudentService studentService;private final TeacherService teacherService;Autowiredpublic SystemController(AdminService adService, StudentService studentService, TeacherService teacherService) {this.adService adService;this.studentService studentService;this.teacherService teacherService;}/** token 判断登录* */ApiOperation(通过taken口令来获取当前登录的用户信息的方法)GetMapping(/getInfo)public Result getInfoByToken(//请求头 tokenApiParam(token口令) RequestHeader(token) String token){boolean isTokenExpiredJwtHelper.isExpiration(token);//验证token是否过期。if (isTokenExpired){//token无效return Result.build(null, ResultCodeEnum.TOKEN_ERROR);}//从token解析出 用户id用户类型Long userIdJwtHelper.getUserId(token);Integer userTypeJwtHelper.getUserType(token);//判断登录状态MapString,Object mapnew LinkedHashMap();//用户类型if (userType ADMIN_USER_TYPE) {// 处理管理员用户逻辑Admin adminadminService.getAdminById(userId);map.put(userType,1);map.put(user,admin);break;} else if (userType STUDENT_USER_TYPE) {// 处理学生用户逻辑Student studentstudentService.getStudentById(userId);map.put(userType,2);map.put(user,student);break;} else if (userType TEACHER_USER_TYPE) {// 处理教师用户逻辑Teacher teacherteacherService.getByTeacherById(userId);map.put(userType,3);map.put(user,teacher);break;} else {// 处理其他用户类型逻辑return Result.ok(map);}}系统管理器实现 验证码响应图片功能实现 验证码图片请求Controller层代码 /** 响应验证码图片的流程* 匹配处理器方法路径* */ApiOperation(获取验证码方法)GetMapping(/getVerifiCodeImage)public void getVerifiCodeImage(ApiParam(请求) HttpServletRequest request,ApiParam(响应) HttpServletResponse response){//获取图片BufferedImage verifiCodeImage CreateVerifiCodeImage.getVerifiCodeImage();//获取图片上的验证码String verifiCodenew String(CreateVerifiCodeImage.getVerifiCode());//将验证码文本放入session 域为下一次验证做准备HttpSession sessionrequest.getSession();session.setAttribute(verifiCode,verifiCode);/** 将验证码图片响应到浏览器 response输出流* 将生成的验证码图片按照PNG格式传给浏览器。* */try {ServletOutputStream outputStream response.getOutputStream();ImageIO.write(verifiCodeImage,PNG,outputStream);} catch (IOException e) {e.printStackTrace();}}响应验证码图片swagger测试接口 异步图片上传头像功能实现 该操作响应流程Controller层代码 ApiOperation(文件上传统一入口) PostMapping(/headerImgUpload) public Result headerImgUpload(ApiParam(头像文件) RequestParam(file) MultipartFile file,HttpServletRequest request ) {if (file.isEmpty()) {return Result.error(文件为空);}String uuid UUID.randomUUID().toString().replace(-, ).toLowerCase();String originalFilename file.getOriginalFilename();String fileExtension originalFilename.substring(originalFilename.lastIndexOf(.));String newFileName uuid fileExtension;String uploadDirectory D:/ideaProjects/smart_campus/target/classes/public/upload/;String portraitPath uploadDirectory newFileName;try {Files.createDirectories(Paths.get(uploadDirectory));file.transferTo(new File(portraitPath));} catch (IOException e) {e.printStackTrace();return Result.error(文件上传失败);}String path upload/ newFileName;return Result.ok(path); }该操作响应成功swagger测试接口 全局修改密码功能实现 Controller层代码 ApiOperation(全局密码更新器) PostMapping(/updatePwd/{oldPwd}/{newPwd}) public Result updatePwd(ApiParam(token口令) RequestHeader(token) String token,ApiParam(旧密码) PathVariable(oldPwd) String oldPwd,ApiParam(新密码) PathVariable(newPwd) String newPwd ) {boolean expiration JwtHelper.isExpiration(token);if (expiration) {// token 过期return Result.fail().message(token过期请重新登录);}// 获取用户id和用户类型Long userId JwtHelper.getUserId(token);Integer userType JwtHelper.getUserType(token);// 定义用户实体类和服务类BaseUser user null;BaseServiceBaseUser userService null;// 根据用户类型选择对应的实体类和服务类switch (userType) {case 1:user adminService.getById(userId);userService adminService;break;case 2:user studentService.getById(userId);userService studentService;break;case 3:user teacherService.getById(userId);userService teacherService;break;}// 验证用户和密码if (user ! null user.getPassword().equals(MD5.encrypt(oldPwd))) {// 修改密码user.setPassword(MD5.encrypt(newPwd));userService.saveOrUpdate(user);return Result.ok().message(密码修改成功);} else {return Result.fail().message(原密码有误);} }swagger测试接口 管理员管理功能实现 进入管理员管理界面 查询管理员信息 先看查询数据流的请求信息根据请求路径到后端请求地址Controller层代码 Autowired private AdminService adminService;/* * /sms/adminController/getAllAdmin/1/3 * 分页查询 * */ApiOperation(分页查询功能) GetMapping(/getAllAdmin/{pageNo}/{pageSize}) public Result getAllAdmin(ApiParam(页码) PathVariable(pageNo) Integer pageNo,ApiParam(页大小) PathVariable(pageSize) Integer pageSize,ApiParam(管理员名字) String adminName ){PageAdmin page new Page(pageNo, pageSize);IPageAdmin iPage adminService.getAdminsByOpr(page, adminName);return Result.ok(iPage); } service层代码 Override public IPageAdmin getAdminsByOpr(PageAdmin page, String adminName) {QueryWrapperAdmin queryWrapper new QueryWrapper();if (!StringUtils.isEmpty(adminName)) {queryWrapper.like(name, adminName);}queryWrapper.orderByDesc(id);return baseMapper.selectPage(page, queryWrapper); } 该请求响应为swagger测试接口 添加和修改管理员信息 弹出添加表单填写相关信息。数据流请求地址 Controller层代码 ApiOperation(增加或者修改管理员信息) PostMapping(/saveOrUpdateAdmin) public Result saveOrUpdateAdmin(ApiParam(JSON格式的Admin对象) RequestBody Admin admin) {if (admin.getId() null || admin.getId() 0) {admin.setPassword(MD5.encrypt(admin.getPassword()));}adminService.saveOrUpdate(admin);return Result.ok(); } 在这里区分一下增加和修改操作。 admin 对象的 id 是否为 null 或者为 0。如果是则表示这是一个新增的管理员需要对密码进行加密处理。如果 id 不为 null 或者不为 0则表示这是一个修改操作不需要对密码进行处理。 请求响应头swagger测试接口 删除和批量删除管理员信息 删除操作请求数据流Controller层代码 ApiOperation(删除单个用户或者批量删除多个用户) DeleteMapping(/deleteAdmin) public Result deleteAdmin(ApiParam(删除管理员用户的id的JSON集合) RequestBody ListInteger ids) {if (ids.size() 1) {// 单一删除逻辑adminService.removeById(ids.get(0));} else {// 批量删除逻辑adminService.removeByIds(ids);}return Result.ok(); }通过判断ids列表的长度来区分是单一删除还是批量删除 如果长度为1则执行单一删除逻辑调用adminService.removeById(ids.get(0))方法删除对应的管理员用户 如果长度大于1则执行批量删除逻辑调用adminService.removeByIds(ids)方法删除对应的管理员用户。 该请求响应操作swagger测试接口 年级管理功能实现 查询年级信息 先查询数据流的请求信息 根据请求路径到后端请求地址 Controller层代码 Api(tags 年级控制器) RestController RequestMapping(/sms/gradeController) public class GradeController {private final GradeService gradeService;public GradeController(GradeService gradeService) {this.gradeService gradeService;}ApiOperation(查询年级信息分页带条件)GetMapping(/getGrades)public Result getGrades(ApiParam(分页查询页码数) RequestParam(value pageNo, defaultValue 1) Integer pageNo,ApiParam(分页查询页大小) RequestParam(value pageSize, defaultValue 10) Integer pageSize,ApiParam(分页查询模糊匹配班级名) RequestParam(value gradeName, required false) String gradeName) {PageGrade page new Page(pageNo, pageSize);IPageGrade pageRs gradeService.getGradeByOpr(page, gradeName);return Result.ok(pageRs);} }Service层代码 Service Transactional public class GradeServiceImpl extends ServiceImplGradeMapper, Grade implements GradeService {private final GradeMapper gradeMapper;public GradeServiceImpl(GradeMapper gradeMapper) {this.gradeMapper gradeMapper;}Overridepublic IPageGrade getGradeByOpr(PageGrade pageParam, String gradeName) {// 设置查询条件QueryWrapperGrade queryWrapper new QueryWrapper();if (!StringUtils.isEmpty(gradeName)) {queryWrapper.like(name, gradeName);}// 设置排序规则queryWrapper.orderByDesc(id);queryWrapper.orderByAsc(name);// 分页查询数据IPageGrade page gradeMapper.selectPage(pageParam, queryWrapper);return page;} }该请求响应头 swagger测试接口功能 添加和修改年级信息 添加年级表单填入数据。 数据流的请求头 Controller层代码 Api(tags 年级控制器) RestController RequestMapping(/sms/gradeController) public class GradeController {private final GradeService gradeService;Autowiredpublic GradeController(GradeService gradeService) {this.gradeService gradeService;}ApiOperation(添加或者修改年级信息)PostMapping(/saveOrUpdateGrade)public Result saveOrUpdateGrade(ApiParam(JSON的grade对象转换后台数据模型) RequestBody Grade grade) {// 调用服务层方法实现添加或者修改年级信息gradeService.saveOrUpdate(grade);return Result.ok();} } swagger测试接口 删除和批量删除年级信息 删除操作请求数据流Controller层代码 private final GradeService gradeService;public GradeController(GradeService gradeService) {this.gradeService gradeService; }ApiOperation(删除一个或者多个grade信息) DeleteMapping(/deleteGrade) public Result deleteGradeById(ApiParam(JSON的年级id集合,映射为后台ListInteger) RequestBody ListInteger ids ) {gradeService.removeByIds(ids);return Result.ok(); }请求后的响应 swagger测试接口 班级管理功能实现 搜索条件中的年级选项 Controller层代码 Api(tags 年级控制器) RestController RequestMapping(/sms/gradeController) public class GradeController {Autowiredprivate GradeService gradeService;ApiOperation(获取所有Grade信息)GetMapping(/getGrades)public Result getGrades(){ListGrade grades gradeService.getGrades();return Result.ok(grades);} }service层代码 Service Transactional public class GradeServiceImpl extends ServiceImplGradeMapper, Grade implements GradeService {public ListGrade getGrades(){ListGrade grades baseMapper.selectList(null);return grades;} }mapper层代码 public interface BaseMapperT extends MapperT{ListT selectList(Param(ew) WrapperT queryWrapper); }swagger测试接口 查询班级信息 先看查询数据流的请求信息 根据请求路径到后端请求地址 Controller层代码 Api(tags 班级控制器) RestController RequestMapping(/sms/clazzController) public class ClazzController {Autowiredprivate ClazzService clazzService;ApiOperation(查询班级信息,分页带条件)GetMapping(/getClazzsByOpr/{pageNo}/{pageSize})public Result getClazzsByOpr(ApiParam(页码数) PathVariable(pageNo) Integer pageNo,ApiParam(页大小) PathVariable(pageSize) Integer pageSize,ApiParam(查询条件) Clazz clazz){//设置分页信息PageClazz page new Page(pageNo,pageSize);IPageClazz iPage clazzService.getClazzsByOpr(page, clazz);return Result.ok(iPage);}}service层代码 Service Transactional public class ClazzServiceImpl extends ServiceImplClazzMapper, Clazz implements ClazzService {/*** 分页查询所有班级信息【带条件】* param clazz* return*/Overridepublic IPageClazz getClazzsByOpr(PageClazz pageParam,Clazz clazz) {QueryWrapper queryWrapper new QueryWrapper();if(clazz ! null){//年级名称条件String gradeName clazz.getGradeName();if(!StringUtils.isEmpty(gradeName)){queryWrapper.eq(grade_name,gradeName);}//班级名称条件String clazzName clazz.getName();if(!StringUtils.isEmpty(clazzName)){queryWrapper.like(name,clazzName);}queryWrapper.orderByDesc(id);queryWrapper.orderByAsc(name);}Page page baseMapper.selectPage(pageParam, queryWrapper);return page;} }该请求响应头 swagger测试接口 添加和修改班级信息 填写表单添加数据 该数据流请求头Controller层代码 Api(tags 班级控制器) RestController RequestMapping(/sms/clazzController) public class ClazzController {Autowiredprivate ClazzService clazzService;ApiOperation(保存或者修改班级信息)PostMapping(/saveOrUpdateClazz)public Result saveOrUpdateClazz(ApiParam(JSON转换后端Clazz数据模型) RequestBody Clazz clazz){clazzService.saveOrUpdate(clazz);return Result.ok();} }请求响应后增加修改swagger测试接口 删除和批量删除班级信息 删除响应Controller层代码 public class ClazzController { private final ClazzService clazzService;public ClazzController(ClazzService clazzService) {this.clazzService clazzService; }ApiOperation(删除一个或者多个班级信息) DeleteMapping(/deleteClazz) public Result deleteClazzByIds(ApiParam(多个班级id的JSON) RequestBody ListInteger ids ){clazzService.removeByIds(ids);return Result.ok();} }请求响应后swagger测试接口 教师管理功能实现 搜索条件中班级选项 Controller层代码 //查询所有班级信息ApiOperation(查询所有班级的信息)GetMapping(/getClazzs)public Result getClazzs(){ListClazz clazzesclazzService.getClazzs();return Result.ok(clazzes);}service层代码 Service(clazzServiceImpl) Transactional //事务控制 public class ClazzServiceImpl extends ServiceImplClazzMapper, Clazz implements ClazzService {Overridepublic ListClazz getClazzs() {return baseMapper.selectList(null);}}swagger测试接口 查询教师功能实现 先查询数据流的请求信息根据请求路径到后端请求地址Controller层代码 Api(tags 教师信息管理控制器) RestController RequestMapping(/sms/teacherController) public class TeacherController {Autowiredprivate TeacherService teacherService;ApiOperation(获取教师信息,分页带条件)GetMapping(/getTeachers/{pageNo}/{pageSize})public Result getTeachers(PathVariable(pageNo) Integer pageNo,PathVariable(pageSize) Integer pageSize,Teacher teacher){PageTeacher pageParam new Page(pageNo,pageSize);IPageTeacher page teacherService.getTeachersByOpr(pageParam, teacher);return Result.ok(page);} }service层代码 Override public IPageTeacher getTeachersByOpr(PageTeacher pageParam, Teacher teacher) {QueryWrapper queryWrapper new QueryWrapper();if(teacher ! null){//班级名称条件String clazzName teacher.getClazzName();if (!StringUtils.isEmpty(clazzName)) {queryWrapper.eq(clazz_name,clazzName);}//教师名称条件String teacherName teacher.getName();if(!StringUtils.isEmpty(teacherName)){queryWrapper.like(name,teacherName);}queryWrapper.orderByDesc(id);queryWrapper.orderByAsc(name);}IPageTeacher page baseMapper.selectPage(pageParam, queryWrapper);return page; }该请求响应为swagger测试接口 添加和修改教师信息 填写表单数据该操作请求数据响应头Controller层代码 ApiOperation(添加和修改教师信息) PostMapping(/saveOrUpdateTeacher) public Result saveOrUpdateTeacher(RequestBody Teacher teacher ){if (teacher.getId() ! null) {// ID 不为空执行修改操作teacherService.update(teacher);} else {// ID 为空执行增加操作teacherService.add(teacher);}return Result.ok(); }通过判断teacher对象的id属性是否为空来确定是执行增加操作还是修改操作。如果id不为空则执行修改操作如果id为空则执行增加操作。 swagger测试接口 删除和批量删除教师信息 该删除操作请求路径Controller层代码 ApiOperation(删除一个或者多个教师信息) DeleteMapping(/deleteTeacher) public Result deleteTeacher(RequestBody ListInteger ids ){if (ids.size() 1) {// ids 列表只包含一个元素执行删除操作teacherService.removeById(ids.get(0));} else {// ids 列表包含多个元素执行批量删除操作teacherService.removeByIds(ids);}return Result.ok(); }通过判断ids列表的大小来确定是执行删除操作还是批量删除操作。如果ids列表只包含一个元素则执行删除操作如果ids列表包含多个元素则执行批量删除操作。 swagger测试接口 学生管理功能实现 搜索条件中班级选项 Controller层代码 //查询所有班级信息ApiOperation(查询所有班级的信息)GetMapping(/getClazzs)public Result getClazzs(){ListClazz clazzesclazzService.getClazzs();return Result.ok(clazzes);}service层代码 Service(clazzServiceImpl) Transactional //事务控制 public class ClazzServiceImpl extends ServiceImplClazzMapper, Clazz implements ClazzService {Overridepublic ListClazz getClazzs() {return baseMapper.selectList(null);}}swagger测试接口 查询学生功能实现 先查询数据流的请求信息Controller层代码 Api(tags 学生控制器) RestController RequestMapping(/sms/studentController) public class StudentController {Autowiredprivate StudentService studentService;ApiOperation(查询学生信息,分页带条件)GetMapping(/getStudentByOpr/{pageNo}/{pageSize})public Result getStudentsByOpr(ApiParam(页码数) PathVariable(pageNo)Integer pageNo,ApiParam(页大小) PathVariable(pageSize)Integer pageSize,ApiParam(查询条件转换后端数据模型) Student student){// 准备分页信息封装的page对象PageStudent page new Page(pageNo,pageSize);// 获取分页的学生信息IPageStudent iPage studentService.getStudentByOpr(page, student);// 返回学生信息return Result.ok(iPage);} }service层代码 Service(stuService) Transactional public class StudentServiceImpl extends ServiceImplStudentMapper, Student implements StudentService {/*** 按条件查询学生信息【带分页】*/public IPageStudent getStudentByOpr(PageStudent pageParam,Student student){QueryWrapperStudent queryWrapper null;if(student ! null) {queryWrapper new QueryWrapper();if (student.getClazzName() ! null) {queryWrapper.eq(clazz_name, student.getClazzName());}if (student.getName() ! null) {queryWrapper.like(name, student.getName());}queryWrapper.orderByDesc(id);queryWrapper.orderByAsc(name);} //创建分页对象IPageStudent pages baseMapper.selectPage(pageParam, queryWrapper);return pages;}请求响应swagger测试接口 添加和修改学生信息 填写表单数据该操作数据请求Controller层代码 Api(tags 学生控制器) RestController RequestMapping(/sms/studentController) public class StudentController {Autowiredprivate StudentService studentService;ApiOperation(增加学生信息)PostMapping(/addOrUpdateStudent)public Result addOrUpdateStudent(RequestBody Student student){//对学生的密码进行加密if (!Strings.isEmpty(student.getPassword())) {student.setPassword(MD5.encrypt(student.getPassword()));}//保存学生信息进入数据库studentService.saveOrUpdate(student);return Result.ok();} }根据学生对象是否具有唯一标识如学生ID来进行判断。如果学生对象具有唯一标识则可以将其视为修改操作否则可以将其视为增加操作。 该操作响应swagger测试接口 删除和批量删除学生信息 该操作请求路径Controller层代码 Api(tags 学生控制器) RestController RequestMapping(/sms/studentController) public class StudentController {Autowiredprivate StudentService studentService;ApiOperation(删除一个或者多个学生信息)DeleteMapping(/delStudentById)public Result delStudentById(ApiParam(多个学生id的JSON) RequestBody ListInteger ids){studentService.removeByIds(ids);return Result.ok();} }该请求响应数据swagger测试接口 项目bug解决 项目启动报错“javax.xml.bind.DatatypeConverter”项目启动时没有问题swagger调接口也没有问题前后端联调的时候出现以下问题提示javax.xml.bind.DatatypeConverterJAXB API是java EE 的API因此在java SE 9.0 中不再包含这个 Jar 包。java 9 中引入了模块的概念默认情况下Java SE中将不再包含java EE 的Jar包而在 java 6/7 / 8 时关于这个API 都是捆绑在一起的jar包中缺少这一依赖-javax.xml.bind.api导入依赖即可。 dependencygroupIdjavax.xml.bind/groupIdartifactIdjaxb-api/artifactIdversion2.3.0/version /dependency项目总结 智慧校园云端管理系统是一个基于前后端分离架构的校园管理系统主要用于管理校内学生、老师、班级和年级的相关信息并提供学生和老师信息记录和统计的功能。该系统采用了以下技术和工具 前端技术HTML、CSS和Vue.js用于实现页面效果展示和交互功能。后端框架Spring Boot和MyBatis Plus用于实现数据存储和服务。数据库MySQL作为存储层提供高性能的数据存储和查询。服务器使用Spring Boot内置的Tomcat 9.x作为Web服务器用于部署和运行系统。项目构建工具Maven用于管理项目依赖和构建过程。 系统的用户角色包括管理员、老师和学生。每个角色都有不同的功能和权限 管理员角色可以进行学生、老师、年级和班级信息的管理包括添加、编辑和删除操作还可以管理个人信息和重置账户密码。老师角色可以参与相关学生和班级信息的管理包括查看和编辑操作同时也可以管理个人信息。学生角色可以查看自己所在班级的信息、同学信息还可以管理个人信息。 通过该系统管理员可以方便地管理校园的核心基础业务数据老师和学生可以更好地进行信息管理和查看。至此项目成功完结。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/86241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

尉氏网站建设图片交易网站源码

前言 最近学习VUE,在ubuntu 2204 上配置开发环境,涉及到npm node nodejs vue-Cli脚手架等内容,做以记录。 一、node nodejs npm nvm 区别 ? node 是框架,类似python的解释器。nodejs 是编程语言,是js语言的…

公司网站建设需求分析汉川做网站

问题描述: 今天在写csdn动态的时候,发了五个动态,但是主页面的“最近”看不到我发的动态,我还以为是csdn动态每天的发送量有数量限制。去这个地方点我的发现 右上角全是“审核中”的字样 按理说是不可能审核这么久的&#xff08…

做网站 给图片加链接网站赚流量

接口缩容 在VS编译器的模式下&#xff0c;类似于erase和insert接口的函数通常会进行缩容&#xff0c;因此&#xff0c;insert和erase行参中的迭代器可能会失效。下图中以erase为例&#xff1a; 代码如下&#xff1a; #include <iostream> #include <vector> #inclu…

成都建设网站的一般做企业网站需要什么

有两种情况&#xff1a; 压根没安装下载了但没设为库或方法不对 大多数为第一种情况&#xff1a; 一. 下载jdbc 打开网址选择一个版本进行下载 https://nowjava.com/jar/version/mysql/mysql-connector-java.html 二.安装jdbc 在项目里建一个lib文件夹 在把之前下载的jar文…

简阳电力建设立项网站友情贴吧

Proxyman专为开发人员和网络爱好者设计&#xff0c;它允许用户拦截、查看和修改所有传入和传出的网络请求&#xff0c;并提供详细的分析和调试功能。 Proxyman支持HTTP、HTTPS和WebSocket协议&#xff0c;因此&#xff0c;可以轻松捕获和查看这些协议下的网络流量。用户可以使…

爱站网站长seo综合查询怎么找人做动漫视频网站

3.2 xHCI数据结构 3.2.1 Device Context Base Address Array 3.2.2 Device Context 3.2.3 Slot Context

自己做网站不想买空间 自己电脑可以做服务器吗?怎么进入wordpress修改界面

文章目录 网络设备和网络软件网卡交换机交换机的三个主要功能交换机的工作原理第二层交换和第三层交换交换机的堆叠和级联 路由器路由器工作原理 网关网关的分类 无线接入点(AP)调制解调器网络软件 网络设备和网络软件 网卡 网络接口卡又称网络适配器&#xff0c;简称网卡。网…

买的网站模板里面是什么wordpress防截屏

当计算机系统在运行过程中无法找到ucrtbased.dll这个特定的动态链接库文件时&#xff0c;可能会引发一系列的问题和故障现象。ucrtbased.dll是Windows操作系统中一个至关重要的组件&#xff0c;它包含了C运行时库的核心函数&#xff0c;对于许多应用程序特别是基于Microsoft Vi…

iis 做网站企业软件项目管理系统

本文继续整理计算机网络体系架构知识内容。今日主讲——运输层。 网络层只把分组发送到目的主机&#xff0c;但是真正通信的并不是主机而是主机中的进程。 运输层提供了应用进程间的逻辑通信。运输层向高层用户屏蔽了下面网络层的核心细节&#xff0c;使应用程序看 见的好像在两…

图片设计制作网站wordpress 前台用户

#回文数#Method1&#xff1a;将整数转置和原数比较&#xff0c;一样就是回文数&#xff1b;负数不是回文数#这里反转整数时不需要考虑溢出&#xff0c;但不代表如果是C/C等语言也不需要考虑class Solution(object): def isPalindrome(self, x): """ …

益阳建设厅网站重庆市建设工程节能中心网站

Docker - 企业项目 因为环境原因&#xff0c;本章本人没有实际操作&#xff0c;以理论为主 容器单独没有什么意义&#xff0c;有意义的是容器的编排 Docker 4台&#xff1a;1核2G的ECS K8s 9台&#xff1a;2核4G的ECS Docker Compose Docker Swarm # manager节点初始化sw…

福州网站建设优化深圳关键词排名首页

谈谈怎么实现Oracle数据库分区表 Oracle数据库分区是作为Oracle数据库性能优化的一种重要的手段和方法&#xff0c;做手头的项目以前&#xff0c;只聆听过分区的大名&#xff0c;感觉特神秘&#xff0c;看见某某高手在讨论会上夸夸其谈时&#xff0c;真是骂自己学艺不精&#x…

定制网站开发的意思wordpress app提示

前言 看见很多游戏有很特殊的波浪形文字效果&#xff0c;于是来尝试一下控制TMP文字顶点的方式达到类似效果。 原理 挂载tmp text&#xff0c;在里面随便放入非空格字符。 tmp text组件开放了textInfo接口&#xff0c;也就是GetComponent<TextMeshProUGUI>().textInfo…

上海网站建设q479185700強蓝色通用营销型企业网站模板

目录 前言&#xff1a; IO流介绍&#xff1a; IO流的常见方法&#xff1a; 1.字节流类&#xff1a; 2.字符流类&#xff1a; 总结&#xff1a; 前言&#xff1a; IO流就是存入和读取数据的解决方案&#xff0c;并且他是一个知识点很多的章节&#xff0c;因此我们关于IO流…

石家庄房产网站官网哪些网站discuz做的

JDBC&#xff08;Java Database Connectivity&#xff09;是Java编程语言用于连接和操作数据库的API&#xff08;Application Programming Interface&#xff09;。它为开发人员提供了一组Java类和接口&#xff0c;用于与各种关系型数据库进行通信。使用JDBC&#xff0c;开发人…

舆情网站直接打开怎么弄中国flash网站模板

Java正则表达式 七、正则表达式7.1 格式7.1.1 字符类注意字符类示例代码1例2 7.1.2 预定义字符预定义字符示例代码例2 7.1.3 区别总结 7.2 使用Pattern和Matcher类与直接使用String类的matches方法的区别。&#xff08;1&#xff09; 使用Pattern和Matcher类示例代码 &#xff…

遵义新蓝外国语学校网站建设软文发布公司

解决办法: 替换创建项目的源 我们只知道IDEA页面创建Spring项目&#xff0c;其实是访问spring initializr去创建项目。故我们可以通过阿里云国服去间接创建Spring项目。将https://start.spring.io/或者http://start.springboot.io/替换为 https://start.aliyun.com/

无锡网站建设首选捷搜网站建设 推广企业税率

一、特效预览 二、制作原理 星星素材资源 链接&#xff1a;https://pan.baidu.com/s/17D-9sC-ErtqmUxl81Ln1Mw?pwdndm9 提取码&#xff1a;ndm9 1.素材介绍 仔细看&#xff0c;我们的粒子贴图是&#xff08;如下&#xff09;&#xff0c;一颗星星 2.步骤介绍 1.星星动画的…

外贸网站推广哪个平台好网络商城图片

文章首发于&#xff1a;博客园 今天要测试一个几年前基于.NET Framework1.1做的软件在Window7下的工作情况&#xff0c;发现Windows7很体贴的已经默认安装了最新版的Framework3.5.1。程序跑的很顺畅&#xff0c;看来Win7的向下兼容性果然不错。 不过途中发现有一个用到的OCX控件…

wordpress开启多站点好处政务公开与网站建设

shutil.copyfileobj() 是 Python 的 shutil 模块中用于复制文件对象内容的一个函数。它可以将一个文件对象的内容复制到另一个文件对象中。 shutil.copyfileobj(fsrc, fdst, length16*1024) fsrc: 源文件对象&#xff0c;即要从中复制内容的文件对象。fdst: 目标文件对象&…