springboot mybatis PageHelper 分页插件
当使用PageHelper 分页插件之前,我们用mybatis做分页的话, 需要写两条SQL,那应该是像下面这个样字的:
使用分页插件只有,就可以按照以下方式来写了:
这样就大大的简化了SQL,是不是贼方便呢。
其实PageHelper 插件的使用方式也很简单,几步就搞定了:
- 首先,添加maven依赖,如下:
<!-- mybatis的分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.7</version> </dependency>
- 配置yml文件:
#pagehelper分页插件配置 pagehelper: helper-dialect: mysql reasonable: true support-methods-arguments: true
说明:reasonable:分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。默认false 时,直接根据参数进行查询。
- 到这里插件的配置就完成了,具体使用方式如下,也是贼方便:
controller代码 @RequestMapping(value = "helper") @ResponseBody public PageInfo<Student> Helper(Integer pageNum,Integer pageSize ){ PageInfo pageInfo = helloService.selectList(pageNum,pageSize); return pageInfo; }
service代码 public PageInfo selectList(Integer pageNum,Integer pageSize){ PageHelper.startPage(pageNum, pageSize); // 设定当前页码,以及当前页显示的条数 //PageHelper.offsetPage(pageNum, pageSize);也可以使用此方式进行设置 List<Student> list = studentMapper.selectList(); PageInfo<Student> pageInfo = new PageInfo<Student>(list); return pageInfo; } OR public PageInfo selectList(Integer pageNum,Integer pageSize){ PageInfo<Student> pageInfo = PageHelper.startPage(1, 10).doSelectPageInfo(() -> studentMapper.selectList()); return pageInfo; }
结果如下:
到此,PageHelper 就可以完美的使用了!
如果出现如下报错信息,是因为springboot2.0 与 PageHelper 版本不兼容,将PageHelper的版本提高就好了
转载于:https://my.oschina.net/u/3690153/blog/2250720