关于MyBatis-Plus中分页【IPage】

2 篇文章 0 订阅
2 篇文章 0 订阅

1.使用MyBatis-Plus自带的分页对象 【Page对象】(最简单)


     

  • 1. 自带的Page对象实现了IPage接口 
  • 2. MyService继承IService【本身内部有已经写好的方法】类  

 直接使用Service中继承过来的IService中的page方法(Page对象,查询条件),就可以完成分页。

2.使用自定义的Page对象

创建自己的Page对象

【*】注意:这个对象一定要使用泛型。(否则后面Mapper接口中的抽象方法返回值会类型不兼容)

 

 

public class MyPage<T> implements IPage<T> {

    /**
     * 查询数据列表
     */
    protected List<T> records = Collections.emptyList();

     /**
     * 总数
     */
     protected long total;
    /**
     * 每页显示条数,默认 10
     */
     protected long size;
    /**
     * 当前页
     */
     protected long current = 1;

    /**
     * 排序条件,一般不直接使用这个排序
     */
    List<OrderItem> orders;

    /**
     * 分页构造
     * @param current
     * @param size
     */
    public MyPage(long current, long size) {
        this(current, size, 0);
    }

    /**
     * 分页构造
     * @param total
     * @param size
     * @param current
     */
    public MyPage(long current, long size, long total) {
        this.total = total;
        this.size = size;
        this.current = current;

        //这里可以使用order排序,类似于默认排序 【一般不这样使用】
        /*List<OrderItem> list = new ArrayList<>();
        list.add(new OrderItem("sys_create_time",false));
        this.orders = list;*/
    }

    /**
     *返回排序条件列表
     * @return
     */
    @Override
    public List<OrderItem> orders() {
        return orders;
    }

    /**
     * 返回记录列表
     * @return
     */
    @Override
    public List<T> getRecords() {

        return records;
    }

    /**
     * 设置记录列表
     * @param records
     * @return
     */
    @Override
    public IPage<T> setRecords(List<T> records) {
        this.records = records;
        return this;
    }

    /**
     * 获取查询总数
     * @return
     */
    @Override
    public long getTotal() {
        return this.total;
    }

    /**
     * 设置查询总数
     * @param total
     * @return
     */
    @Override
    public IPage<T> setTotal(long total) {
        this.total = total;
        return this;
    }

    /**
     * 当前分页列表条数
     * @return
     */
    @Override
    public long getSize() {
        return this.size;
    }
    /**
     * 设置分页列表条数
     * @return
     */
    @Override
    public IPage<T> setSize(long size) {
        this.size = size;
        return this;
    }

    /**
     * 获取当前页码
     * @return
     */
    @Override
    public long getCurrent() {
        return this.current;
    }
    /**
     * 设置当前页码
     * @return
     */
    @Override
    public IPage<T> setCurrent(long current) {
        this.current = current;
        return this;
    }

}

查询:       

 Mapper:

    <select id="iPage" resultType="com.zj.bj.ai.mytest.entity.Department">
        select id from department 
        ${ew.customsqlsegment} /*使用这条语句,会条件查询完毕,填充到Page对象中*/
    </select>

 总结:

        Mybatis-Plus做了很多方便使用的封装,ew.customsqlsegment就是一个方便使用的语法糖。查询后的结果填充Page对象时,对于使用者类似于透明。导致有点“不明觉厉”。

MyBatis-Plus分页插件是一个用于在MyBatis-Plus框架实现分页查询的功能。它提供了两种方式来配置分页插件。一种是使用旧版的配置方式,通过在MybatisPlusConfig类配置PaginationInterceptor来实现分页功能。另一种是使用最新版的配置方式,通过在MybatisPlusConfig类配置MybatisPlusInterceptor来实现分页功能。\[1\]\[2\] 使用分页插件的方式是通过创建一个Page对象,并传入当前页码和每页记录数来进行分页查询。然后将Page对象和查询条件传入selectPage方法,即可实现分页查询。查询结果会返回一个IPage对象,其包含了总页数、总记录数以及当前页的内容。可以通过getPages方法获取总页数,通过getTotal方法获取总记录数,通过getRecords方法获取当前页的内容。\[3\] 以上是关于MyBatis-Plus分页插件的简要介绍和使用方式。如果还有其他问题,请随时提问。 #### 引用[.reference_title] - *1* [MyBatis-Plus分页插件](https://blog.csdn.net/s17856147699/article/details/126354189)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Mybatis-Plus---分页插件](https://blog.csdn.net/qq_41813208/article/details/108065005)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值