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

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


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

1、集成pagehelper

<!-- 集成pagehelper -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.4.6</version>
</dependency>

2、配置pagehelper

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

#配置pagehelper
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql

3、编写代码

创建一个持久化对象TestUserPO

@Data
@NoArgsConstructor
@AllArgsConstructor
public class TestUserPO {

    /**
     * @description: 编号
     **/
    private Integer id;

    /**
     * @description: 姓名
     **/
    private String name;

}

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

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

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

	/**
     * @description: mapper接口
     * @author: Vinci
     * @date: 2023/9/2 12:23
     **/
    @Resource
    private TestUserMapper testUserMapper;


    /**
     * @description: 测试分页
     * @author: Vinci
     * @date: 2023/9/2 12:18
     **/
    @Override
    public PageInfo<TestUserPO> getInfo(Integer pageNum, Integer pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        List<TestUserPO> info = testUserMapper.getInfo();
        return new PageInfo<>(info);
    }

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

	 /**
     * @description: 日志服务
     **/
    private static final Logger log = LoggerFactory.getLogger(TestController.class);

    /**
     * @description: 业务层接口
     **/
    @Resource
    private TestUserService testUserService;

    /**
     * @description: 测试分页
     * @author: Vinci
     * @param pageNum 页码
     * @param pageSize 页长 (每页多少条数据)
     * @date: 2023/9/2 12:18
     **/
    @GetMapping("/getInfo")
    public Object getInfo(
            @RequestParam(value = "pageNum",defaultValue = "1")Integer pageNum,
            @RequestParam(value = "pageSize",defaultValue = "15")Integer pageSize
    ){
        try{
            return testUserService.getInfo(pageNum,pageSize);
        }catch (Exception e){
            log.error("发现异常,",e);
            return e.getMessage();
        }
    }

4、分页效果

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值