【MyBatis学习笔记】8. MyBatis分页处理-分页插件PageHelper


分页插件PageHelper

  1. maven引入pageHelper与jsqlparser
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.1.10</version>
</dependercy>
<dependency>
    <groupId>com.github.jsqlparser</groupId>
    <artifactId>jsqlparser</artifactId>
    <version>2.0</version>
</dependercy>
  1. mybatis-config.xml增加Plugin配置
<!-- 启用Pagehelper分页插件 -->
<plugins>
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
        <!-- 设置数据库类型 -->
        <property name="helperDialect" value="mysql" />
        <!-- 分页合理化 --> 
        <property name="reasonable" value="true" />
    </plugin>
</plugins>
  1. goods.xml
<select id="selectPage" resultType="com.imooc.mybatis.entity.Goods" >
    select * from t_goods where current_price &lt; 1000 
</select>
  1. 代码中使用PageHelper.startPage()自动分页
session=MyBatisUtils.openSession();
/*startPage方法会自动将下一次查询进行分页*/
PageHelper.startPage(2,10);//pageNum 2 , pageSize 10
Page<Goods> page=(Page)session.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());
List<Goods> data=page.getResult();//当前页数据

不同数据库是怎么样实现分页的?

mysql

select * from table limit A,B;

A: 起始记录行, 下标从0开始.
B: 行数

oracle

select t3.* from(
select t2.* , rownum as row_num from (
select * from table order by id asc
) t2 where rownum<=B
) t3
where t2.row_num>A

A: 起始的记录数
B: 截至的记录数

sqlserver 2000

select top B * from table
where
id not in
(select top A id from table)

A: 前面不要的记录数
B: 截取多少个

sqlserver 2012+

select * from table order by id offset A rows fetch next B rows only

A: 从A开始截取
B: 截取多少行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值