栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SrpingBoot+Vue实现学生信息管理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SrpingBoot+Vue实现学生信息管理

SrpingBoot+Vue实现学生信息管理
  • 学生选课系统
      • 一、采用技术
      • 二、功能实现
        • 1.响应到前端的结果集
        • 2.解决前后端跨域问题
        • 3.登录
        • 4.学生查询
        • 5.增加学生
        • 6.编辑学生信息
        • 7.删除学生

学生选课系统

学生信息管理系统采用前后端分离方式实现,通过前后端交互数据实现学生信息的增删查改。

一、采用技术

后端:springboot+mybatis-plus
前端:vue+element-ui

二、功能实现 1.响应到前端的结果集
package com.student.course.bean.response;

import lombok.Data;

@Data
public class Result {

    private Integer code = CodeEnum.SUCCESS.getCode();
    private String msg = CodeEnum.SUCCESS.getMsg();
    private boolean success = Boolean.TRUE;
    private T data;
    private long total;

    public Result(){}

    
    public static  Result buildEmptySuccess(){
        return new Result<>();
    }
    public static  Result buildEmptySuccess(T t){
        Result result = buildEmptySuccess();
        result.setData(t);
        return result;
    }
    public static  Result buildEmptySuccess(T t, long total){
        Result result = buildEmptySuccess(t);
        result.setTotal(total);
        return result;
    }

    
    public static  Result buildFailure(String msg){
        Result result = new Result<>();
        result.setCode(null);
        result.setMsg(msg);
        result.setSuccess(false);
        return result;
    }
    public static  Result buildFailure(Integer code,String msg){
        Result result = new Result<>();
        result.setCode(code);
        result.setMsg(msg);
        result.setSuccess(false);
        return result;
    }

    public static  Result buildFailure(CodeEnum codeEnum){
        Result result = new Result<>();
        result.setCode(codeEnum.getCode());
        result.setMsg(codeEnum.getMsg());
        result.setSuccess(false);
        return result;
    }
    public boolean isSuccess(){
        return success;
    }

}

2.解决前后端跨域问题

后端:设置允许跨域的配置文件

package com.student.course.config;

import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

public class WebMvcConfig implements WebMvcConfigurer {

    
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("

function addInterceptors (axiosInstance) {

  //请求拦截器
  axiosInstance.interceptors.request.use( config => {
    return config
    }, error => {
    console.log("请求发送失败",error)
    MessageBox.alert("请求发送失败","错误提示")
    });
  //响应拦截器
  axiosInstance.interceptors.response.use( resultWrapper => {
    let result = resultWrapper.data
    if (result.success){
      return result;
    }else{
      MessageBox.alert(result.msg,"错误提示")
    }
  }, error => {
    console.log("请求发送失败",error)
    MessageBox.alert("服务器响应失败","错误提示")
    return Promise.reject("服务器响应失败")
  });

}


let getInstancee = axios.create()


addInterceptors(getInstancee);



let postInstance = axios.create({
  method: "post",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  transformRequest: [
    function (data,headers){
      console.log("data:",data)
    qs.stringify(data)
    }
  ]
})
addInterceptors(postInstance);

let jsonpostInstance = axios.create({
  method: "post",
})
addInterceptors(jsonpostInstance);

export function doGet (config) {
  return getInstancee(config);
}

export function doPost (config) {
  return postInstance(config);
}

export function dojsonPost (config) {
  return jsonpostInstance(config);
}


3.登录

验证用户名、密码成功后,生成token,并发送给前端

servie层:

    @Override
    public Result login(LoginRequest loginRequest) {

        LambdaQueryWrapper qw = new LambdaQueryWrapper<>();
        qw.eq(Manager::getUser_name,loginRequest.getUser_name())
                .eq(Manager::getPwd,loginRequest.getPwd());
        Manager manager = managerMapper.selectOne(qw);
        if(manager==null){
            return Result.buildFailure("用户名或密码不正确");
        }
        JwtManagerVO jwtManager = generateToken(manager);
        return Result.buildEmptySuccess(jwtManager);
    }

实现如下:


后端获取数据如下:

4.学生查询

采用分页插件查询

Page工具类:

package com.student.course.util;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.student.course.bean.response.Result;

import java.util.List;

public class PageUtil {

    public static void startPage(Integer pageNow, Integer pageSize){
        PageHelper.startPage(pageNow,pageSize);
    }
     public static  Result> wrapPageData(List queryList){
         PageInfo pageInfo = new PageInfo<>(queryList);
         return Result.buildEmptySuccess(queryList,pageInfo.getTotal());
     }
}

service层:

 @Override
    public Result> searchStudent(CommonSearchReq searchReq) {
        PageUtil.startPage(searchReq.getPageNow(),searchReq.getPageSize());
        List students = studentMapper.queryList(searchReq);
        return PageUtil.wrapPageData(students);
    }

查询如下:

5.增加学生
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void add(StudentAddReq addReq) {
        LambdaQueryWrapper qw = new LambdaQueryWrapper<>();
        qw.eq(Student::getNo,addReq.getNo());
        Integer count = studentMapper.selectCount(qw);
        if(count > 0){
            return;
        }
        Student student = new Student();
        BeanUtils.copyProperties(addReq,student);
        studentMapper.insert(student);
    }

实现如下:

6.编辑学生信息

service层:

 @Override
    @Transactional(rollbackFor = Exception.class)
    public void updateById(StudentUpdateReq studentUpdateReq) {
        Student student = new Student();
        BeanUtils.copyProperties(studentUpdateReq,student);
        studentMapper.updateById(student);
    }

实现如下:

7.删除学生
 @Override
    @Transactional(rollbackFor = Exception.class)
    public void deleteById(Long id) {
        studentMapper.deleteById(id);
    }

实现如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/975398.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号