mybatis-plus分頁與springboot分頁衝突解決

背景

做一個簡單的單表分頁查詢,本來是用mybatis-plus中的selectpage方法直接獲取到分頁的數據,然而,事實是獲取到的Page對象中總條數total總是爲0,也有其他的參數爲零,只有記錄是正確返回了的.

引發原因

因爲springboot 默認分頁插件是PageHelper,並不是mybatis-plus的,而且,mybatis-plus需要配置分頁的

Map<String,Object> map = new HashMap<>();
        //PageHelper
        Page<BFrequencyConfig> pageResult = PageHelper.startPage(page.getPageNum(),page.getPageSize());
        List<BFrequencyConfig> bFrequencyConfigs = bFrequencyConfigMapper.selectLists();

        //test mybatis-plus 需要另外配置
        QueryWrapper<BFrequencyConfig> queryWrapper =  new QueryWrapper<>();
        com.baomidou.mybatisplus.extension.plugins.pagination.Page<BFrequencyConfig> pageTest = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(1,5);  // 查詢第1頁,每頁返回5條
        IPage<BFrequencyConfig> iPage = bFrequencyConfigMapper.selectPage(pageTest,queryWrapper);
        logger.info(""+iPage);
        map.put("code",0);
        map.put("msg","");
        map.put("data",pageResult.getResult());
        map.put("count",pageResult.getTotal());
        return  map;

springboot使用起來較爲簡單,直接在查詢的語句上面,通過PageHelper.startPage方法即可

mybatis-plus 需要的另外配置:

@Configuration
@MapperScan("com.hejr.springboot2_003.mapper")//這個註解,作用相當於下面的@Bean MapperScannerConfigurer,2者配置1份即可
public class MybatisPlusConfig {

    /**
     * 分頁插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        paginationInterceptor.setDialectType("mysql");
        return paginationInterceptor;
    }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章