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 安装到本地,在项目中引用其坐标即可。

猜你喜欢

转载自blog.csdn.net/qq_39056805/article/details/80505324