SpringBoot -- 分页查询

分页查询

  1. 在controller中添加新方法 分页查询
//分页查询
    //@RequestParam接受 ?pageNum=1&pageSize=10
    //limit第一个参数 = (pageNum - 1)* pageSize
    @GetMapping("/page") // 接口路径: /user/page
    public List findPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize){
        pageNum = (pageNum - 1) * pageSize;
        return userMapper.selectPage(pageNum, pageSize);
    }
  1. 在mapper中写对应方法的sql
    @Select("select * from user limit #{pageNum}, #{pageSize}")
    List selectPage(Integer pageNum, Integer pageSize);

改进: 加上统计表内元素个数

  1. controller中进行修改, 将List改成Map, 收集数据库的数据和数据库里有多少条元素
    //分页查询
    //@RequestParam接受 ?pageNum=1&pageSize=10
    //limit第一个参数 = (pageNum - 1)* pageSize
    @GetMapping("/page") // 接口路径: /user/page
    public Map findPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize){
        pageNum = (pageNum - 1) * pageSize;
        List data = userMapper.selectPage(pageNum,pageSize);//查询数据
        Integer total = userMapper.selectTotal(); //查询条数
        Map res = new HashMap<>(); //封装结果参数
        res.put("data",data);//数据
        res.put("total",total);//条数
        return res;
    }
  1. mapper里加上相应的sql
@Select("select count(*) from user")
    Integer selectTotal();
  1. 与前端绑定数据(该项目前端使用的是vue框架和element-ui组件)
    el-table 下 el-pagination 里面的total, page-size都要改


    image.png

你可能感兴趣的:(SpringBoot -- 分页查询)