mybatis实现分页查询(两种方式:1pageHelper插件 2手写) | 您所在的位置:网站首页 › pagehelper的分页 › mybatis实现分页查询(两种方式:1pageHelper插件 2手写) |
方法1:整合pageHelper分页插件
优点:快捷,只需要你有一个查询全部数据的方法即可 缺点:对于初学者来说,不了解内部的原理 前提:需要先实现一个最简单的 查询全部数据的方法,不会的可以先去搭建一个项目 SpringBoot 整合mybatis、mybatis日志、并测试findAll查询数据库方法: https://blog.csdn.net/KangYouWei6/article/details/127021894 1.添加依赖 添加到pom.xml中的dependencies标签中 刷新maven com.github.pagehelper pagehelper-spring-boot-starter 1.3.02.配置 => properties / yml 注意yml的语法,开头那个必须顶格 pagehelper: helperDialect: mysql reasonable: true # 修改默认值3.写方法 在UserService里面 //分页查询 List findPage(Integer pageNo,Integer pageSize);在UserServiceImpl里面 //分页查询 @Override public List findPage(Integer pageNo, Integer pageSize) { PageHelper.startPage(pageNo,pageSize); return userMapper.list();//这里的list方法是查询全部数据的方法 }在UserController里面 //分页查询 @RequestMapping("findPage") public List findPage(int pageNo,Integer pageSize){ return userService.findPage(pageNo,pageSize); }4.测试 在数据库中多添加几条数据 在启动类(HelloApplication)里面启动 在网页或者PostMan上输入 localhost:8081/user/findPage?pageNo=1&pageSize=2优点:对于初学者来说,可以了解分页查询内部的原理 缺点:比较麻烦 为什么用map 因为前面的findAll是查询出一些数据,直接用List 这种接收就可以了 ![]() 但是 分页查询,需要得到的结果是下图这种json数据 需要有 一个total 一个data,只用List是不行的 ![]() mapper层 List selectPage(Integer pageNum, Integer pageSize);//分页查询 Integer countAll ();//统计service层 List selectPage(Integer pageNum, Integer pageSize);//分页查询 Integer countAll ();//统计impl层 //分页查询 @Override public List selectPage(Integer pageNum, Integer pageSize) { pageNum = (pageNum - 1) * pageSize; return userMapper.selectPage(pageNum,pageSize); } //统计 @Override public Integer countAll() { return userMapper.countAll(); }controller层 /** * 分页查询 * @param pageNum * @param pageSize * @return */ @GetMapping("/page") public Map findPage(@RequestParam int pageNum, @RequestParam int pageSize){ //分页查询的数据放到 data 里面 List data =userService.selectPage(pageNum,pageSize); //统计的数据放到 total 里面 Integer total = userService.countAll(); Map res = new HashMap(); res.put("data",data); res.put("total",total); return res; }xml层 注意修改 resultType里面的user路径 select * from sys_user limit #{pageNum}, #{pageSize} select count(*) from sys_user urlhttp://localhost:8081/user/page?pageSize=5&pageNum=1 |
CopyRight 2018-2019 实验室设备网 版权所有 |