MyBatis分页插件-PageHelper的使用

PageHelper简介:

        如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件。该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。

实现原理:

        使用了一个MyBatis拦截器,在SQL语句执行之前对其进行修改,在后面加上了LIMIT start,pageSize;

使用方法:

        第一步:把PageHelper依赖的jar包添加到工程中。官方提供的代码对逆向工程支持的不好,这里使用修改过的pagehelper-fix(传智播客老师修改,所需资源在文章末尾处)。

        第二步:在MyBatis的配置文件中进行配置:


测试:

package cn.e3mall.pageHelper;

import java.util.List;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

import cn.e3mall.mapper.TbItemMapper;
import cn.e3mall.pojo.TbItem;
import cn.e3mall.pojo.TbItemExample;

public class pageHelperTest {

	@Test
	public void testPageHelper() throws Exception {
		// 初始化Spring容器
		ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-dao.xml");
		// 从容器中获取Mapper代理对象
		TbItemMapper itemMapper = ctx.getBean(TbItemMapper.class);
		// 执行sql语句之前设置分页信息,使用pageHelper的startPage方法。
		PageHelper.startPage(1, 10, true);
		// 执行查询
		TbItemExample example = new TbItemExample();
		List<TbItem> list = itemMapper.selectByExample(example);
		// 取分页信息,PageInfo。1.总记录数 2.总页数 3.当前页码 4.每页记录数......
		PageInfo<TbItem> pageInfo = new PageInfo<>(list);
		System.out.println(pageInfo.getTotal());
		System.out.println(pageInfo.getPages());
		System.out.println(list.size());
	}
}

pageInfo可以获取很多信息:


测试结果:




资源:修改过的工程:https://pan.baidu.com/s/1BQGoNiD6OKSGxRbeFZAMbw

下载后导入Eclipse然后Run As -> Maven install 安装到本地,在项目中引用其坐标即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值