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

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。SpringBoot 使用MyBatis分页插件实现分页功能,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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、分页效果

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/204337.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!