前端VUE通过请求后端实现增删改查,文末会有前端完整代码

1、实现查询功能

一、实现三个条件一起查询

  • 后台需要实现这三个条件的模糊查询
  1. UserController.java
   //分页查询    @GetMapping("/page")    public IPage<User> findPage(@RequestParam Integer pageNum,                                @RequestParam Integer pageSize,                                @RequestParam(defaultValue = "") String username,                                @RequestParam(defaultValue = "") String email,                                @RequestParam(defaultValue = "") String address){      return userService.findPage(pageNum,pageSize,username,email,address);    }
  1. UserService.java
   public IPage<User> findPage( Integer pageNum,                                 Integer pageSize,                                  String username,                                 String email,                                 String address) {        IPage<User> page = new Page<>(pageNum, pageSize);        QueryWrapper<User>queryWrapper=new QueryWrapper<>();        if (! "".equals(username)){            queryWrapper.like("username",username);        }        if (! "".equals(email)){            queryWrapper.like("email",email);        }        if (! "".equals(address)){            queryWrapper.like("address",address);        }        //增加的排在前面,倒序        queryWrapper.orderByDesc("id");        return this.page(page,queryWrapper);    }
  1. 前端请求这个page接口,即可实现查询

2、实现批量删除

  1. UserController.java
    //批量删除    @PostMapping ("/del/batch")    public boolean deleteBatch(@RequestBody List<Integer>ids){        return userService.removeBatchByIds(ids);    }
  1. 前端请求这个接口即可实现批量删除

3、增、删、改

  1. 后端代码之前已经写过
package com.xqh.controller;import com.baomidou.mybatisplus.core.metadata.IPage;import com.xqh.entity.User;import com.xqh.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import java.util.List;import java.util.Map;@RestController  //返回json@RequestMapping("/user")public class UserController {    @Autowired    private UserService userService;    //插入和修改操作    @PostMapping    public boolean save(@RequestBody User user){        return userService.saveOrUpdate(user);    }    //查询所有数据    @GetMapping    public List<User> findAll(){        return userService.list();    }    //删除    @DeleteMapping("/{id}")    public boolean delete(@PathVariable Integer id){        return userService.removeById(id);    } 

前端只需要请求响应的接口即可

4、使用axios请求后端

  1. 先下载axios组件

npm install axios –save

  1. 创建一个utils包,在里面创建一个request.js文件
import axios from 'axios'const request = axios.create({baseURL: 'http://localhost:8081',    //这是请求后端的前面那串网址    timeout: 5000})// request 拦截器// 可以自请求发送前对请求做一些处理// 比如统一加token,对请求参数统一加密request.interceptors.request.use(config => {    config.headers['Content-Type'] = 'application/json;charset=utf-8';   // config.headers['token'] = user.token;  // 设置请求头    return config}, error => {    return Promise.reject(error)});// response 拦截器// 可以在接口响应后统一处理结果request.interceptors.response.use(    response => {        let res = response.data;        // 如果是返回的文件        if (response.config.responseType === 'blob') {            return res        }        // 兼容服务端返回的字符串数据        if (typeof res === 'string') {            res = res " />                后台管理系统                                     导航一                       选项4         选项4-1                                 导航二                       选项4         选项4-1                                 导航三                       选项4         选项4-1                                                  Truthfully                       个人信息         退出                                        首页       用户管理                                               搜索       重置                       新增                 批量删除                 导入       导出                                                                                    编辑                     删除                                                                                                                                                                                                                                                               取 消          确 定                  import request from '@/utils/request'export default { name:'HomeView', data() {     return {       tableData:[],       total: 0 ,       pageNum:1,       pageSize:2,       username:"",       email:"",       address:"",       form:{},       dialogFormVisible:false,       multipleSelection:[],       collapseBtnClass:'el-icon-s-fold' ,       isCollapse:false,       sideWidth:200 ,       logoTextShow:true,       headerBg: 'headerBg'     }   },   created(){    // 请求分页查询数据   this.load()   },   methods:{     collapse(){ //点击收缩按钮触发       this.isCollapse=!this.isCollapse       if(this.isCollapse){  //收缩         this.sideWidth=64         this.collapseBtnClass='el-icon-s-unfold'         this.logoTextShow=false       }else{  //展开         this.sideWidth = 200          this.collapseBtnClass='el-icon-s-fold'         this.logoTextShow=true        }     },     load(){      request.get("/user/page",{        params:{        pageNum:this.pageNum,        pageSize:this.pageSize,        username:this.username,        email:this.email,        address:this.address      }        }).then(res=>{        console.log(res)        this.tableData=res.records        this.total=res.total       })     },     save(){      request.post("/user",this.form).then(res=>{        if(res){          this.$message.success("保存成功!")          this.dialogFormVisible=false          this.load()        }else{          this.$message.error("保存失败!")        }      })     },     handleAdd(){      this.dialogFormVisible=true      this.form={}     },     handleUpdate(row){      this.form={...row}      this.dialogFormVisible=true          },     handleDelete(id){      request.delete("/user/" + id).then(res=>{        if(res){          this.$message.success("删除成功!")          this.load()        }else{          this.$message.error("删除失败!")        }      })     },     delBatch(){      let ids=this.multipleSelection.map(v=>v.id)  //把对象数组转化为id数组【1,2,3】      request.post("/user/del/batch",ids).then(res=>{        if(res){          this.$message.success("批量删除成功!")          this.load()        }else{          this.$message.error("批量删除失败!")        }      })     },     handleSelectionChange(val){      this.multipleSelection=val     },     reset(){      this.username=""      this.email=""      this.address=""      this.load()     },         handleSizeChange(pageSize){      this.pageSize=pageSize      this.load()     },     handleCurrentChange(pageNum){      this.pageNum=pageNum      this.load()     }   }}

6、测试功能

  1. 在前端页面上测试各功能能否正常使用