SpringBoot 使用MyBatis分页插件实现分页功能

谁践踏了优雅 2023-10-15 15:01 128阅读 0赞

SpringBoot 使用MyBatis分页插件实现分页功能

  • 1、集成pagehelper
  • 2、配置pagehelper
  • 3、编写代码
  • 4、分页效果

案例地址: https://gitee.com/vinci99/paging-pagehelper-demo/tree/master

1、集成pagehelper

  1. <!-- 集成pagehelper -->
  2. <dependency>
  3. <groupId>com.github.pagehelper</groupId>
  4. <artifactId>pagehelper-spring-boot-starter</artifactId>
  5. <version>1.4.6</version>
  6. </dependency>

2、配置pagehelper

这里使用application.properties类型配置文件来做例子

  1. #配置pagehelper
  2. pagehelper.helper-dialect=mysql
  3. pagehelper.reasonable=true
  4. pagehelper.support-methods-arguments=true
  5. pagehelper.params=count=countSql

3、编写代码

创建一个持久化对象TestUserPO

  1. @Data
  2. @NoArgsConstructor
  3. @AllArgsConstructor
  4. public class TestUserPO {
  5. /**
  6. * @description: 编号
  7. **/
  8. private Integer id;
  9. /**
  10. * @description: 姓名
  11. **/
  12. private String name;
  13. }

编写在Mapper中编写SQL语句查询与之对应的表

  1. <!-- SQL这里不用写分页 -->
  2. <select id="getInfo" resultType="com.vinci.demo.entity.TestUserPO">
  3. SELECT
  4. id,
  5. name
  6. FROM test_user
  7. </select>

在业务层调用Mapper接口获取数据并分页;需要注意:PageHelper.startPage(pageNum,pageSize)必须写在查询前面,否则将不会生效

  1. /**
  2. * @description: mapper接口
  3. * @author: Vinci
  4. * @date: 2023/9/2 12:23
  5. **/
  6. @Resource
  7. private TestUserMapper testUserMapper;
  8. /**
  9. * @description: 测试分页
  10. * @author: Vinci
  11. * @date: 2023/9/2 12:18
  12. **/
  13. @Override
  14. public PageInfo<TestUserPO> getInfo(Integer pageNum, Integer pageSize) {
  15. PageHelper.startPage(pageNum,pageSize);
  16. List<TestUserPO> info = testUserMapper.getInfo();
  17. return new PageInfo<>(info);
  18. }

继续编写Controller层代码,将数据返回给前端

  1. /**
  2. * @description: 日志服务
  3. **/
  4. private static final Logger log = LoggerFactory.getLogger(TestController.class);
  5. /**
  6. * @description: 业务层接口
  7. **/
  8. @Resource
  9. private TestUserService testUserService;
  10. /**
  11. * @description: 测试分页
  12. * @author: Vinci
  13. * @param pageNum 页码
  14. * @param pageSize 页长 (每页多少条数据)
  15. * @date: 2023/9/2 12:18
  16. **/
  17. @GetMapping("/getInfo")
  18. public Object getInfo(
  19. @RequestParam(value = "pageNum",defaultValue = "1")Integer pageNum,
  20. @RequestParam(value = "pageSize",defaultValue = "15")Integer pageSize
  21. ){
  22. try{
  23. return testUserService.getInfo(pageNum,pageSize);
  24. }catch (Exception e){
  25. log.error("发现异常,",e);
  26. return e.getMessage();
  27. }
  28. }

4、分页效果

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,128人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Mybatis

    1.        Mybatis分页插件 \- PageHelper说明 如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件。 该插件目前支持