分页-应用第三方实现mybatis拦截器PageHelper

在对象声明后面的第一条的查询的sql语句进行拦截,
拦截后实现对应方言的查询的分页语句。如果还要返回记录总数。(这里可以理解执行了两条sql语句。)
还要执行一条的sql语句。总数sql结果封装pageInfo.total(这里总数 pageInfo是辅助类)。
记录封装pageInfo.rows。在把pageInfo对象封装到PageHelper对象中。(内部将执行sql 封装到一个对象,在进行封装到另一个对象)


我们何时进行声明呢。
startPage(静态方法 不用new这个对象即可直接调用这个方法)一旦声明,拦截的监听生效,后面第一个查询SQL。

只对后面的第一SQL进行分页,后面再有查询就不生效。只对这条sql语句声明开启的起作用,其他的不会。

源代码:

 /**
     * 开始分页
     *
     * @param pageNum  页码
     * @param pageSize 每页显示数量
     */
    public static void startPage(int pageNum, int pageSize) {
        startPage(pageNum, pageSize, true);
    }

    

项目中代码:

public EasyUIResult queryList(Integer page, Integer rows){
PageHelper.startPage(page, rows); //开启拦截器侦听
//被PageHelper拦截,已经分页数据
List<Item> itemList = itemMapper.queryList();
PageInfo<Item> pageInfo =  new PageInfo(itemList);

return new EasyUIResult(pageInfo.getTotal(), pageInfo.getList());
}


两部分结合 产生分页的效果。
ajax提交,提交参数是两个。1.当前页 page + 2. 每页记录数 rows
我们只需扩展这两个属性即可。
通用mapper能自动帮我解决分页吗?不能,因为多了排序,要按照修改的时间倒序
总数和一页数据
我们需要PageHelper分页拦截器对象来实现分页。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值