Mybatis通用分页插件PageHelper简单使用

什么是PageHelper?

PageHelper是mybatis的通用分页插件,通过mybatis的拦截器实现分页功能,拦截sql查询请求,添加分页语句,最终实现分页查询功能(即不用自己写“limit 0 , 5” 的分页语句)


此篇文件参考https://blog.csdn.net/LONG_Yi_1994/article/details/94399645

相关依赖(我的SpringBoot版本2.0.1.RELEASE)

<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper-spring-boot-starter</artifactId>
   <version>1.2.10</version>
</dependency>

Mapper接口(这里的Page类型是PageHelper的类型,表示使用PageHelper的分页功能)

public interface InstockMapper {

    public List<Instock> list();
}

.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace指定该mapper配置文件给哪个接口调用-->

<!--resultType指定封装返回数据的容器类型-->
<mapper namespace="com.example.clothingmanager.dao.InstockMapper">

    <select id="list" resultType="Instock">
        select * from tb_instock
    </select>

</mapper>

注意:SQL语句后面不要加分号 “;”,否则会报错

测试(PageHelper.startPage(1, 5)设置分页参数)

	@Test
    public void test08(){
        PageHelper.startPage(1, 5);
        List<Instock> list = instockMapper.list();
        PageInfo<Instock> page = new PageInfo<Instock>(list);
        for(Instock user : page.getList()){
            System.out.println(user);
        }
    }

PageHelper实现分页原理

PageHelper首先将前端传递的参数保存到page这个对象中,接着将page的副本存放入ThreadLoacl中,这样可以保证分页的时候,参数互不影响,接着利用了mybatis提供的拦截器,取得ThreadLocal的值,重新拼装分页SQL,完成分页。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值