当前位置 博文首页 > **My Coding Family**:记录:MyBatis-Plus分页插件失效,原因竟

    **My Coding Family**:记录:MyBatis-Plus分页插件失效,原因竟

    作者:[db:作者] 时间:2021-09-17 12:28

    描述:

    项目中用到boot 整合 mybatis-plus , 个人在使用分页条件查询的时候一直查不出 total, pages, 终于找到原因了。

    mybatis-plus环境:

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.2.0</version>
    </dependency>

    IPage分页使用:

    package com.system.xiaoma.service.impl;
    
    import com.baomidou.mybatisplus.core.metadata.IPage;
    import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
    import com.system.xiaoma.base.BasePage;
    import com.system.xiaoma.entity.User;
    import com.system.xiaoma.mapper.UserMapper;
    import com.system.xiaoma.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    
    /**
     * <p>
     * 服务实现类
     * </p>
     *
     * @author luoyong
     * @since 2021-4-16
     */
    @Service
    public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    
        @Autowired
        UserMapper userMapper;
     
        @Override
        public IPage<User> queryPage(BasePage basePage, User sysUser) {
            Page<User> page = new Page<>();
            if (basePage.getPage() != null && basePage.getLimit() != null) {
                page = new Page<>(basePage.getPage(), basePage.getLimit());
            }
            return userMapper.queryPage(page, sysUser);
        }
    
    }
    

    实际分页失效,如图:?

    ?

    解释:如上代码一顿操作后,结果发现并没有分页成功,这是因为我们缺少了PaginationInterceptor的配置。

    按照如下配置即可,亲测。

    package com.system.xiaoma.config;
    
    import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.transaction.annotation.EnableTransactionManagement;
    
    
    /**
     * @Author: luoyong
     * @Date: 2021/4/16
     */
    
    @Configuration
    @MapperScan("com.system.xiaoma.mapper") //对应你项目中的mapper包
    public class MybatisPlusConfig {
    
    
        /**
         * 分页插件
         */
        @Bean
        public PaginationInterceptor paginationInterceptor() {
            PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
            // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
            // paginationInterceptor.setOverflow(false);
            // 设置最大单页限制数量,默认 500 条,-1 不受限制
            // paginationInterceptor.setLimit(500);
            // 开启 count 的 join 优化,只针对部分 left join
            paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
            return paginationInterceptor;
        }
    }

    诺,分页这不就OK了嘛;


    ?如果文章对您有所帮助,就在文章的右上角或者文章的末尾点个赞吧!(づ ̄ 3 ̄)づ?

    ?如果喜欢大白兔分享的文章,就给大白兔点个关注吧!(?′?‵?)づ╭?~

    ?对文章有任何问题欢迎小伙伴们下方留言或者入群探讨【群号:708072830】

    ?鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复讨论(请勿发表攻击言论)

    cs
    下一篇:没有了