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