Mybatis的分页助手(Pagehelper)的使用

1)引入jar包 jsqlparser-2.0.jar和pagehelper-5.1.10.jar(两jar包需匹配使用)
2)在配置文件中添加,拦截器插件(复制官网),注意顺序

可以在mybatis-config.xml的configuration之后添加

<plugins>
	<plugin interceptor="com.github.pagehelper.PageHelper">
		<property name="dialect" value="mysql" />
		<!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
		<!-- 和startPage中的pageNum效果一样 -->
		<property name="offsetAsPageNum" value="true" />
		<!-- 设置为true时,使用RowBounds分页会进行count查询 -->
		<property name="rowBoundsWithCount" value="true" />
	</plugin>
</plugins>

测试:

@Test
void testselectall() {
        //1.使用PageHelper类设置起始页和每页显示的条数
        int pageNum=5;//当前页码   从网页中可以获取
        int pageSize=3;//pageSize:自定义
        PageHelper.startPage(pageNum,pageSize);
        //2调用查询所有的方法
        List<User> list=userMapper.selectall();
        for (User user : list) {
            System.out.println(user);
        }
        //3.把查询的结果封装到Pageinfo中
        PageInfo<User> pageinfo=new PageInfo<>(list,4);
        System.out.println("上一页:"+pageinfo.getPrePage());
        System.out.println("当前页:"+pageinfo.getPageNum());
        System.out.println("下一页:"+pageinfo.getNextPage());
        System.out.println("总页数:"+pageinfo.getPages());
        int[] navigatepageNums = pageinfo.getNavigatepageNums();
        for (int i : navigatepageNums) {
            System.out.print(i+"\t");
        }
    }

直接输出pageinfo查询到的结果

PageInfo{
pageNum=1, //当前页
pageSize=2,//每页显示的条数
 size=2,//该页条数
 startRow=1,//从第几条开始
 endRow=2, //到第几条结束
total=5, //总共有多少条
pages=3,//总共的页数
 list=Page{count=true, pageNum=1, pageSize=2, startRow=0, endRow=2, total=5, pages=3, reasonable=false, pageSizeZero=false}
[com.zhiyou.clg.bean.User@52bf72b5, com.zhiyou.clg.bean.User@37afeb11], //当前页的数据
prePage=0, //上一页
nextPage=2, //下一页
isFirstPage=true,//是否为第一页
 isLastPage=false, hasPreviousPage=false, hasNextPage=true, 
navigatePages=8,//每页显示的页码个数
 navigateFirstPage=1,
 navigateLastPage=3, 
navigatepageNums=[1, 2, 3]//页码的个数
}

下面就是我在项目中的使用,仅供参考
首先在config类中添加

/**
	 * 分页
	 * @return
	 */
	@Bean
	public PageHelper pageHelper() {
		PageHelper pageHelper = new PageHelper();
		// 添加配置,也可以指定文件路径
		Properties p = new Properties();
		p.setProperty("offsetAsPageNum", "true");
		p.setProperty("rowBoundsWithCount", "true");
		p.setProperty("dialect", "mysql");
		pageHelper.setProperties(p);
		return pageHelper;
	}

这样就可以在实现层中使用

PageHelper.startPage(start,limit);
List<UsBaseInfoVo> getFocusList = baseInfoMapperVo.getFocusList(account_id);
return new IPageInfo((Page)getFocusList);

返回的页码格式

total 返回总条数
pageSize 每页的数量
pages 当前页码数
pageNum  当前页

参考文章于:https://www.cnblogs.com/lwgok1003/p/11442729.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值