PageHelp分页官方文档
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>最新版本</version> </dependency>
在application.yml中进行配置
#pagehelper分页插件配置 pagehelper: helper-dialect: mysql reasonable: true support-methods-arguments: true # params:
helperDialect:分页插件会自动检测当前的数据库链接,自动选择合适的分页方式。 你可以配置helperDialect属性来指定分页插件使用哪种方言。
reasonable:分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页。 默认false 时,直接根据参数进行查询。
supportMethodsArguments:支持通过 Mapper 接口参数来传递分页参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。 使用方法可以参考测试代码中的 com.github.pagehelper.test.basic 包下的 ArgumentsMapTest 和 ArgumentsObjTest。
params:为了支持startPage(Object params)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值, 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值, 默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero
因为本人项目只需要用到PageHelper.startPage
,所以仅仅测试这个静态方法调用
除了 PageHelper.startPage
方法外,还提供了类似用法的 PageHelper.offsetPage
方法。
在你需要进行分页的 MyBatis 查询方法前调用 PageHelper.startPage
静态方法即可,紧跟在这个方法后的第一个MyBatis 查询方法会被进行分页。
controller
@RequestMapping(value="/all",method = RequestMethod.GET) public List<User> selectAll(@RequestParam int pageNum,@RequestParam int pageSize){ return userService.selectAll(pageNum,pageSize); }
serviceImpl
@Override public List<User> selectAll(int pageNum, int pageSize) { PageHelper.startPage(pageNum,pageSize); // 在你需要进行分页的 MyBatis 查询方法前调用 `PageHelper.startPage` 静态方法即可 // 紧跟在这个方法后的第一个MyBatis 查询方法会被进行分页。 return userMapper.selectAll(); }