PageHelper分页插件

一:maven引入PageHelper与jsparser

<!--分页pagehelper-->
<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper</artifactId>
	<version>5.2.0</version>
</dependency>
<!--jsqlparser 是pagehelper的底层依赖-->
<dependency>
	<groupId>com.github.jsqlparser</groupId>
	<artifactId>jsqlparser</artifactId>
	<version>3.2</version>
</dependency>

二:配置文件配置分页

1、mybatis-config.xml增加Plugin配置

<!--分页配置-->
<plugins>
	<plugin interceptor="com.github.pagehelper.PageInterceptor">
		<!--设置数据库类型-->
		<property name="helperDialect" value="mysql"/>
		<!--分页合理化-->
		<property name="reasonable" value="true"/>
	</plugin>
</plugins>

2、springboot的application.yml配置

# mybatis配置
mybatis:
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

三:代码使用PageHelper.startPage()自动分页;测试用例

 /**
 * 分页查询
 * @throws Exception
 */
@Test
public void testSelectPage() throws Exception{
	SqlSession sqlSession = null;
	try{
		sqlSession = MybatisUtils.openSession();
		//startPage方法会自动将下一次查询进行分页
		PageHelper.startPage(1,10);
		Page<Goods> page = (Page) sqlSession.selectList("goods.selectPage");
		System.out.println("总页数:"+ page.getPages());
		System.out.println("总记录数:"+ page.getTotal());
		System.out.println("开始行号:"+ page.getStartRow());
		System.out.println("结束行号:"+ page.getEndRow());
		System.out.println("当前页码:"+ page.getPageNum());
		//方式1:返回当前分页对象
		List<Goods> data = page.getResult();
		for (Goods g : data){
			System.out.println(g.getTitle());
		}

		//方式2:获取分页结果
		PageInfo pageInfo = new PageInfo(page);
		if (pageInfo.getList().size()>0) {
			System.out.println(pageInfo.getEndRow());
		} else {
			System.out.println("null");
		}
	}catch (Exception e){
		throw e;
	}finally {
		MybatisUtils.closeSession(sqlSession);
	}
}

四:goods.xml

<!--分页查询-->
<select id="selectPage" resultType="com.imooc.mybatis.entity.Goods">
	select * from t_goods where current_price &lt; 1000
</select>

五:goods实体类

package com.imooc.mybatis.entity;

import java.util.List;

/**
 * 商品类
 */
public class Goods {
    //商品编号
    private Integer goodsId;
    //标题
    private String title;
    //子标题
    private String subTitle;
    //原始价格
    private Flo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值