1、在usermapper接口类中,编写两个查询sql,分别是分页查询和数据总数查询。

sql中的( limit num1,num2),num1代表从第几条数据查,可不写,不写默认为0,num2,为查询多少条数据,也就是显示多少条。

例如,SELECT * FROM  demo LIMIT 1, 2  就是从第二条开始,查两条数据,也就是 第二 第三条。

SELECT * FROM  demo LIMIT 5  查前5条数据。

    @Select("SELECT * FROM  demo LIMIT #{pageNum}, #{pageSize}")  //查询分页数据
    List<userEntity> findpage(Integer pageNum,Integer pageSize);

    @Select("SELECT COUNT(*) FROM demo ")   //查询数据总数 返回一个int 类型的数字
    Integer total();

 2、在userservice类中调用usermapper中的两条查询语句。

    public List<userEntity> findpage(Integer pageNum, Integer pageSize) {             //分页接口

        return Usermapper.findpage(pageNum, pageSize);

    }
    public Integer total(){      //查询数据总数接口
         return  Usermapper.total();
    }

3、在usercontroller中创建查询分页接口。

 

    @GetMapping("/page")   //查询所有
    public  Map<String, Object> findPage(@RequestParam Integer pageNum,          //pageNum, 第几页,pageSize,每页多少条数据
                                     @RequestParam Integer pageSize) {
        pageNum = (pageNum - 1) * pageSize;

        Integer total = UsersService.total();

        List<userEntity> data = UsersService.findpage(pageNum, pageSize);

        Map<String, Object> res = new HashMap<>();
        res.put("total",total);
        res.put("data",data);
        return res;
    }

 

 因为在这接口中发送了两个查询请求,返回类型不一致,所以用map集合包裹一下。

 

最后测试,接口查询地址:`http://localhost:8080/user/page?pageNum=2&pageSize=2`路径换成你自己的实际路径即可

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐