mybatis实现基本分页查询

 sql逻辑

#从下表为1的往后查三个
SELECT * FROM `sys_user` LIMIT 1,3

SELECT * from sys_user limit 0,2;  --第一页
-- (2 -1) * 2 = 2
SELECT * from sys_user limit 2,2;  --第二页
-- (3-1)* 2 = 4
SELECT * from sys_user limit 4,2;  --第三页
-- 结论: limit第一个参数 = (pageNum - 1) * pageSize

 controller

   //实现分页查询
    //前端传来两个
    //页码pageNum
    //每页长度pageSize
    //127.0.0.1:9090/user/findPage?pageNum=1&pageSize=3
    @GetMapping("/findPage")
    public Map findPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize,@RequestParam String username){
        //前端传来第几页,计算sql的第几页值
        pageNum = (pageNum-1)*pageSize;
        List data = userMapper.findPage(pageNum, pageSize,username);
        //查询全部数据个数
        Integer total = userMapper.selectTotal(username);
        //将两个值放入map传给前端
        Map map = new HashMap<>();
        map.put("data",data);
        map.put("total",total);
        return map;
    }

 编写mapper文件


    @Select("SELECT * from sys_user  where username like concat('%', #{username}, '%')limit #{pageNum},#{pageSize};")
    List findPage(Integer pageNum, Integer pageSize, String username);

    @Select("SELECT count(*) from sys_user where username like concat('%', #{username}, '%')")
    Integer selectTotal(String username);

 hello.vue




你可能感兴趣的:(java,前端,开发语言)