背景
做一個簡單的單表分頁查詢,本來是用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;
}
}